diff options
author | Nils Gillmann <ng0@n0.is> | 2018-06-08 06:16:21 +0000 |
---|---|---|
committer | Nils Gillmann <ng0@n0.is> | 2018-06-08 06:16:21 +0000 |
commit | d8cba9f05dce5fab72d3dcbcf0d1af6de97575ae (patch) | |
tree | 9f9a11c66fc9b83e726551aea06cdd91291b0436 /doc/system_specific | |
parent | 0379239804ef74dd73c7ba3fac24ce86fecb3ac1 (diff) | |
download | gnunet-d8cba9f05dce5fab72d3dcbcf0d1af6de97575ae.tar.gz gnunet-d8cba9f05dce5fab72d3dcbcf0d1af6de97575ae.zip |
doc: create system specific folder and move files into it
Signed-off-by: Nils Gillmann <ng0@n0.is>
Diffstat (limited to 'doc/system_specific')
-rw-r--r-- | doc/system_specific/FROM_SOURCE | 1423 | ||||
-rw-r--r-- | doc/system_specific/outdated-and-old-installation-instructions.txt | 672 |
2 files changed, 2095 insertions, 0 deletions
diff --git a/doc/system_specific/FROM_SOURCE b/doc/system_specific/FROM_SOURCE new file mode 100644 index 000000000..074b6a91e --- /dev/null +++ b/doc/system_specific/FROM_SOURCE | |||
@@ -0,0 +1,1423 @@ | |||
1 | @node Build instructions for Ubuntu 12.04 using Git | ||
2 | @section Build instructions for Ubuntu 12.04 using Git | ||
3 | |||
4 | @menu | ||
5 | * Install the required build tools:: | ||
6 | * Install libgcrypt 1.6 and libgpg-error:: | ||
7 | * Install gnutls with DANE support:: | ||
8 | * Install libgnurl:: | ||
9 | * Install libmicrohttpd from Git:: | ||
10 | * Install libextractor from Git:: | ||
11 | * Install GNUnet dependencies:: | ||
12 | * Build GNUnet:: | ||
13 | * Install the GNUnet-gtk user interface from Git:: | ||
14 | @end menu | ||
15 | |||
16 | @node Install the required build tools | ||
17 | @subsection Install the required build tools | ||
18 | |||
19 | First, make sure Git is installed on your system: | ||
20 | |||
21 | @example | ||
22 | $ sudo apt-get install git | ||
23 | @end example | ||
24 | |||
25 | Install the essential buildtools: | ||
26 | |||
27 | @example | ||
28 | $ sudo apt-get install automake autopoint autoconf libtool | ||
29 | @end example | ||
30 | |||
31 | @node Install libgcrypt 1.6 and libgpg-error | ||
32 | @subsection Install libgcrypt 1.6 and libgpg-error | ||
33 | |||
34 | @ref{generic source installation - libgpg-error} | ||
35 | |||
36 | @node Install gnutls with DANE support | ||
37 | @subsection Install gnutls with DANE support | ||
38 | |||
39 | @itemize @bullet | ||
40 | @item @ref{generic source installation - nettle} | ||
41 | @item @ref{generic source installation - ldns} | ||
42 | @item @ref{generic source installation - libunbound/unbound} | ||
43 | @item @ref{generic source installation - gnutls} | ||
44 | @item @ref{generic source installation - libgcrypt} | ||
45 | @end itemize | ||
46 | |||
47 | @node Install libgnurl | ||
48 | @subsection Install libgnurl | ||
49 | |||
50 | Follow the @ref{generic source installation - libgnurl}. | ||
51 | |||
52 | @node Install libmicrohttpd from Git | ||
53 | @subsection Install libmicrohttpd from Git | ||
54 | |||
55 | @example | ||
56 | $ git clone https://gnunet.org/git/libmicrohttpd | ||
57 | $ cd libmicrohttpd/ | ||
58 | $ ./bootstrap | ||
59 | $ ./configure | ||
60 | $ sudo make install ; cd .. | ||
61 | @end example | ||
62 | |||
63 | @node Install libextractor from Git | ||
64 | @subsection Install libextractor from Git | ||
65 | |||
66 | Install libextractor dependencies: | ||
67 | |||
68 | @example | ||
69 | $ sudo apt-get install zlib1g-dev libgsf-1-dev libmpeg2-4-dev \ | ||
70 | libpoppler-dev libvorbis-dev libexiv2-dev libjpeg-dev \ | ||
71 | libtiff-dev libgif-dev libvorbis-dev libflac-dev libsmf-dev \ | ||
72 | g++ | ||
73 | @end example | ||
74 | |||
75 | Build libextractor: | ||
76 | |||
77 | @example | ||
78 | $ git clone https://gnunet.org/git/libextractor | ||
79 | $ cd libextractor | ||
80 | $ ./bootstrap | ||
81 | $ ./configure | ||
82 | $ sudo make install ; cd .. | ||
83 | @end example | ||
84 | |||
85 | @node Install GNUnet dependencies | ||
86 | @subsection Install GNUnet dependencies | ||
87 | |||
88 | @example | ||
89 | $ sudo apt-get install libidn11-dev libunistring-dev libglpk-dev \ | ||
90 | libpulse-dev libbluetooth-dev libsqlite-dev | ||
91 | @end example | ||
92 | |||
93 | Install libopus: | ||
94 | |||
95 | @example | ||
96 | $ wget http://downloads.xiph.org/releases/opus/opus-1.1.tar.gz | ||
97 | $ tar xf opus-1.1.tar.gz | ||
98 | $ cd opus-1.1/ | ||
99 | $ ./configure | ||
100 | $ sudo make install ; cd .. | ||
101 | @end example | ||
102 | |||
103 | Choose one or more database backends: | ||
104 | |||
105 | SQLite3: | ||
106 | @example | ||
107 | $ sudo apt-get install libsqlite3-dev | ||
108 | @end example | ||
109 | MySQL: | ||
110 | @example | ||
111 | $ sudo apt-get install libmysqlclient-dev | ||
112 | @end example | ||
113 | PostgreSQL: | ||
114 | @example | ||
115 | $ sudo apt-get install libpq-dev postgresql | ||
116 | @end example | ||
117 | |||
118 | |||
119 | |||
120 | @node Build GNUnet | ||
121 | @subsection Build GNUnet | ||
122 | |||
123 | |||
124 | |||
125 | @menu | ||
126 | * Configuring the installation path:: | ||
127 | * Configuring the system:: | ||
128 | * Installing components requiring sudo permission:: | ||
129 | * Build:: | ||
130 | @end menu | ||
131 | |||
132 | @node Configuring the installation path | ||
133 | @subsubsection Configuring the installation path | ||
134 | |||
135 | You can specify the location of the GNUnet installation by setting the | ||
136 | prefix when calling the configure script with @code{--prefix=DIRECTORY} | ||
137 | |||
138 | @example | ||
139 | $ export PATH=$PATH:DIRECTORY/bin | ||
140 | @end example | ||
141 | |||
142 | @node Configuring the system | ||
143 | @subsubsection Configuring the system | ||
144 | |||
145 | Please make sure NOW that you have created a user and group 'gnunet' | ||
146 | and additionally a group 'gnunetdns': | ||
147 | |||
148 | @example | ||
149 | $ sudo addgroup gnunet | ||
150 | $ sudo addgroup gnunetdns | ||
151 | $ sudo adduser gnunet | ||
152 | @end example | ||
153 | |||
154 | Each GNUnet user should be added to the 'gnunet' group (may | ||
155 | require fresh login to come into effect): | ||
156 | |||
157 | @example | ||
158 | $ sudo useradd -G gnunet | ||
159 | @end example | ||
160 | |||
161 | @node Installing components requiring sudo permission | ||
162 | @subsubsection Installing components requiring sudo permission | ||
163 | |||
164 | Some components, like the nss plugin required for GNS, may require root | ||
165 | permissions. To allow these few components to be installed use: | ||
166 | |||
167 | @example | ||
168 | $ ./configure --with-sudo | ||
169 | @end example | ||
170 | |||
171 | @node Build | ||
172 | @subsubsection Build | ||
173 | |||
174 | @example | ||
175 | $ git clone https://gnunet.org/git/gnunet/ | ||
176 | $ cd gnunet/ | ||
177 | $ ./bootstrap | ||
178 | @end example | ||
179 | |||
180 | Use the required configure call including the optional installation prefix | ||
181 | @code{PREFIX} or the sudo permissions: | ||
182 | |||
183 | @example | ||
184 | $ ./configure [ --with-sudo | --with-prefix=PREFIX ] | ||
185 | @end example | ||
186 | |||
187 | @example | ||
188 | $ make; sudo make install | ||
189 | @end example | ||
190 | |||
191 | After installing it, you need to create an empty configuration file: | ||
192 | |||
193 | @example | ||
194 | mkdir ~/.gnunet; touch ~/.gnunet/gnunet.conf | ||
195 | @end example | ||
196 | |||
197 | And finally you can start GNUnet with: | ||
198 | |||
199 | @example | ||
200 | $ gnunet-arm -s | ||
201 | @end example | ||
202 | |||
203 | @node Install the GNUnet-gtk user interface from Git | ||
204 | @subsection Install the GNUnet-gtk user interface from Git | ||
205 | |||
206 | |||
207 | Install depencies: | ||
208 | |||
209 | @example | ||
210 | $ sudo apt-get install libgtk-3-dev libunique-3.0-dev libgladeui-dev \ | ||
211 | libqrencode-dev | ||
212 | @end example | ||
213 | |||
214 | Build GNUnet (with an optional prefix) and execute: | ||
215 | |||
216 | @example | ||
217 | $ git clone https://gnunet.org/git/gnunet-gtk/ | ||
218 | $ cd gnunet-gtk/ | ||
219 | $ ./bootstrap | ||
220 | $ ./configure [--prefix=PREFIX] --with-gnunet=DIRECTORY | ||
221 | $ make; sudo make install | ||
222 | @end example | ||
223 | |||
224 | @node Build Instructions for Microsoft Windows Platforms | ||
225 | @section Build Instructions for Microsoft Windows Platforms | ||
226 | |||
227 | @menu | ||
228 | * Introduction to building on MS Windows:: | ||
229 | * Requirements:: | ||
230 | * Dependencies & Initial Setup:: | ||
231 | * GNUnet Installation:: | ||
232 | * Adjusting Windows for running and testing GNUnet:: | ||
233 | * Building the GNUnet Installer:: | ||
234 | * Using GNUnet with Netbeans on Windows:: | ||
235 | @end menu | ||
236 | |||
237 | @node Introduction to building on MS Windows | ||
238 | @subsection Introduction to building on MS Windows | ||
239 | |||
240 | |||
241 | This document is a guide to building GNUnet and its dependencies on | ||
242 | Windows platforms. GNUnet development is mostly done under GNU/Linux and | ||
243 | especially git checkouts may not build out of the box. | ||
244 | We regret any inconvenience, and if you have problems, please report | ||
245 | them. | ||
246 | |||
247 | @node Requirements | ||
248 | @subsection Requirements | ||
249 | |||
250 | The Howto is based upon a @strong{Windows Server 2008 32bit} | ||
251 | @strong{Installation}, @strong{sbuild} and thus a | ||
252 | @uref{http://www.mingw.org/wiki/MSYS, MSYS+MinGW} | ||
253 | (W32-GCC-Compiler-Suite + Unix-like Userland) installation. sbuild | ||
254 | is a convenient set of scripts which creates a working msys/mingw | ||
255 | installation and installs most dependencies required for GNUnet. | ||
256 | |||
257 | As of the point of the creation of these instructions, | ||
258 | GNUnet @strong{requires} a Windows @strong{Server} 2003 or | ||
259 | newer for full feature support. | ||
260 | Windows Vista and later will also work, but | ||
261 | @strong{non-server version can not run a VPN-Exit-Node} as the NAT | ||
262 | features have been removed as of Windows Vista. | ||
263 | |||
264 | @c TODO: We should document Windows 10! | ||
265 | @c It seems like the situation hasn't changed with W10 | ||
266 | |||
267 | @node Dependencies & Initial Setup | ||
268 | @subsection Dependencies & Initial Setup | ||
269 | |||
270 | |||
271 | @itemize @bullet | ||
272 | |||
273 | @item | ||
274 | Install a fresh version of @strong{Python 2.x}, even if you are using a | ||
275 | x64-OS, install a 32-bit version for use with sbuild. | ||
276 | Python 3.0 is currently incompatible. | ||
277 | |||
278 | @item | ||
279 | Install your favorite @uref{http://code.google.com/p/tortoisegit/, git} & | ||
280 | @uref{http://tortoisesvn.net/, subversion}-clients. | ||
281 | |||
282 | @item | ||
283 | You will also need some archive-manager like | ||
284 | @uref{http://www.7-zip.org/, 7zip}. | ||
285 | |||
286 | @item | ||
287 | Pull a copy of sbuild to a directory of your choice, which will be used | ||
288 | in the remainder of this guide. For now, we will use | ||
289 | @file{c:\gnunet\sbuild\} | ||
290 | |||
291 | @item | ||
292 | in @file{sbuild\src\mingw\mingw32-buildall.sh}, comment out the packages | ||
293 | @strong{gnunet-svn} and @strong{gnunet-gtk-svn}, as we don't want sbuild | ||
294 | to compile/install those for us. | ||
295 | |||
296 | @item | ||
297 | Follow LRN's sbuild installation instructions.- | ||
298 | @end itemize | ||
299 | |||
300 | Please note that sbuild may (or will most likely) fail during | ||
301 | installation, thus you really HAVE to @strong{check the logfiles} created | ||
302 | during the installation process. | ||
303 | Certain packages may fail to build initially due to missing dependencies, | ||
304 | thus you may have to | ||
305 | @strong{substitute those with binary-versions initially}. Later on once | ||
306 | dependencies are satisfied you can re-build the newer package versions. | ||
307 | |||
308 | @strong{It is normal that you may have to repeat this step multiple times | ||
309 | and there is no uniform way to fix all compile-time issues, as the | ||
310 | build-process of many of the dependencies installed are rather unstable | ||
311 | on win32 and certain releases may not even compile at all.} | ||
312 | |||
313 | Most dependencies for GNUnet have been set up by sbuild, thus we now | ||
314 | should add the @file{bin/} directories in your new msys and mingw | ||
315 | installations to PATH. You will want to create a backup of your finished | ||
316 | msys-environment by now. | ||
317 | |||
318 | @node GNUnet Installation | ||
319 | @subsection GNUnet Installation | ||
320 | |||
321 | First, we need to launch our msys-shell, you can do this via | ||
322 | |||
323 | @file{C:\gnunet\sbuild\msys\msys.bat} | ||
324 | |||
325 | You might wish to take a look at this file and adjust some | ||
326 | login-parameters to your msys environment. | ||
327 | |||
328 | Also, sbuild added two pointpoints to your msys-environment, though those | ||
329 | might remain invisible: | ||
330 | |||
331 | @itemize @bullet | ||
332 | |||
333 | @item | ||
334 | /mingw, which will mount your mingw-directory from sbuild/mingw and the | ||
335 | other one is | ||
336 | |||
337 | @item | ||
338 | /src which contains all the installation sources sbuild just compiled. | ||
339 | @end itemize | ||
340 | |||
341 | Check out the current GNUnet sources (git HEAD) from the | ||
342 | GNUnet repository "gnunet.git", we will do this in your home directory: | ||
343 | |||
344 | @code{git clone https://gnunet.org/git/gnunet/ ~/gnunet} | ||
345 | |||
346 | Now, we will first need to bootstrap the checked out installation and then | ||
347 | configure it accordingly. | ||
348 | |||
349 | @example | ||
350 | cd ~/gnunet | ||
351 | ./bootstrap | ||
352 | STRIP=true CPPFLAGS="-DUSE_IPV6=1 -DW32_VEH" CFLAGS="$CFLAGS -g -O2" \ | ||
353 | ./configure --prefix=/ --docdir=/share/doc/gnunet \ | ||
354 | --with-libiconv-prefix=/mingw --with-libintl-prefix=/mingw \ | ||
355 | --with-libcurl=/mingw --with-extractor=/mingw --with-sqlite=/mingw \ | ||
356 | --with-microhttpd=/mingw --with-plibc=/mingw --enable-benchmarks \ | ||
357 | --enable-expensivetests --enable-experimental --with-qrencode=/mingw \ | ||
358 | --enable-silent-rules --enable-experimental 2>&1 | tee -a ./configure.log | ||
359 | @end example | ||
360 | |||
361 | The parameters above will configure for a reasonable GNUnet installation | ||
362 | to the your msys-root directory. | ||
363 | Depending on which features your would like to build or you may need to | ||
364 | specify additional dependencies. Sbuild installed most libs into | ||
365 | the /mingw subdirectory, so remember to prefix library locations with | ||
366 | this path. | ||
367 | |||
368 | Like on a unixoid system, you might want to use your home directory as | ||
369 | prefix for your own GNUnet installation for development, without tainting | ||
370 | the buildenvironment. Just change the "prefix" parameter to point towards | ||
371 | ~/ in this case. | ||
372 | |||
373 | Now it's time to compile GNUnet as usual. Though this will take some time, | ||
374 | so you may fetch yourself a coffee or some Mate now... | ||
375 | |||
376 | @example | ||
377 | make ; make install | ||
378 | @end example | ||
379 | |||
380 | @node Adjusting Windows for running and testing GNUnet | ||
381 | @subsection Adjusting Windows for running and testing GNUnet | ||
382 | |||
383 | Assuming the build succeeded and you | ||
384 | @strong{added the bin directory of your GNUnet to PATH}, you can now use | ||
385 | your gnunet-installation as usual. | ||
386 | Remember that UAC or the windows firewall may popup initially, blocking | ||
387 | further execution of gnunet until you acknowledge them. | ||
388 | |||
389 | You will also have to take the usual steps to get peer-to-peer (p2p) | ||
390 | software running properly (port forwarding, ...), | ||
391 | and GNUnet will require administrative permissions as it may even | ||
392 | install a device-driver (in case you are using gnunet-vpn and/or | ||
393 | gnunet-exit). | ||
394 | |||
395 | @node Building the GNUnet Installer | ||
396 | @subsection Building the GNUnet Installer | ||
397 | |||
398 | The GNUnet installer is made with | ||
399 | @uref{http://nsis.sourceforge.net/, NSIS}. | ||
400 | The installer script is located in @file{contrib\win} in the | ||
401 | GNUnet source tree. | ||
402 | |||
403 | @node Using GNUnet with Netbeans on Windows | ||
404 | @subsection Using GNUnet with Netbeans on Windows | ||
405 | |||
406 | TODO | ||
407 | |||
408 | @node Build instructions for Debian 7.5 | ||
409 | @section Build instructions for Debian 7.5 | ||
410 | |||
411 | |||
412 | These are the installation instructions for Debian 7.5. They were tested | ||
413 | using a minimal, fresh Debian 7.5 AMD64 installation without non-free | ||
414 | software (no contrib or non-free). | ||
415 | By "minimal", we mean that during installation, we did not select any | ||
416 | desktop environment, servers or system utilities during the "tasksel" | ||
417 | step. Note that the packages and the dependencies that we will install | ||
418 | during this chapter take about 1.5 GB of disk space. | ||
419 | Combined with GNUnet and space for objects during compilation, you should | ||
420 | not even attempt this unless you have about 2.5 GB free after the minimal | ||
421 | Debian installation. | ||
422 | Using these instructions to build a VM image is likely to require a | ||
423 | minimum of 4-5 GB for the VM (as you will likely also want a desktop | ||
424 | manager). | ||
425 | |||
426 | GNUnet's security model assumes that your @file{/home} directory is | ||
427 | encrypted. Thus, if possible, you should encrypt your home partition | ||
428 | (or per-user home directory). | ||
429 | |||
430 | Naturally, the exact details of the starting state for your installation | ||
431 | should not matter much. For example, if you selected any of those | ||
432 | installation groups you might simply already have some of the necessary | ||
433 | packages installed. | ||
434 | We did this for testing, as this way we are less likely to forget to | ||
435 | mention a required package. | ||
436 | Note that we will not install a desktop environment, but of course you | ||
437 | will need to install one to use GNUnet's graphical user interfaces. | ||
438 | Thus, it is suggested that you simply install the desktop environment of | ||
439 | your choice before beginning with the instructions. | ||
440 | |||
441 | |||
442 | |||
443 | @menu | ||
444 | * Update:: | ||
445 | * Stable? Hah!:: | ||
446 | * Update again:: | ||
447 | * Installing packages:: | ||
448 | * Installing dependencies from source:: | ||
449 | * Installing GNUnet from source:: | ||
450 | * But wait there is more!:: | ||
451 | @end menu | ||
452 | |||
453 | @node Update | ||
454 | @subsection Update | ||
455 | |||
456 | After any installation, you should begin by running | ||
457 | |||
458 | @example | ||
459 | # apt-get update ; apt-get upgrade | ||
460 | @end example | ||
461 | |||
462 | to ensure that all of your packages are up-to-date. Note that the "#" is | ||
463 | used to indicate that you need to type in this command as "root" | ||
464 | (or prefix with "sudo"), whereas "$" is used to indicate typing in a | ||
465 | command as a normal user. | ||
466 | |||
467 | @node Stable? Hah! | ||
468 | @subsection Stable? Hah! | ||
469 | |||
470 | Yes, we said we start with a Debian 7.5 "stable" system. However, to | ||
471 | reduce the amount of compilation by hand, we will begin by allowing the | ||
472 | installation of packages from the testing and unstable distributions as | ||
473 | well. | ||
474 | We will stick to "stable" packages where possible, but some packages will | ||
475 | be taken from the other distributions. | ||
476 | Start by modifying @file{/etc/apt/sources.list} to contain the | ||
477 | following (possibly adjusted to point to your mirror of choice): | ||
478 | |||
479 | @example | ||
480 | # These were there before: | ||
481 | deb http://ftp.de.debian.org/debian/ wheezy main | ||
482 | deb-src http://ftp.de.debian.org/debian/ wheezy main | ||
483 | deb http://security.debian.org/ wheezy/updates main | ||
484 | deb-src http://security.debian.org/ wheezy/updates main | ||
485 | deb http://ftp.de.debian.org/debian/ wheezy-updates main | ||
486 | deb-src http://ftp.de.debian.org/debian/ wheezy-updates main | ||
487 | |||
488 | # Add these lines (feel free to adjust the mirror): | ||
489 | deb http://ftp.de.debian.org/debian/ testing main | ||
490 | deb http://ftp.de.debian.org/debian/ unstable main | ||
491 | @end example | ||
492 | |||
493 | The next step is to create/edit your @file{/etc/apt/preferences} | ||
494 | file to look like this: | ||
495 | |||
496 | @example | ||
497 | Package: * | ||
498 | Pin: release a=stable,n=wheezy | ||
499 | Pin-Priority: 700 | ||
500 | |||
501 | Package: * | ||
502 | Pin: release o=Debian,a=testing | ||
503 | Pin-Priority: 650 | ||
504 | |||
505 | Package: * | ||
506 | Pin: release o=Debian,a=unstable | ||
507 | Pin-Priority: 600 | ||
508 | @end example | ||
509 | |||
510 | You can read more about Apt Preferences here and here. | ||
511 | Note that other pinnings are likely to also work for GNUnet, the key | ||
512 | thing is that you need some packages from unstable (as shown below). | ||
513 | However, as unstable is unlikely to be comprehensive (missing packages) | ||
514 | or might be problematic (crashing packages), you probably want others | ||
515 | from stable and/or testing. | ||
516 | |||
517 | @node Update again | ||
518 | @subsection Update again | ||
519 | |||
520 | Now, run again@ | ||
521 | |||
522 | @example | ||
523 | # apt-get update@ | ||
524 | # apt-get upgrade@ | ||
525 | @end example | ||
526 | |||
527 | to ensure that all your new distribution indices are downloaded, and | ||
528 | that your pinning is correct: the upgrade step should cause no changes | ||
529 | at all. | ||
530 | |||
531 | @node Installing packages | ||
532 | @subsection Installing packages | ||
533 | |||
534 | We begin by installing a few Debian packages from stable:@ | ||
535 | |||
536 | @example | ||
537 | # apt-get install gcc make python-zbar libltdl-dev libsqlite3-dev \ | ||
538 | libunistring-dev libopus-dev libpulse-dev openssl libglpk-dev \ | ||
539 | texlive libidn11-dev libmysqlclient-dev libpq-dev libarchive-dev \ | ||
540 | libbz2-dev libexiv2-dev libflac-dev libgif-dev libglib2.0-dev \ | ||
541 | libgtk-3-dev libmagic-dev libjpeg8-dev libmpeg2-4-dev libmp4v2-dev \ | ||
542 | librpm-dev libsmf-dev libtidy-dev libtiff5-dev libvorbis-dev \ | ||
543 | libogg-dev zlib1g-dev g++ gettext libgsf-1-dev libunbound-dev \ | ||
544 | libqrencode-dev libgladeui-dev nasm texlive-latex-extra \ | ||
545 | libunique-3.0-dev gawk miniupnpc libfuse-dev libbluetooth-dev | ||
546 | @end example | ||
547 | |||
548 | After that, we install a few more packages from unstable:@ | ||
549 | |||
550 | @example | ||
551 | # apt-get install -t unstable nettle-dev libgstreamer1.0-dev \ | ||
552 | gstreamer1.0-plugins-base gstreamer1.0-plugins-good \ | ||
553 | libgstreamer-plugins-base1.0-dev | ||
554 | @end example | ||
555 | |||
556 | @node Installing dependencies from source | ||
557 | @subsection Installing dependencies from source | ||
558 | |||
559 | Next, we need to install a few dependencies from source. | ||
560 | You might want to do this as a "normal" user and only run the | ||
561 | @code{make install} steps as root (hence the @code{sudo} in the | ||
562 | commands below). Also, you do this from any | ||
563 | directory. We begin by downloading all dependencies, then extracting the | ||
564 | sources, and finally compiling and installing the libraries. | ||
565 | |||
566 | For these steps, follow the instructions given in the | ||
567 | installation from source instruction in this order: | ||
568 | |||
569 | @itemize @bullet | ||
570 | @item @ref{generic source installation - libav} | ||
571 | @item @ref{generic source installation - libextractor} | ||
572 | @item @ref{generic source installation - libgpg-error} | ||
573 | @item @ref{generic source installation - libgcrypt} | ||
574 | @item @ref{generic source installation - gnutls} | ||
575 | @item @ref{generic source installation - libmicrohttpd} | ||
576 | @item @ref{generic source installation - libgnurl} | ||
577 | @end itemize | ||
578 | |||
579 | @node Installing GNUnet from source | ||
580 | @subsection Installing GNUnet from source | ||
581 | |||
582 | |||
583 | For this, simply follow the generic installation instructions from | ||
584 | here. | ||
585 | |||
586 | @node But wait there is more! | ||
587 | @subsection But wait there is more! | ||
588 | |||
589 | So far, we installed all of the packages and dependencies required to | ||
590 | ensure that all of GNUnet would be built. | ||
591 | However, while for example the plugins to interact with the MySQL or | ||
592 | Postgres databases have been created, we did not actually install or | ||
593 | configure those databases. Thus, you will need to install | ||
594 | and configure those databases or stick with the default Sqlite database. | ||
595 | Sqlite is usually fine for most applications, but MySQL can offer better | ||
596 | performance and Postgres better resillience. | ||
597 | |||
598 | |||
599 | @node Installing GNUnet from Git on Ubuntu 14.4 | ||
600 | @section Installing GNUnet from Git on Ubuntu 14.4 | ||
601 | |||
602 | @strong{Install the required build tools:} | ||
603 | |||
604 | @example | ||
605 | $ sudo apt-get install git automake autopoint autoconf | ||
606 | @end example | ||
607 | |||
608 | @strong{Install the required dependencies} | ||
609 | |||
610 | @example | ||
611 | $ sudo apt-get install libltdl-dev libgpg-error-dev libidn11-dev \ | ||
612 | libunistring-dev libglpk-dev libbluetooth-dev libextractor-dev \ | ||
613 | libmicrohttpd-dev libgnutls28-dev | ||
614 | @end example | ||
615 | |||
616 | @strong{Choose one or more database backends} | ||
617 | |||
618 | @itemize @bullet | ||
619 | |||
620 | @item SQLite3: | ||
621 | |||
622 | @example | ||
623 | $ sudo apt-get install libsqlite3-dev | ||
624 | @end example | ||
625 | |||
626 | @item MySQL: | ||
627 | |||
628 | @example | ||
629 | $ sudo apt-get install libmysqlclient-dev | ||
630 | @end example | ||
631 | |||
632 | @item PostgreSQL: | ||
633 | |||
634 | @example | ||
635 | $ sudo apt-get install libpq-dev postgresql | ||
636 | @end example | ||
637 | |||
638 | @end itemize | ||
639 | |||
640 | @strong{Install the optional dependencies for gnunet-conversation:} | ||
641 | |||
642 | @example | ||
643 | $ sudo apt-get install gstreamer1.0 libpulse-dev libopus-dev | ||
644 | @end example | ||
645 | |||
646 | @strong{Install the libgrypt 1.6.1:} | ||
647 | |||
648 | @itemize @bullet | ||
649 | |||
650 | @item For Ubuntu 14.04: | ||
651 | |||
652 | @example | ||
653 | $ sudo apt-get install libgcrypt20-dev | ||
654 | @end example | ||
655 | |||
656 | @item For Ubuntu older 14.04: | ||
657 | |||
658 | @example | ||
659 | $ wget ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.6.1.tar.bz2 | ||
660 | $ tar xf libgcrypt-1.6.1.tar.bz2 | ||
661 | $ cd libgcrypt-1.6.1 | ||
662 | $ ./configure | ||
663 | $ sudo make install | ||
664 | $ cd .. | ||
665 | @end example | ||
666 | |||
667 | @end itemize | ||
668 | |||
669 | @strong{Install libgnurl} | ||
670 | |||
671 | @strong{Install GNUnet} | ||
672 | |||
673 | @example | ||
674 | $ git clone https://gnunet.org/git/gnunet/ | ||
675 | $ cd gnunet/ | ||
676 | $ ./bootstrap | ||
677 | @end example | ||
678 | |||
679 | If you want to: | ||
680 | |||
681 | @itemize @bullet | ||
682 | |||
683 | @item Install to a different directory: | ||
684 | |||
685 | @example | ||
686 | --prefix=PREFIX | ||
687 | @end example | ||
688 | |||
689 | @item | ||
690 | Have sudo permission, but do not want to compile as root: | ||
691 | |||
692 | @example | ||
693 | --with-sudo | ||
694 | @end example | ||
695 | |||
696 | @item | ||
697 | Want debug message enabled: | ||
698 | |||
699 | @example | ||
700 | --enable-logging=verbose | ||
701 | @end example | ||
702 | |||
703 | @end itemize | ||
704 | |||
705 | |||
706 | @example | ||
707 | $ ./configure [ --with-sudo | --prefix=PREFIX | --enable-logging=verbose] | ||
708 | $ make; sudo make install | ||
709 | @end example | ||
710 | |||
711 | After installing it, you need to create an empty configuration file: | ||
712 | |||
713 | @example | ||
714 | touch ~/.config/gnunet.conf | ||
715 | @end example | ||
716 | |||
717 | And finally you can start GNUnet with | ||
718 | |||
719 | @example | ||
720 | $ gnunet-arm -s | ||
721 | @end example | ||
722 | |||
723 | @node Build instructions for Debian 8 | ||
724 | @section Build instructions for Debian 8 | ||
725 | @c FIXME: I -> we | ||
726 | |||
727 | These are the installation instructions for Debian 8. They were tested | ||
728 | sing a fresh Debian 8 AMD64 installation without non-free software (no | ||
729 | contrib or non-free). During installation, I only selected "lxde" for the | ||
730 | desktop environment. | ||
731 | Note that the packages and the dependencies that we will install during | ||
732 | this chapter take about 1.5 GB of disk space. Combined with GNUnet and | ||
733 | space for objects during compilation, you should not even attempt this | ||
734 | unless you have about 2.5 GB free after the Debian installation. | ||
735 | Using these instructions to build a VM image is likely to require a | ||
736 | minimum of 4-5 GB for the VM (as you will likely also want a desktop | ||
737 | manager). | ||
738 | |||
739 | GNUnet's security model assumes that your @code{/home} directory is | ||
740 | encrypted. | ||
741 | Thus, if possible, you should encrypt your entire disk, or at least just | ||
742 | your home partition (or per-user home directory). | ||
743 | |||
744 | Naturally, the exact details of the starting state for your installation | ||
745 | should not matter much. | ||
746 | For example, if you selected any of those installation groups you might | ||
747 | simply already have some of the necessary packages installed. Thus, it is | ||
748 | suggested that you simply install the desktop environment of your choice | ||
749 | before beginning with the instructions. | ||
750 | |||
751 | |||
752 | @menu | ||
753 | * Update Debian:: | ||
754 | * Installing Debian Packages:: | ||
755 | * Installing Dependencies from Source2:: | ||
756 | * Installing GNUnet from Source2:: | ||
757 | * But wait (again) there is more!:: | ||
758 | @end menu | ||
759 | |||
760 | @node Update Debian | ||
761 | @subsection Update Debian | ||
762 | |||
763 | After any installation, you should begin by running | ||
764 | |||
765 | @example | ||
766 | # apt-get update | ||
767 | # apt-get upgrade | ||
768 | @end example | ||
769 | |||
770 | to ensure that all of your packages are up-to-date. Note that the "#" is | ||
771 | used to indicate that you need to type in this command as "root" (or | ||
772 | prefix with "sudo"), whereas "$" is used to indicate typing in a command | ||
773 | as a normal user. | ||
774 | |||
775 | @node Installing Debian Packages | ||
776 | @subsection Installing Debian Packages | ||
777 | |||
778 | We begin by installing a few Debian packages from stable: | ||
779 | |||
780 | @example | ||
781 | # apt-get install gcc make python-zbar libltdl-dev libsqlite3-dev \ | ||
782 | libunistring-dev libopus-dev libpulse-dev openssl libglpk-dev texlive \ | ||
783 | libidn11-dev libmysqlclient-dev libpq-dev libarchive-dev libbz2-dev \ | ||
784 | libflac-dev libgif-dev libglib2.0-dev libgtk-3-dev libmpeg2-4-dev \ | ||
785 | libtidy-dev libvorbis-dev libogg-dev zlib1g-dev g++ gettext \ | ||
786 | libgsf-1-dev libunbound-dev libqrencode-dev libgladeui-dev nasm \ | ||
787 | texlive-latex-extra libunique-3.0-dev gawk miniupnpc libfuse-dev \ | ||
788 | libbluetooth-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good \ | ||
789 | libgstreamer-plugins-base1.0-dev nettle-dev libextractor-dev \ | ||
790 | libgcrypt20-dev libmicrohttpd-dev | ||
791 | @end example | ||
792 | |||
793 | @node Installing Dependencies from Source2 | ||
794 | @subsection Installing Dependencies from Source2 | ||
795 | |||
796 | Yes, we said we start with a Debian 8 "stable" system, but because Debian | ||
797 | linked GnuTLS without support for DANE, we need to compile a few things, | ||
798 | in addition to GNUnet, still by hand. Yes, you can run GNUnet using the | ||
799 | respective Debian packages, but then you will not get DANE support. | ||
800 | |||
801 | Next, we need to install a few dependencies from source. You might want | ||
802 | to do this as a "normal" user and only run the @code{make install} steps | ||
803 | as root (hence the @code{sudo} in the commands below). Also, you do this | ||
804 | from any directory. We begin by downloading all dependencies, then | ||
805 | extracting the sources, and finally compiling and installing the | ||
806 | libraries: | ||
807 | |||
808 | @example | ||
809 | $ wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.3/gnutls-3.3.12.tar.xz | ||
810 | $ tar xvf gnutls-3.3.12.tar.xz | ||
811 | $ cd gnutls-3.3.12 ; ./configure ; make ; sudo make install ; cd .. | ||
812 | @end example | ||
813 | |||
814 | For the installation and compilation of libgnurl/gnURL refer to | ||
815 | the generic installation section, | ||
816 | @xref{generic source installation - libgnurl}. | ||
817 | |||
818 | @node Installing GNUnet from Source2 | ||
819 | @subsection Installing GNUnet from Source2 | ||
820 | |||
821 | For this, simply follow the generic installation instructions from@ | ||
822 | here. | ||
823 | |||
824 | @node But wait (again) there is more! | ||
825 | @subsection But wait (again) there is more! | ||
826 | |||
827 | So far, we installed all of the packages and dependencies required to | ||
828 | ensure that all of GNUnet would be built. However, while for example the | ||
829 | plugins to interact with the MySQL or Postgres databases have been | ||
830 | created, we did not actually install or configure those databases. | ||
831 | Thus, you will need to install and configure those databases or stick | ||
832 | with the default Sqlite database. Sqlite is usually fine for most | ||
833 | applications, but MySQL can offer better performance and Postgres better | ||
834 | resillience. | ||
835 | |||
836 | @node Build instructions for macOS | ||
837 | @section Build instructions for macOS | ||
838 | @c FIXME: I -> we | ||
839 | |||
840 | These are the installation guidelines for macOS. | ||
841 | They were tested on macOS High Sierra. | ||
842 | |||
843 | @menu | ||
844 | * Installing dependencies:: | ||
845 | * Compile from Source:: | ||
846 | @end menu | ||
847 | |||
848 | @node Installing dependencies | ||
849 | @subsection Installing dependencies | ||
850 | |||
851 | First, install XCode in the newest version. | ||
852 | See https://developer.apple.com/xcode/. | ||
853 | |||
854 | Install Homebrew (https://brew.sh) and then install the dependencies listed above. | ||
855 | If a dependency does not exists in brew, you need to compile it from source. | ||
856 | |||
857 | @example | ||
858 | # brew install <dependency> | ||
859 | @end example | ||
860 | |||
861 | @node Compile from Source | ||
862 | @subsection Compile from Source | ||
863 | |||
864 | Before you start building GNUnet, you need to setup your environment. | ||
865 | This means that you have to make sure the proper tools are used in the build process. | ||
866 | For example, after installing texinfo you need to make sure the new texinfo is actually used: | ||
867 | |||
868 | @example | ||
869 | # echo 'export PATH="/usr/local/opt/texinfo/bin:$PATH"' >> ~/.bash_profile | ||
870 | @end example | ||
871 | |||
872 | Note: brew tells you the appropriate command when executing | ||
873 | |||
874 | @example | ||
875 | # brew info texinfo | ||
876 | @end example | ||
877 | |||
878 | This may also be necessary for the gettext package. | ||
879 | |||
880 | Before you start compiling, you need to make sure gcc is used and not the clang compile of your macOS system. | ||
881 | On my system, gcc was actually ``gcc-7'' and gcc pointed to the clang compiler. | ||
882 | |||
883 | @example | ||
884 | # export CC=gcc-7 | ||
885 | @end example | ||
886 | |||
887 | After this the standard compile instructions apply. | ||
888 | |||
889 | @c @node Build instructions for OpenBSD 6.2 | ||
890 | @c @section Build instructions for OpenBSD 6.2 | ||
891 | |||
892 | @node Outdated build instructions for previous revisions | ||
893 | @section Outdated build instructions for previous revisions | ||
894 | |||
895 | This chapter contains a collection of outdated, older installation guides. | ||
896 | They are mostly intended to serve as a starting point for writing | ||
897 | up-to-date instructions and should not be expected to work for | ||
898 | GNUnet 0.10.x. | ||
899 | A set of older installation instructions can also be found in the | ||
900 | file @file{doc/outdated-and-old-installation-instructions.txt} in the | ||
901 | source tree of GNUnet. | ||
902 | |||
903 | This file covers old instructions which no longer receive security | ||
904 | updates or any kind of support. | ||
905 | |||
906 | @menu | ||
907 | * Installing GNUnet 0.10.1 on Ubuntu 14.04:: | ||
908 | * Building GLPK for MinGW:: | ||
909 | * GUI build instructions for Ubuntu 12.04 using Subversion:: | ||
910 | @c * Installation with gnunet-update:: | ||
911 | * Instructions for Microsoft Windows Platforms (Old):: | ||
912 | @end menu | ||
913 | |||
914 | |||
915 | @node Installing GNUnet 0.10.1 on Ubuntu 14.04 | ||
916 | @subsection Installing GNUnet 0.10.1 on Ubuntu 14.04 | ||
917 | |||
918 | Install the required dependencies: | ||
919 | |||
920 | @example | ||
921 | $ sudo apt-get install libltdl-dev libgpg-error-dev libidn11-dev \ | ||
922 | libunistring-dev libglpk-dev libbluetooth-dev libextractor-dev \ | ||
923 | libmicrohttpd-dev libgnutls28-dev | ||
924 | @end example | ||
925 | |||
926 | Choose one or more database backends: | ||
927 | |||
928 | @itemize @bullet | ||
929 | |||
930 | @item SQLite3 | ||
931 | |||
932 | @example | ||
933 | $ sudo apt-get install libsqlite3-dev@ | ||
934 | @end example | ||
935 | |||
936 | @item MySQL | ||
937 | |||
938 | @example | ||
939 | $ sudo apt-get install libmysqlclient-dev@ | ||
940 | @end example | ||
941 | |||
942 | @item PostgreSQL | ||
943 | |||
944 | @example | ||
945 | $ sudo apt-get install libpq-dev postgresql@ | ||
946 | @end example | ||
947 | |||
948 | @end itemize | ||
949 | |||
950 | Install the optional dependencies for gnunet-conversation: | ||
951 | |||
952 | @example | ||
953 | $ sudo apt-get install gstreamer1.0 libpulse-dev libopus-dev | ||
954 | @end example | ||
955 | |||
956 | Install libgcrypt 1.6: | ||
957 | |||
958 | @itemize @bullet | ||
959 | |||
960 | @item For Ubuntu 14.04: | ||
961 | |||
962 | @example | ||
963 | $ sudo apt-get install libgcrypt20-dev | ||
964 | @end example | ||
965 | |||
966 | @item For Ubuntu older than 14.04: | ||
967 | |||
968 | @example | ||
969 | wget ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.6.1.tar.bz2 | ||
970 | $ tar xf libgcrypt-1.6.1.tar.bz2 | ||
971 | $ cd libgcrypt-1.6.1 | ||
972 | $ ./configure | ||
973 | $ sudo make install | ||
974 | $ cd .. | ||
975 | @end example | ||
976 | @end itemize | ||
977 | |||
978 | Install libgnurl: | ||
979 | |||
980 | @pxref{generic source installation - libgnurl}. | ||
981 | |||
982 | Install GNUnet: | ||
983 | |||
984 | @example | ||
985 | $ wget http://ftpmirror.gnu.org/gnunet/gnunet-0.10.1.tar.gz | ||
986 | $ tar xf gnunet-0.10.1.tar.gz | ||
987 | $ cd gnunet-0.10.1 | ||
988 | @end example | ||
989 | |||
990 | If you want to: | ||
991 | |||
992 | @itemize @bullet | ||
993 | |||
994 | @item | ||
995 | Install to a different directory: | ||
996 | |||
997 | @example | ||
998 | --prefix=PREFIX | ||
999 | @end example | ||
1000 | |||
1001 | @item | ||
1002 | Have sudo permission, but do not want to compile as root: | ||
1003 | |||
1004 | @example | ||
1005 | --with-sudo | ||
1006 | @end example | ||
1007 | |||
1008 | @item | ||
1009 | Want debug message enabled: | ||
1010 | |||
1011 | @example | ||
1012 | --enable-logging=verbose | ||
1013 | @end example | ||
1014 | |||
1015 | @end itemize | ||
1016 | |||
1017 | @example | ||
1018 | $ ./configure [ --with-sudo | --prefix=PREFIX | --enable-logging=verbose] | ||
1019 | $ make; sudo make install | ||
1020 | @end example | ||
1021 | |||
1022 | After installing it, you need to create an empty configuration file: | ||
1023 | |||
1024 | @example | ||
1025 | touch ~/.config/gnunet.conf | ||
1026 | @end example | ||
1027 | |||
1028 | And finally you can start GNUnet with | ||
1029 | |||
1030 | @example | ||
1031 | $ gnunet-arm -s | ||
1032 | @end example | ||
1033 | |||
1034 | @node Building GLPK for MinGW | ||
1035 | @subsection Building GLPK for MinGW | ||
1036 | |||
1037 | GNUnet now requires the GNU Linear Programming Kit (GLPK). | ||
1038 | Since there's is no package you can install with @code{mingw-get} you | ||
1039 | have to compile it from source: | ||
1040 | |||
1041 | @itemize @bullet | ||
1042 | |||
1043 | @item Download the latest version from | ||
1044 | @uref{http://ftp.gnu.org/gnu/glpk/} | ||
1045 | |||
1046 | @item Unzip the downloaded source tarball using your favourite | ||
1047 | unzipper application In the MSYS shell | ||
1048 | |||
1049 | @item change to the respective directory | ||
1050 | |||
1051 | @item Configure glpk for "i686-pc-mingw32": | ||
1052 | |||
1053 | @example | ||
1054 | ./configure '--build=i686-pc-mingw32' | ||
1055 | @end example | ||
1056 | |||
1057 | @item run | ||
1058 | |||
1059 | @example | ||
1060 | make install check | ||
1061 | @end example | ||
1062 | |||
1063 | @end itemize | ||
1064 | |||
1065 | MinGW does not automatically detect the correct buildtype so you have to | ||
1066 | specify it manually. | ||
1067 | |||
1068 | |||
1069 | @node GUI build instructions for Ubuntu 12.04 using Subversion | ||
1070 | @subsection GUI build instructions for Ubuntu 12.04 using Subversion | ||
1071 | |||
1072 | After installing GNUnet you can continue installing the GNUnet GUI tools: | ||
1073 | |||
1074 | First, install the required dependencies: | ||
1075 | |||
1076 | @example | ||
1077 | $ sudo apt-get install libgladeui-dev libqrencode-dev | ||
1078 | @end example | ||
1079 | |||
1080 | Please ensure that the GNUnet shared libraries can be found by the linker. | ||
1081 | If you installed GNUnet libraries in a non standard path | ||
1082 | (say GNUNET_PREFIX=/usr/local/lib/), you can | ||
1083 | |||
1084 | @itemize @bullet | ||
1085 | |||
1086 | @item set the environmental variable permanently to: | ||
1087 | |||
1088 | @example | ||
1089 | LD_LIBRARY_PATH=$GNUNET_PREFIX | ||
1090 | @end example | ||
1091 | |||
1092 | @item or add @code{$GNUNET_PREFIX} to @file{/etc/ld.so.conf} | ||
1093 | |||
1094 | @end itemize | ||
1095 | |||
1096 | Now you can checkout and compile the GNUnet GUI tools: | ||
1097 | |||
1098 | @example | ||
1099 | $ git clone https://gnunet.org/git/gnunet-gtk | ||
1100 | $ cd gnunet-gtk | ||
1101 | $ ./bootstrap | ||
1102 | $ ./configure --prefix=$GNUNET_PREFIX/.. --with-gnunet=$GNUNET_PREFIX/.. | ||
1103 | $ make install | ||
1104 | @end example | ||
1105 | |||
1106 | @node Instructions for Microsoft Windows Platforms (Old) | ||
1107 | @subsection Instructions for Microsoft Windows Platforms (Old) | ||
1108 | |||
1109 | This document is a @b{DEPRECATED} installation guide for GNUnet on | ||
1110 | Windows. | ||
1111 | It will not work for recent GNUnet versions, but maybe it will be of | ||
1112 | some use if problems arise. | ||
1113 | |||
1114 | The Windows build uses a UNIX emulator for Windows, | ||
1115 | @uref{http://www.mingw.org/, MinGW}, to build the executable modules. | ||
1116 | These modules run natively on Windows and do not require additional | ||
1117 | emulation software besides the usual dependencies. | ||
1118 | |||
1119 | GNUnet development is mostly done under GNU/Linux and especially git | ||
1120 | checkouts may not build out of the box. | ||
1121 | We regret any inconvenience, and if you have problems, please report them. | ||
1122 | |||
1123 | @menu | ||
1124 | * Hardware and OS requirements:: | ||
1125 | * Software installation:: | ||
1126 | * Building libextractor and GNUnet:: | ||
1127 | * Installer:: | ||
1128 | * Source:: | ||
1129 | @end menu | ||
1130 | |||
1131 | @node Hardware and OS requirements | ||
1132 | @subsubsection Hardware and OS requirements | ||
1133 | |||
1134 | @itemize @bullet | ||
1135 | @item Pentium II or equivalent processor, @geq{} 350 MHz | ||
1136 | @item 128 MB RAM | ||
1137 | @item 600 MB free disk space | ||
1138 | @item Windows 2000 or Windows XP are recommended | ||
1139 | @end itemize | ||
1140 | |||
1141 | @node Software installation | ||
1142 | @subsubsection Software installation | ||
1143 | |||
1144 | @itemize @bullet | ||
1145 | |||
1146 | @item | ||
1147 | @strong{Compression software}@ | ||
1148 | |||
1149 | The software packages GNUnet depends on are usually compressed using UNIX | ||
1150 | tools like @command{tar}, @command{gzip}, @command{xzip} and | ||
1151 | @command{bzip2}. | ||
1152 | If you do not already have an utility that is able to extract such | ||
1153 | archives, get @uref{http://www.7-zip.org/, 7-Zip}. | ||
1154 | |||
1155 | @item | ||
1156 | @strong{UNIX environment}@ | ||
1157 | |||
1158 | The MinGW project provides the compiler toolchain that is used to build | ||
1159 | GNUnet. | ||
1160 | Get the following packages from the | ||
1161 | @uref{http://sourceforge.net/projects/mingw/files/, MinGW} project: | ||
1162 | |||
1163 | @itemize @bullet | ||
1164 | |||
1165 | @item GCC core | ||
1166 | @item GCC g++ | ||
1167 | @item MSYS | ||
1168 | @item MSYS Developer Tool Kit (msysDTK) | ||
1169 | @item MSYS Developer Tool Kit - msys-autoconf (bin) | ||
1170 | @item MSYS Developer Tool Kit - msys-automake (bin) | ||
1171 | @item MinGW Runtime | ||
1172 | @item MinGW Utilities | ||
1173 | @item Windows API | ||
1174 | @item Binutils | ||
1175 | @item make | ||
1176 | @item pdcurses | ||
1177 | @item GDB (snapshot) | ||
1178 | @end itemize | ||
1179 | |||
1180 | @itemize @bullet | ||
1181 | |||
1182 | |||
1183 | @item Install MSYS (to c:\mingw, for example.)@ | ||
1184 | Do @strong{not} use spaces in the pathname. | ||
1185 | For example, avoid a location such as @file{c:\program files\mingw}. | ||
1186 | |||
1187 | @item Install MinGW runtime, utilities and GCC to a subdirectory | ||
1188 | (to @file{c:\mingw\mingw}, for example) | ||
1189 | |||
1190 | @item Install the Development Kit to the MSYS directory | ||
1191 | (@file{c:\mingw}) | ||
1192 | |||
1193 | @item Create a batch file bash.bat in your MSYS directory with | ||
1194 | the files: | ||
1195 | |||
1196 | @example | ||
1197 | bin\sh.exe --login | ||
1198 | @end example | ||
1199 | |||
1200 | This batch file opens a shell which is used to invoke the build | ||
1201 | processes. | ||
1202 | MinGW's standard shell (@command{msys.bat}) is not suitable | ||
1203 | because it opens a separate console window. | ||
1204 | On Vista, @command{bash.bat} needs to be run as Administrator. | ||
1205 | |||
1206 | @item | ||
1207 | Start @command{bash.sh} and rename | ||
1208 | @file{c:\mingw\mingw\lib\libstdc++.la} to avoid problems: | ||
1209 | |||
1210 | @example | ||
1211 | mv /usr/mingw/lib/libstdc++.la /usr/mingw/lib/libstdc++.la.broken | ||
1212 | @end example | ||
1213 | |||
1214 | @item | ||
1215 | Unpack the Windows API to the MinGW directory (@file{c:\mingw\mingw\}) and | ||
1216 | remove the declaration of DATADIR from | ||
1217 | (@file{c:\mingw\mingw\include\objidl.h} (lines 55-58) | ||
1218 | |||
1219 | @item | ||
1220 | Unpack autoconf, automake to the MSYS directory (@file{c:\mingw}) | ||
1221 | |||
1222 | @item | ||
1223 | Install all other packages to the MinGW directory (@file{c:\mingw\mingw\}) | ||
1224 | @end itemize | ||
1225 | |||
1226 | |||
1227 | @item @strong{GNU Libtool}@ | ||
1228 | GNU Libtool is required to use shared libraries. | ||
1229 | Get the prebuilt package from here and unpack it to the | ||
1230 | MinGW directory (@file{c:\mingw}) | ||
1231 | |||
1232 | @item @strong{Pthreads}@ | ||
1233 | GNUnet uses the portable POSIX thread library for multi-threading: | ||
1234 | |||
1235 | @itemize @bullet | ||
1236 | |||
1237 | @item Save | ||
1238 | @uref{ftp://sources.redhat.com/pub/pthreads-win32/dll-latest/lib/x86/libpthreadGC2.a, libpthreadGC2.a} | ||
1239 | (x86) or | ||
1240 | @uref{ftp://sources.redhat.com/pub/pthreads-win32/dll-latest/lib/x64/libpthreadGC2.a, libpthreadGC2.a} | ||
1241 | (x64) as libpthread.a into the @file{lib} | ||
1242 | directory (@file{c:\mingw\mingw\lib\libpthread.a}). | ||
1243 | |||
1244 | @item Save | ||
1245 | @uref{ftp://sources.redhat.com/pub/pthreads-win32/dll-latest/lib/x86/pthreadGC2.dll, pthreadGC2.dll} | ||
1246 | (x86) or | ||
1247 | @uref{ftp://sources.redhat.com/pub/pthreads-win32/dll-latest/lib/x64/pthreadGC2.dll, libpthreadGC2.a} | ||
1248 | (x64) into the MinGW @file{bin} directory (@file{c:\mingw\mingw\bin}). | ||
1249 | |||
1250 | @item Download all header files from | ||
1251 | @uref{ftp://sources.redhat.com/pub/pthreads-win32/dll-latest/include/, include/} | ||
1252 | to the @file{include} directory (@file{c:\mingw\mingw\include}). | ||
1253 | @end itemize | ||
1254 | |||
1255 | |||
1256 | @item @strong{GNU MP}@ | ||
1257 | GNUnet uses the GNU Multiple Precision library for special cryptographic | ||
1258 | operations. Get the GMP binary package from the | ||
1259 | @uref{http://sourceforge.net/projects/mingwrep/, MinGW repository} and | ||
1260 | unpack it to the MinGW directory (@file{c:\mingw\mingw}) | ||
1261 | |||
1262 | @item @strong{GNU Gettext}@ | ||
1263 | GNU gettext is used to provide national language support. | ||
1264 | Get the prebuilt package from hereand unpack it to the MinGW | ||
1265 | directory (@file{c:\mingw\mingw}) | ||
1266 | |||
1267 | @item @strong{GNU iconv}@ | ||
1268 | GNU Libiconv is used for character encoding conversion. | ||
1269 | Get the prebuilt package from here and unpack it to the MinGW | ||
1270 | directory (@file{c:\mingw\mingw}). | ||
1271 | |||
1272 | @item @strong{SQLite}@ | ||
1273 | GNUnet uses the SQLite database to store data. | ||
1274 | Get the prebuilt binary from here and unpack it to your MinGW directory. | ||
1275 | |||
1276 | @item @strong{MySQL}@ | ||
1277 | As an alternative to SQLite, GNUnet also supports MySQL. | ||
1278 | |||
1279 | @itemize @bullet | ||
1280 | |||
1281 | @item Get the binary installer from the | ||
1282 | @uref{http://dev.mysql.com/downloads/mysql/4.1.html#Windows, MySQL project} | ||
1283 | (version 4.1), install it and follow the instructions in | ||
1284 | @file{README.mysql}. | ||
1285 | |||
1286 | @item Create a temporary build directory (@file{c:\mysql}) | ||
1287 | |||
1288 | @item Copy the directories @file{include\} and @file{lib\} from the | ||
1289 | MySQL directory to the new directory | ||
1290 | |||
1291 | @item Get the patches from | ||
1292 | @uref{http://bugs.mysql.com/bug.php?id=8906&files=1, Bug #8906} and | ||
1293 | @uref{http://bugs.mysql.com/bug.php?id=8872&files=1, Bug #8872} (the | ||
1294 | latter is only required for MySQL | ||
1295 | |||
1296 | @example | ||
1297 | patch -p 0 | ||
1298 | @end example | ||
1299 | |||
1300 | @item Move @file{lib\opt\libmysql.dll} to @file{lib\libmysql.dll} | ||
1301 | |||
1302 | @item Change to @file{lib\} and create an import library: | ||
1303 | |||
1304 | @example | ||
1305 | dlltool --input-def ../include/libmySQL.def \ | ||
1306 | --dllname libmysql.dll \ | ||
1307 | --output-lib libmysqlclient.a -k | ||
1308 | @end example | ||
1309 | |||
1310 | @item Copy include\* to include\mysql\ | ||
1311 | |||
1312 | @item Pass @code{--with-mysql=/c/mysql} to | ||
1313 | @command{./configure} and copy @file{libmysql.dll} | ||
1314 | to your PATH or GNUnet's @file{bin} directory | ||
1315 | @end itemize | ||
1316 | |||
1317 | |||
1318 | @item @strong{GTK+}@ | ||
1319 | @command{gnunet-fs-gtk} and @command{libextractor} depend on GTK. | ||
1320 | Get the the binary and developer packages of @command{atk}, | ||
1321 | @command{glib}, @command{gtk}, @command{iconv}, | ||
1322 | @command{gettext-runtime}, @command{pango} from | ||
1323 | @uref{ftp://ftp.gtk.org/pub/gtk/v2.6/win32, gtk.org} and unpack them | ||
1324 | to the MinGW directory (@file{c:\mingw\mingw}). | ||
1325 | @c FIXME: The URL below for pkg-config seems wrong. | ||
1326 | Get @uref{http://www.gtk.org/download/win32.php, pkg-config} and | ||
1327 | @command{libpng} and unpack them to the MinGW directory | ||
1328 | (@file{c:\mingw\mingw}). | ||
1329 | Here is an all-in-one package for the | ||
1330 | @uref{http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.24/gtk+-bundle_2.24.10-20120208_win32.zip, gtk+dependencies} | ||
1331 | . Do not overwrite any existing files! | ||
1332 | |||
1333 | @item @strong{Glade}@ | ||
1334 | @command{gnunet-*-gtk} and @command{gnunet-setup} were created using | ||
1335 | this interface builder | ||
1336 | |||
1337 | @itemize @bullet | ||
1338 | |||
1339 | @item Get the Glade and libglade (-bin and -devel) packages | ||
1340 | (without GTK!) from | ||
1341 | @uref{http://gladewin32.sourceforge.net/, GladeWin32} and unpack them to | ||
1342 | the MinGW directory (@file{c:\mingw\mingw}). | ||
1343 | |||
1344 | @item Get @command{libxml} from here and unpack it to the MinGW | ||
1345 | directory (@file{c:\mingw\mingw}). | ||
1346 | @end itemize | ||
1347 | |||
1348 | @c FIXME: URLs | ||
1349 | @item @strong{zLib}@ | ||
1350 | @command{libextractor} requires @command{zLib} to decompress some file | ||
1351 | formats. GNUnet uses it to (de)compress meta-data. | ||
1352 | Get zLib from here (Signature) and unpack it to the MinGW directory | ||
1353 | (@file{c:\mingw\mingw}). | ||
1354 | |||
1355 | @item @strong{Bzip2}@ | ||
1356 | @command{libextractor} also requires @command{Bzip2} to | ||
1357 | decompress some file formats. | ||
1358 | Get the Bzip2 (binary and developer package) from | ||
1359 | @uref{http://gnuwin32.sourceforge.net/packages/bzip2.htm, GnuWin32} and | ||
1360 | unpack it to the MinGW directory (@file{c:\mingw\mingw}). | ||
1361 | |||
1362 | @item @strong{Libgcrypt}@ | ||
1363 | @command{Libgcrypt} provides the cryptographic functions used by GNUnet. | ||
1364 | Get Libgcrypt from @uref{ftp://ftp.gnupg.org/gcrypt/libgcrypt/, here}, | ||
1365 | compile and place it in the MinGW directory | ||
1366 | (@file{c:\mingw\mingw}). Currently libgcrypt @geq{} 1.4.2 is required to | ||
1367 | compile GNUnet. | ||
1368 | |||
1369 | @item @strong{PlibC}@ | ||
1370 | PlibC emulates Unix functions under Windows. Get PlibC from here and | ||
1371 | unpack it to the MinGW directory (c:\mingw\mingw) | ||
1372 | |||
1373 | @item @strong{OGG Vorbis}@ | ||
1374 | @command{OGG Vorbis} is used to extract meta-data from @file{.ogg} files. | ||
1375 | Get the packages | ||
1376 | @uref{http://www.gnunet.org/libextractor/download/win/libogg-1.1.4.zip, libogg} | ||
1377 | and | ||
1378 | @uref{http://www.gnunet.org/libextractor/download/win/libvorbis-1.2.3.zip, libvorbis} | ||
1379 | from the | ||
1380 | @uref{http://ftp.gnu.org/gnu/libextractor/libextractor-w32-1.0.0.zip, libextractor win32 build} | ||
1381 | and unpack them to the MinGW directory (c:\mingw\mingw). | ||
1382 | |||
1383 | @item @strong{Exiv2}@ | ||
1384 | (lib)Exiv2 is used to extract meta-data from files with Exiv2 meta-data. | ||
1385 | Download | ||
1386 | @uref{http://www.gnunet.org/libextractor/download/win/exiv2-0.18.2.zip, Exiv2} | ||
1387 | and unpack it to the MSYS directory (c:\mingw). | ||
1388 | @end itemize | ||
1389 | |||
1390 | @node Building libextractor and GNUnet | ||
1391 | @subsubsection Building libextractor and GNUnet | ||
1392 | |||
1393 | Before you compile @command{libextractor} or @command{GNUnet}, | ||
1394 | be sure to set @code{PKG_CONFIG_PATH}: | ||
1395 | |||
1396 | @example | ||
1397 | export PKG_CONFIG_PATH=/mingw/lib/pkgconfig | ||
1398 | @end example | ||
1399 | |||
1400 | @noindent | ||
1401 | @xref{GNUnet Installation Handbook}, for basic instructions on building | ||
1402 | @command{libextractor} and @command{GNUnet}. | ||
1403 | By default, all modules that are created in this way contain | ||
1404 | debug information and are quite large. To compile release versions | ||
1405 | (small and fast) set the variable @code{CFLAGS}: | ||
1406 | |||
1407 | @example | ||
1408 | export CFLAGS='-O2 -march=pentium -fomit-frame-pointer' | ||
1409 | ./configure --prefix=$HOME --with-extractor=$HOME | ||
1410 | @end example | ||
1411 | |||
1412 | @node Installer | ||
1413 | @subsubsection Installer | ||
1414 | |||
1415 | The GNUnet installer is made with | ||
1416 | @uref{http://nsis.sourceforge.net/, NSIS}. The installer script is | ||
1417 | located in @file{contrib\win} in the GNUnet source tree. | ||
1418 | |||
1419 | @node Source | ||
1420 | @subsubsection Source | ||
1421 | |||
1422 | @c FIXME: URL... or: WHERE is HERE? | ||
1423 | The sources of all dependencies are available here. | ||
diff --git a/doc/system_specific/outdated-and-old-installation-instructions.txt b/doc/system_specific/outdated-and-old-installation-instructions.txt new file mode 100644 index 000000000..f2cbe1847 --- /dev/null +++ b/doc/system_specific/outdated-and-old-installation-instructions.txt | |||
@@ -0,0 +1,672 @@ | |||
1 | # This file contains pieces from chapter/installation.texi for systems where the LTS or otherwise support | ||
2 | # ended. They can be useful for people trying to write new installation instructions for those systems. | ||
3 | # In particual this covers: | ||
4 | # - FreeBSD 8 | ||
5 | # - Mac OS X Tiger | ||
6 | # - Fedora 8 | ||
7 | # - Gentoo with GNUnet 0.9 | ||
8 | # | ||
9 | # Sources for LTS and support ranges: | ||
10 | # https://www.freebsd.org/security/security.html#sup | ||
11 | # https://support.microsoft.com/en-us/help/17140/lifecycle-faq-general-policy-questions | ||
12 | # Mac products, OS is supposedly similar (no official statements exist): https://web.archive.org/web/20160706101225/https://support.apple.com/en-us/HT201624 | ||
13 | # https://wiki.debian.org/LTS | ||
14 | # https://www.ubuntu.com/info/release-end-of-life | ||
15 | |||
16 | @node Build instructions for Gentoo | ||
17 | @subsection Build instructions for Gentoo | ||
18 | |||
19 | |||
20 | This page describes how to install GNUnet 0.9 on Gentoo. | ||
21 | |||
22 | Since the GNUnet 0.9 ebuilds are not in the official portage tree yet, we need | ||
23 | to add them to the local portage overlay. All the commands below should be | ||
24 | executed as root. | ||
25 | |||
26 | Specify your local portage directory in the /etc/make.conf, for example:@ | ||
27 | @code{$ echo 'PORTDIR_OVERLAY="/usr/local/portage"' >> /etc/make.conf} | ||
28 | |||
29 | Create directories for the ebuilds:@ | ||
30 | @code{$ mkdir -p /usr/local/portage/media-libs/libextractor /usr/local/portage/net-p2p/gnunet/files} | ||
31 | |||
32 | Download the latest ebuilds, init and config files from here and put them into | ||
33 | respective directories:@ | ||
34 | @code{$ cp libextractor-0.6.2.ebuild /usr/local/portage/media-libs/libextractor@ | ||
35 | $ cp gnunet-0.9.2.ebuild /usr/local/portage/net-p2p/gnunet@ | ||
36 | $ cp gnunet-0.9.2.conf gnunet-0.9.2.confd gnunet-0.9.2.initd /usr/local/portage/net-p2p/gnunet/files} | ||
37 | |||
38 | Generate Manifest files for the ebuilds:@ | ||
39 | @code{$ cd /usr/local/portage/net-p2p/gnunet@ | ||
40 | $ ebuild gnunet-0.9.2.ebuild digest@ | ||
41 | $ cd /usr/local/portage/media-libs/libextractor@ | ||
42 | $ ebuild libextractor-0.6.2.ebuild digest} | ||
43 | |||
44 | Unmask GNUnet and dependencies in the /etc/portage/package.keywords. For | ||
45 | example, if you use x86-64 architecture, add the following lines:@ | ||
46 | @code{net-p2p/gnunet ~amd64@ | ||
47 | media-libs/libextractor ~amd64@ | ||
48 | net-libs/libmicrohttpd ~amd64@ | ||
49 | net-misc/curl ~amd64} | ||
50 | |||
51 | Add either sqlite or mysql USE-flag in the /etc/portage/package.use:@ | ||
52 | @code{net-p2p/gnunet sqlite} | ||
53 | |||
54 | Now everything is ready to install GNUnet:@ | ||
55 | @code{$ emerge -av gnunet} | ||
56 | |||
57 | Use /etc/init.d/gnunet to start/stop GNUnet. | ||
58 | |||
59 | |||
60 | |||
61 | |||
62 | @node Basic Installation for Fedora/PlanetLab nodes running Fedora 8 . | ||
63 | @subsection Basic Installation for Fedora/PlanetLab nodes running Fedora 8 . | ||
64 | @c %**end of header | ||
65 | |||
66 | @strong{This documentation is outdated and not valid for GNUnet 0.10.0!}@ | ||
67 | GNUnet installation on Fedora 8/Planetlab nodes can be done as following: | ||
68 | |||
69 | 1. Install the build tools to build GNUnet@ | ||
70 | @example | ||
71 | sudo yum -y -t --nogpgcheck install gcc make automake autoconf gettext-devel \ | ||
72 | texinfo zlib-devel subversion@ | ||
73 | @end example | ||
74 | |||
75 | 2. Install the GNUnet dependencies@ | ||
76 | @example | ||
77 | sudo yum -y -t --nogpgcheck install gnutls-devel gnutls-devel libgcrypt-devel \ | ||
78 | sqlite-devel postgresql-devel mysql-devel libgsf-devel libvorbis-devel \ | ||
79 | libidn-devel | ||
80 | @end example | ||
81 | |||
82 | 3. Install outdated dependencies from source@ | ||
83 | libtool@ | ||
84 | @code{@ | ||
85 | wget http://ftp.gnu.org/gnu/libtool/libtool-2.4.2.tar.gz@ | ||
86 | tar xvfz libtool-2.4.2.tar.gz@ | ||
87 | cd libtool-2.4.2@ | ||
88 | ./configure@ | ||
89 | sudo make install@ | ||
90 | } | ||
91 | |||
92 | libtool@ | ||
93 | @code{@ | ||
94 | wget http://ftp.gnu.org/gnu/libtool/libtool-2.4.2.tar.gz@ | ||
95 | tar xvfz libtool-2.4.2.tar.gz@ | ||
96 | cd libtool-2.4.2@ | ||
97 | ./configure@ | ||
98 | sudo make install@ | ||
99 | } | ||
100 | |||
101 | glpk@ | ||
102 | @code{@ | ||
103 | wget http://ftp.gnu.org/gnu/glpk/glpk-4.47.tar.gz@ | ||
104 | tar xvfz glpk-4.47.tar.gz@ | ||
105 | cd glpk-4.47@ | ||
106 | ./configure@ | ||
107 | sudo make install@ | ||
108 | } | ||
109 | |||
110 | libgpg-error@ | ||
111 | @code{@ | ||
112 | wget ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.10.tar.bz2@ | ||
113 | tar xvfj libgpg-error-1.10.tar.bz2@ | ||
114 | cd libgpg-error-1.10@ | ||
115 | ./configure --prefix=/usr@ | ||
116 | sudo make install@ | ||
117 | } | ||
118 | |||
119 | libgcrypt@ | ||
120 | @code{@ | ||
121 | wget ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.5.0.tar.bz2@ | ||
122 | tar xvfj libgcrypt-1.5.0.tar.tar.bz2@ | ||
123 | cd libgcrypt-1.5.0@ | ||
124 | ./configure --prefix=/usr@ | ||
125 | sudo make install@ | ||
126 | } | ||
127 | |||
128 | libcurl@ | ||
129 | @code{@ | ||
130 | wget http://curl.haxx.se/download/curl-7.26.0.tar.gz@ | ||
131 | tar xvfz curl-7.26.0.tar.gz@ | ||
132 | cd curl-7.26.0@ | ||
133 | ./configure@ | ||
134 | sudo make install@ | ||
135 | } | ||
136 | |||
137 | libunistring@ | ||
138 | @code{@ | ||
139 | wget http://ftp.gnu.org/gnu/libunistring/libunistring-0.9.3.tar.gz@ | ||
140 | tar xvfz libunistring-0.9.3.tar.gz@ | ||
141 | cd libunistring-0.9.3@ | ||
142 | ./configure@ | ||
143 | sudo make install@ | ||
144 | } | ||
145 | |||
146 | 4. Remove conflicting packages@ | ||
147 | @code{@ | ||
148 | sudo rpm -e --nodeps libgcrypt libgpg-error@ | ||
149 | } | ||
150 | |||
151 | 4. Install libextractor@ | ||
152 | @code{@ | ||
153 | wget ftp://ftp.gnu.org/gnu/libextractor/libextractor-0.6.3.tar.gz@ | ||
154 | tar xvfz libextractor-0.6.3.tar.gz@ | ||
155 | cd libextractor-0.6.3@ | ||
156 | ./configure@ | ||
157 | sudo make install@ | ||
158 | } | ||
159 | |||
160 | 5. Install libmicrohttpd and dependencies | ||
161 | |||
162 | nettle@ | ||
163 | @code{@ | ||
164 | wget http://ftp.gnu.org/gnu/nettle/nettle-2.5.tar.gz@ | ||
165 | tar xvfz nettle-2.5.tar.gz@ | ||
166 | cd nettle-2.5@ | ||
167 | ./configure@ | ||
168 | sudo make install@ | ||
169 | } | ||
170 | |||
171 | GnuTLS@ | ||
172 | @code{@ | ||
173 | wget http://ftp.gnu.org/gnu/gnutls/gnutls-2.12.20.tar.bz2@ | ||
174 | tar xvfj gnutls-2.12.20.tar.bz2@ | ||
175 | cd gnutls-2.12.20@ | ||
176 | ./configure --without-p11-kit@ | ||
177 | sudo make install@ | ||
178 | } | ||
179 | |||
180 | libmicrohttpd@ | ||
181 | @code{@ | ||
182 | wget ftp://ftp.gnu.org/gnu/libmicrohttpd/libmicrohttpd-0.9.21.tar.gz@ | ||
183 | tar xvfz libmicrohttpd-0.9.21.tar.gz@ | ||
184 | cd libmicrohttpd-0.9.21@ | ||
185 | ./configure@ | ||
186 | sudo make install@ | ||
187 | } | ||
188 | |||
189 | 6. Set GNUnet prefix and add to PATH@ | ||
190 | @code{@ | ||
191 | export GNUNET_PREFIX=@ | ||
192 | export PATH=$PATH:$GNUNET_PREFIX/bin@ | ||
193 | } | ||
194 | |||
195 | 7. Install GNUnet from svn@ | ||
196 | @example | ||
197 | export LD_LIBRARY_PATH=/usr/local/lib@ | ||
198 | svn co https://gnunet.org/svn/gnunet@ | ||
199 | cd gnunet@ | ||
200 | libtoolize@ | ||
201 | ./bootstrap@ | ||
202 | ./configure --prefix=$GNUNET_PREFIX --with-extractor=/usr/local \ | ||
203 | --with-curl=/usr/local --with-mysql=/usr/lib/mysql --enable-logging=verbose@ | ||
204 | make install@ | ||
205 | @end example | ||
206 | |||
207 | Done! | ||
208 | |||
209 | |||
210 | @node Build instructions for FreeBSD 8 | ||
211 | @subsection Build instructions for FreeBSD 8 | ||
212 | |||
213 | To get GNUnet 0.9 to compile on FreeBSD (at least FreeBSD 8.0):@ in order to | ||
214 | install the library @code{libiconv}, at first change the directory to your | ||
215 | ports directory, e.g.@ | ||
216 | @code{@ | ||
217 | $ cd /usr/ports/@ | ||
218 | }@ | ||
219 | following that, go to the install file of @code{libiconv} and install it,@ | ||
220 | @code{@ | ||
221 | $ cd converters/libiconv,@ | ||
222 | $ make install@ | ||
223 | } | ||
224 | |||
225 | after that, change the directory to where you will check out | ||
226 | @code{libextractor} and GNUnet, and install latest @code{libextractor},@ | ||
227 | first of all, checkout @code{libextractor}, e.g.@ | ||
228 | @code{@ | ||
229 | $ svn co https://gnunet.org/svn/Extractor@ | ||
230 | }@ | ||
231 | then change the directory into which it was checked out, e.g.@ | ||
232 | @code{@ | ||
233 | $ cd Extractor@ | ||
234 | }@ | ||
235 | before the installation, you should do following steps,@ | ||
236 | |||
237 | @example | ||
238 | $ ./bootstrap@ | ||
239 | $ ./configure --with-ltdl-include=/usr/local/include \ | ||
240 | --with-ltdl-lib=/usr/local/lib@ | ||
241 | @end example | ||
242 | |||
243 | if these steps complete successfully, you can install the library,@ | ||
244 | |||
245 | @example | ||
246 | $ make install@ | ||
247 | @end example | ||
248 | |||
249 | to check out the GNUnet, you should do the similar steps as | ||
250 | @code{libextractor}, firstly, change back to starting directory, e.g.@ | ||
251 | @code{@ | ||
252 | $ cd ../@ | ||
253 | }@ | ||
254 | Set the following environmental variables:@ | ||
255 | @code{@ | ||
256 | export CPPFLAGS="-I/usr/local/include"@ | ||
257 | export LDFLAGS="-L/usr/local/lib"@ | ||
258 | }@ | ||
259 | next, checkout GNUnet using@ | ||
260 | @code{@ | ||
261 | $ svn co https://gnunet.org/svn/gnunet@ | ||
262 | }@ | ||
263 | then change directory into newly checked out directory,@ | ||
264 | @code{@ | ||
265 | $ cd gnunet@ | ||
266 | }@ | ||
267 | at last, start to install GNUnet,@ | ||
268 | |||
269 | @example | ||
270 | $ ./bootstrap@ | ||
271 | $ ./configure --with-ltdl-include=/usr/local/include \ | ||
272 | --with-ltdl-lib=/usr/local/lib --with-extractor=/usr/local | ||
273 | |||
274 | ## NOTE: you may not need the --with-extractor option!@ | ||
275 | |||
276 | $ make install | ||
277 | @end example | ||
278 | |||
279 | |||
280 | |||
281 | @node Basic installation for Mac OS X | ||
282 | @subsection Basic installation for Mac OS X | ||
283 | |||
284 | This documentation may be outdated! | ||
285 | |||
286 | This page is providing guidelines for users trying to install GNUnet on Mac OS | ||
287 | X.@ Mainly users trying to install GNUnet by building source code are the most | ||
288 | welcome readers.@ The steps below are tested on an Intel Architecture running | ||
289 | Mac OS X Tiger (10.4.11). Ideally they should work on other Mac boxes with | ||
290 | different configurations as all the configuration done for it is dependent on | ||
291 | @uref{http://www.macports.org/, MacPorts} | ||
292 | |||
293 | For having GNUnet installed successfully, some dependencies should be firstly | ||
294 | resolved: | ||
295 | |||
296 | @itemize @bullet | ||
297 | |||
298 | @item | ||
299 | Install/Update your @uref{http://developer.apple.com/tools/xcode/, Xcode} | ||
300 | version 3.2.1 or later for Snow Leopard, 3.1.4 or later for Leopard, or 2.5 for | ||
301 | Tiger. | ||
302 | |||
303 | @item | ||
304 | Download and install @uref{http://www.macports.org/, MacPorts}.@ | ||
305 | Now you are ready for installing GNunet dependencies. | ||
306 | |||
307 | @item | ||
308 | First, you'd better make sure that: /opt/local/bin and /opt/local/sbin are | ||
309 | available in your PATH. (For doing so, open a terminal and type:@ | ||
310 | |||
311 | @example | ||
312 | $ echo $PATH | ||
313 | @end example | ||
314 | |||
315 | and examine the output of it). If the paths are not available in your | ||
316 | environment, you have to add them (You can add them by editing your .profile | ||
317 | file in your home directory, append them to the PATH line). Then type: | ||
318 | @example | ||
319 | $ source ~/.profile | ||
320 | @end example | ||
321 | |||
322 | and re-examine the echo command output. | ||
323 | |||
324 | @item | ||
325 | Use MacPorts to download and install the dependencies:@ | ||
326 | The libraries are: | ||
327 | |||
328 | @itemize @bullet | ||
329 | |||
330 | @item | ||
331 | @uref{http://trac.macports.org/browser/trunk/dports/www/libmicrohttpd/Portfile, libmicrohttpd.} | ||
332 | |||
333 | @item | ||
334 | @uref{http://trac.macports.org/browser/trunk/dports/devel/libgcrypt/Portfile, libgcrypt.} | ||
335 | |||
336 | @item | ||
337 | @uref{http://trac.macports.org/browser/trunk/dports/net/curl/Portfile, libcurl.} | ||
338 | |||
339 | @item | ||
340 | @uref{http://trac.macports.org/browser/trunk/dports/devel/libtool/Portfile, libltdl.} | ||
341 | |||
342 | @item | ||
343 | @uref{http://trac.macports.org/browser/trunk/dports/databases/sqlite3/Portfile, SQlite.} | ||
344 | |||
345 | @item | ||
346 | libunistring | ||
347 | |||
348 | @item | ||
349 | glpk | ||
350 | |||
351 | @end itemize | ||
352 | |||
353 | The port command is as follows:@ | ||
354 | @example | ||
355 | port install libmicrohttpd libgcrypt curl libtool sqlite3 linunistring glpk | ||
356 | @end example | ||
357 | One of the dependencies, the libextractor, should be explicitly installed, | ||
358 | since the version available from macports is outdated to work with GNUnet. To | ||
359 | install the latest libextractor: | ||
360 | @itemize @bullet | ||
361 | |||
362 | |||
363 | @item | ||
364 | Install the Subversion Client:@ | ||
365 | For more information about Subversion visit: | ||
366 | @uref{http://subversion.tigris.org/, http://subversion.tigris.org/} | ||
367 | |||
368 | @example | ||
369 | # port install subversion | ||
370 | @end example | ||
371 | |||
372 | |||
373 | @item | ||
374 | Use Subversion to download the latest Extractor: | ||
375 | @example | ||
376 | $ svn checkout https://gnunet.org/svn/Extractor | ||
377 | @end example | ||
378 | |||
379 | |||
380 | @item | ||
381 | Go to the installation directory of the Extractor, compile and install it: | ||
382 | @example | ||
383 | $ ./bootstrap | ||
384 | $ export CPPFLAGS="-I/opt/local/include" | ||
385 | $ export LDFLAGS="-L/opt/local/lib" | ||
386 | $ ./configure --prefix=/opt/local | ||
387 | $ make | ||
388 | # make install | ||
389 | @end example | ||
390 | |||
391 | @end itemize | ||
392 | |||
393 | |||
394 | @item | ||
395 | Now, your system is ready to install GNunet. If you downloaded GNUnet by | ||
396 | checking it out from svn, you should start by running the bootstrap script. | ||
397 | Open a terminal pointing to the GNUnet directory and type:@ | ||
398 | |||
399 | @example | ||
400 | $ ./bootstrap | ||
401 | @end example | ||
402 | |||
403 | |||
404 | @item | ||
405 | Run the configure script: | ||
406 | @example | ||
407 | $ export CPPFLAGS="-I/opt/local/include" | ||
408 | $ export LDFLAGS="-L/opt/local/lib" | ||
409 | $ ./configure --prefix=/tmp/gnunet_build | ||
410 | @end example | ||
411 | |||
412 | |||
413 | GNUnet will be installed in the directory /tmp/gnunet_build (Of course that | ||
414 | installation path can be changed).@ The CPPFLAGS and LDFLAGS are mentioned in | ||
415 | order to inform the compiler and the linker to lookup headers and libraries in | ||
416 | /opt/local/include and /opt/local/lib. | ||
417 | |||
418 | @item | ||
419 | Compile@ | ||
420 | |||
421 | @example | ||
422 | $ make | ||
423 | @end example | ||
424 | |||
425 | |||
426 | @item | ||
427 | Install GNUnet | ||
428 | @example | ||
429 | # make install | ||
430 | @end example | ||
431 | |||
432 | @end itemize | ||
433 | |||
434 | |||
435 | @node Basic Installation for Fedora/PlanetLab nodes running Fedora 12 | ||
436 | @subsection Basic Installation for Fedora/PlanetLab nodes running Fedora 12 | ||
437 | |||
438 | |||
439 | @strong{This documentation is outdated and not valid for GNUnet 0.10.0!}@ | ||
440 | |||
441 | GNUnet installation on Fedora 8/Planetlab nodes can be done as following: | ||
442 | |||
443 | 1. Install the build tools to build GNUnet@ | ||
444 | @example | ||
445 | sudo yum -y -t --nogpgcheck install gcc make autoconf gettext-devel \ | ||
446 | texinfo subversion@ | ||
447 | @end example | ||
448 | |||
449 | 2. Install the GNUnet dependencies@ | ||
450 | @example | ||
451 | sudo yum -y -t --nogpgcheck install libunistring-devel libunistring-devel \ | ||
452 | libgcrypt-devel zlib-devel sqlite-devel postgresql-devel mysql-devel \ | ||
453 | libgsf-devel libvorbis-devel@ | ||
454 | @end example | ||
455 | |||
456 | 3. Install outdated dependencies from source@ | ||
457 | libtool@ | ||
458 | @example | ||
459 | wget http://ftp.gnu.org/gnu/libtool/libtool-2.4.2.tar.gz@ | ||
460 | tar xvfz libtool-2.4.2.tar.gz@ | ||
461 | cd libtool-2.4.2@ | ||
462 | ./configure@ | ||
463 | sudo make install@ | ||
464 | @end example | ||
465 | |||
466 | glpk@ | ||
467 | @example | ||
468 | wget http://ftp.gnu.org/gnu/glpk/glpk-4.47.tar.gz@ | ||
469 | tar xvfz glpk-4.47.tar.gz@ | ||
470 | cd glpk-4.47@ | ||
471 | ./configure@ | ||
472 | sudo make install@ | ||
473 | @end example | ||
474 | |||
475 | libcurl@ | ||
476 | @example | ||
477 | wget http://curl.haxx.se/download/curl-7.26.0.tar.gz@ | ||
478 | tar xvfz curl-7.26.0.tar.gz@ | ||
479 | cd curl-7.26.0@ | ||
480 | ./configure@ | ||
481 | sudo make install@ | ||
482 | @end example | ||
483 | |||
484 | 4. Install libextractor@ | ||
485 | @example | ||
486 | svn co https://gnunet.org/svn/libextractor@ | ||
487 | cd libextractor@ | ||
488 | libtoolize@ | ||
489 | ./bootstrap@ | ||
490 | ./configure@ | ||
491 | sudo make install@ | ||
492 | @end example | ||
493 | |||
494 | 5. Install libmicrohttpd@ | ||
495 | @example | ||
496 | svn co https://gnunet.org/svn/libmicrohttpd@ | ||
497 | cd libmicrohttpd@ | ||
498 | libtoolize@ | ||
499 | ./bootstrap@ | ||
500 | ./configure@ | ||
501 | sudo make install@ | ||
502 | @end example | ||
503 | |||
504 | 6. Set GNUnet prefix and add to PATH@ | ||
505 | @example | ||
506 | export GNUNET_PREFIX=@ | ||
507 | export PATH=$PATH:$GNUNET_PREFIX/bin@ | ||
508 | @end example | ||
509 | |||
510 | 7. Install GNUnet from svn@ | ||
511 | @example | ||
512 | export LD_LIBRARY_PATH=/usr/local/lib@ | ||
513 | svn co https://gnunet.org/svn/gnunet@ | ||
514 | cd gnunet@ | ||
515 | libtoolize@ | ||
516 | ./bootstrap@ | ||
517 | ./configure --prefix=$GNUNET_PREFIX --with-extractor=/usr \ | ||
518 | --with-mysql=/usr/lib/mysql --enable-logging=verbose@ | ||
519 | make install@ | ||
520 | @end example | ||
521 | |||
522 | Done! | ||
523 | |||
524 | |||
525 | @node Basic Installation for Fedora/PlanetLab nodes running Fedora 8 . | ||
526 | @subsection Basic Installation for Fedora/PlanetLab nodes running Fedora 8 . | ||
527 | @c %**end of header | ||
528 | |||
529 | @strong{This documentation is outdated and not valid for GNUnet 0.10.0!}@ | ||
530 | GNUnet installation on Fedora 8/Planetlab nodes can be done as following: | ||
531 | |||
532 | 1. Install the build tools to build GNUnet@ | ||
533 | @example | ||
534 | sudo yum -y -t --nogpgcheck install gcc make automake autoconf gettext-devel \ | ||
535 | texinfo zlib-devel subversion@ | ||
536 | @end example | ||
537 | |||
538 | 2. Install the GNUnet dependencies@ | ||
539 | @example | ||
540 | sudo yum -y -t --nogpgcheck install gnutls-devel gnutls-devel libgcrypt-devel \ | ||
541 | sqlite-devel postgresql-devel mysql-devel libgsf-devel libvorbis-devel \ | ||
542 | libidn-devel | ||
543 | @end example | ||
544 | |||
545 | 3. Install outdated dependencies from source@ | ||
546 | libtool@ | ||
547 | @code{@ | ||
548 | wget http://ftp.gnu.org/gnu/libtool/libtool-2.4.2.tar.gz@ | ||
549 | tar xvfz libtool-2.4.2.tar.gz@ | ||
550 | cd libtool-2.4.2@ | ||
551 | ./configure@ | ||
552 | sudo make install@ | ||
553 | } | ||
554 | |||
555 | libtool@ | ||
556 | @code{@ | ||
557 | wget http://ftp.gnu.org/gnu/libtool/libtool-2.4.2.tar.gz@ | ||
558 | tar xvfz libtool-2.4.2.tar.gz@ | ||
559 | cd libtool-2.4.2@ | ||
560 | ./configure@ | ||
561 | sudo make install@ | ||
562 | } | ||
563 | |||
564 | glpk@ | ||
565 | @code{@ | ||
566 | wget http://ftp.gnu.org/gnu/glpk/glpk-4.47.tar.gz@ | ||
567 | tar xvfz glpk-4.47.tar.gz@ | ||
568 | cd glpk-4.47@ | ||
569 | ./configure@ | ||
570 | sudo make install@ | ||
571 | } | ||
572 | |||
573 | libgpg-error@ | ||
574 | @code{@ | ||
575 | wget ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.10.tar.bz2@ | ||
576 | tar xvfj libgpg-error-1.10.tar.bz2@ | ||
577 | cd libgpg-error-1.10@ | ||
578 | ./configure --prefix=/usr@ | ||
579 | sudo make install@ | ||
580 | } | ||
581 | |||
582 | libgcrypt@ | ||
583 | @code{@ | ||
584 | wget ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.5.0.tar.bz2@ | ||
585 | tar xvfj libgcrypt-1.5.0.tar.tar.bz2@ | ||
586 | cd libgcrypt-1.5.0@ | ||
587 | ./configure --prefix=/usr@ | ||
588 | sudo make install@ | ||
589 | } | ||
590 | |||
591 | libcurl@ | ||
592 | @code{@ | ||
593 | wget http://curl.haxx.se/download/curl-7.26.0.tar.gz@ | ||
594 | tar xvfz curl-7.26.0.tar.gz@ | ||
595 | cd curl-7.26.0@ | ||
596 | ./configure@ | ||
597 | sudo make install@ | ||
598 | } | ||
599 | |||
600 | libunistring@ | ||
601 | @code{@ | ||
602 | wget http://ftp.gnu.org/gnu/libunistring/libunistring-0.9.3.tar.gz@ | ||
603 | tar xvfz libunistring-0.9.3.tar.gz@ | ||
604 | cd libunistring-0.9.3@ | ||
605 | ./configure@ | ||
606 | sudo make install@ | ||
607 | } | ||
608 | |||
609 | 4. Remove conflicting packages@ | ||
610 | @code{@ | ||
611 | sudo rpm -e --nodeps libgcrypt libgpg-error@ | ||
612 | } | ||
613 | |||
614 | 4. Install libextractor@ | ||
615 | @code{@ | ||
616 | wget ftp://ftp.gnu.org/gnu/libextractor/libextractor-0.6.3.tar.gz@ | ||
617 | tar xvfz libextractor-0.6.3.tar.gz@ | ||
618 | cd libextractor-0.6.3@ | ||
619 | ./configure@ | ||
620 | sudo make install@ | ||
621 | } | ||
622 | |||
623 | 5. Install libmicrohttpd and dependencies | ||
624 | |||
625 | nettle@ | ||
626 | @code{@ | ||
627 | wget http://ftp.gnu.org/gnu/nettle/nettle-2.5.tar.gz@ | ||
628 | tar xvfz nettle-2.5.tar.gz@ | ||
629 | cd nettle-2.5@ | ||
630 | ./configure@ | ||
631 | sudo make install@ | ||
632 | } | ||
633 | |||
634 | GnuTLS@ | ||
635 | @code{@ | ||
636 | wget http://ftp.gnu.org/gnu/gnutls/gnutls-2.12.20.tar.bz2@ | ||
637 | tar xvfj gnutls-2.12.20.tar.bz2@ | ||
638 | cd gnutls-2.12.20@ | ||
639 | ./configure --without-p11-kit@ | ||
640 | sudo make install@ | ||
641 | } | ||
642 | |||
643 | libmicrohttpd@ | ||
644 | @code{@ | ||
645 | wget ftp://ftp.gnu.org/gnu/libmicrohttpd/libmicrohttpd-0.9.21.tar.gz@ | ||
646 | tar xvfz libmicrohttpd-0.9.21.tar.gz@ | ||
647 | cd libmicrohttpd-0.9.21@ | ||
648 | ./configure@ | ||
649 | sudo make install@ | ||
650 | } | ||
651 | |||
652 | 6. Set GNUnet prefix and add to PATH@ | ||
653 | @code{@ | ||
654 | export GNUNET_PREFIX=@ | ||
655 | export PATH=$PATH:$GNUNET_PREFIX/bin@ | ||
656 | } | ||
657 | |||
658 | 7. Install GNUnet from svn@ | ||
659 | @example | ||
660 | export LD_LIBRARY_PATH=/usr/local/lib@ | ||
661 | svn co https://gnunet.org/svn/gnunet@ | ||
662 | cd gnunet@ | ||
663 | libtoolize@ | ||
664 | ./bootstrap@ | ||
665 | ./configure --prefix=$GNUNET_PREFIX --with-extractor=/usr/local \ | ||
666 | --with-curl=/usr/local --with-mysql=/usr/lib/mysql --enable-logging=verbose@ | ||
667 | make install@ | ||
668 | @end example | ||
669 | |||
670 | Done! | ||
671 | |||
672 | |||