aboutsummaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
authorng0 <ng0@n0.is>2019-10-24 09:35:52 +0000
committerng0 <ng0@n0.is>2019-10-24 09:35:52 +0000
commit2767a0a55b20369e9206f6e8dcd93373324f3b69 (patch)
tree34ea560b4989019341b4526fdfb46b832a81c68c /README
parent6c009f8555997295cd99ef9e7a6909c0c9ca90b2 (diff)
downloadgnunet-2767a0a55b20369e9206f6e8dcd93373324f3b69.tar.gz
gnunet-2767a0a55b20369e9206f6e8dcd93373324f3b69.zip
rewrite parts of the README.
Diffstat (limited to 'README')
-rw-r--r--README113
1 files changed, 57 insertions, 56 deletions
diff --git a/README b/README
index 3724d6573..ac4a2618c 100644
--- a/README
+++ b/README
@@ -10,11 +10,12 @@ ToC
10 o test suite dependencies 10 o test suite dependencies
11 o optional dependencies 11 o optional dependencies
12 o autotools 12 o autotools
13* Requirements 13* Notes on setuid
14* Scope of Operating System support
14* How to install 15* How to install
15 o binary packages 16 o binary packages
16 o Scope of Operating System support
17 o Building GNUnet from source 17 o Building GNUnet from source
18 o Notes on compiling from Git
18* Configuration 19* Configuration
19* Usage 20* Usage
20* Hacking GNUnet 21* Hacking GNUnet
@@ -51,6 +52,10 @@ Online documentation is provided at
51Dependencies: 52Dependencies:
52============= 53=============
53 54
55The dependencies for building GNUnet will require around 0.74 GiB
56diskspace. GNUnet itself will require 8 - 9.2 MiB depending on
57configuration.
58
54These are the direct dependencies for running GNUnet: 59These are the direct dependencies for running GNUnet:
55~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 60~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
56 61
@@ -166,12 +171,12 @@ Recommended autotools for compiling the Git version are:
166 fix in. 171 fix in.
167 172
168[*4] We are commited to portable tools and solutions 173[*4] We are commited to portable tools and solutions
169 where possible. New scripts should be Posix SH 174 where possible. New scripts should be Posix sh
170 compatible, current and older scripts are 175 compatible, current and older scripts are
171 in the process of being rewritten to comply 176 in the process of being rewritten to comply
172 with this requirement. 177 with this requirement.
173 178
174[*5] While libextractor is optional, it is recommended to 179[*5] While libextractor ("LE") is optional, it is recommended to
175 build gnunet against it. If you install it later, 180 build gnunet against it. If you install it later,
176 you won't benefit from libextractor. 181 you won't benefit from libextractor.
177 If you are a distributor, we recommend to split 182 If you are a distributor, we recommend to split
@@ -193,7 +198,10 @@ Notes on setuid
193=============== 198===============
194 199
195For a correct functionality depending on the host OS, you need 200For a correct functionality depending on the host OS, you need
196to run the equivalent of these steps after installation: 201to run the equivalent of these steps after installation.
202Replace $(DESTDIR)$(libexecdir) with the appropriate paths,
203for example /usr/local/lib/gnunet/libexec/. Note that this
204obviously must be run as priviledged user.
197 205
198chown root:root $(DESTDIR)$(libexecdir)/gnunet-helper-vpn 206chown root:root $(DESTDIR)$(libexecdir)/gnunet-helper-vpn
199chmod u+s $(DESTDIR)$(libexecdir)/gnunet-helper-vpn 207chmod u+s $(DESTDIR)$(libexecdir)/gnunet-helper-vpn
@@ -215,22 +223,36 @@ chmod u+s $(DESTDIR)$(libexecdir)/gnunet-helper-nat-server
215chmod u+s $(DESTDIR)$(libexecdir)/gnunet-helper-nat-client 223chmod u+s $(DESTDIR)$(libexecdir)/gnunet-helper-nat-client
216 224
217 225
218Requirements 226Scope of Operating System support
219============ 227=================================
228
229We actively support GNUnet on a broad range of Free Software Operating
230Systems.
231
232For proprietary Operating Systems, like for example Microsoft Windows
233or Apple OS X, we accept patches if they don't break anything for
234other Operating Systems.
235If you are implementing support for a proprietary Operating System,
236you should be aware that progress in our codebase could break
237functionality on your OS and cause unpredicted behavior we can
238not test. However, we do not break support on Operating Systems
239with malicious intent.
240Regressions which do occur on these Operating Systems are 3rd
241class issues and we expect users and developers of these
242Operating Systems to send proposed patches to fix regressions.
243
244For more information about our stand on some of the motivating
245points here, read the 'Philosophy' Chapter of our handbook.
220 246
221GNUnet's directed acyclic graph (DAG) will require around 0.74 GiB
222Diskspace, with GNUnet itself taking around 8 - 9.2 MiB reported by
223the build on GNU Guix.
224 247
225How to install? 248How to install?
226=============== 249===============
227 250
228
229binary packages 251binary packages
230~~~~~~~~~~~~~~~ 252~~~~~~~~~~~~~~~
231 253
232We recommend to use binary packages provided by your Operating System's 254We recommend to use binary packages provided by the package manager integrated
233package manager. GNUnet is reportedly available for at least: 255within your Operating System. GNUnet is reportedly available for at least:
234 256
235ALT Linux, Archlinux, Debian, Deepin, Devuan, GNU Guix, Hyperbola, 257ALT Linux, Archlinux, Debian, Deepin, Devuan, GNU Guix, Hyperbola,
236Kali Linux, LEDE/OpenWRT, Manjaro, Nix, Parabola, Pardus, Parrot, 258Kali Linux, LEDE/OpenWRT, Manjaro, Nix, Parabola, Pardus, Parrot,
@@ -250,26 +272,6 @@ $ apt-get install gnunet
250Generic installation instructions are in the INSTALL file in this 272Generic installation instructions are in the INSTALL file in this
251directory. 273directory.
252 274
253Scope of Operating System support
254~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
255We actively support GNUnet on a broad range of Free Software Operating
256Systems.
257
258For proprietary Operating Systems, like for example Microsoft Windows
259or Apple OS X, we accept patches if they don't break anything for
260other Operating Systems.
261If you are implementing support for a proprietary Operating System,
262you should be aware that progress in our codebase could break
263functionality on your OS and cause unpredicted behavior we can
264not test. However, we do not break support on Operating Systems
265with malicious intent.
266Regressions which do occur on these Operating Systems are 3rd
267class issues and we expect users and developers of these
268Operating Systems to send proposed patches to fix regressions.
269
270For more information about our stand on some of the motivating
271points here, read the 'Philosophy' Chapter of our handbook.
272
273Building GNUnet from source 275Building GNUnet from source
274~~~~~~~~~~~~~~~~~~~~~~~~~~~ 276~~~~~~~~~~~~~~~~~~~~~~~~~~~
275 277
@@ -323,11 +325,10 @@ in 'contrib/services' or by running:
323# sudo -u gnunet gnunet-arm -s 325# sudo -u gnunet gnunet-arm -s
324 326
325 327
326Note that you must read paragraph "Notes on setuid", which documents 328Note that you must read paragraph "Notes on setuid", which documents steps you
327steps you have to follow after the installation, as a priviledged 329have to follow after the installation, as a priviledged user. We require some
328user. We require some binaries to be setuid. The most portable 330binaries to be setuid. The most portable approach across all supported
329approach across all supported platforms and targets is to let this be handled 331platforms and targets is to let this be handled manually.
330manually.
331The installation will work if you do not run these steps as root, but some 332The installation will work if you do not run these steps as root, but some
332components may not be installed in the perfect place or with the right 333components may not be installed in the perfect place or with the right
333permissions and thus won't work. 334permissions and thus won't work.
@@ -350,26 +351,26 @@ this case (instead of ~gnunet/.config/gnunet.conf"). In this case,
350you need to start GNUnet using "gnunet-arm -s -c /etc/gnunet.conf" or 351you need to start GNUnet using "gnunet-arm -s -c /etc/gnunet.conf" or
351set "XDG_CONFIG_HOME=/etc/". 352set "XDG_CONFIG_HOME=/etc/".
352 353
353You can avoid running 'make install' as root if you run configure 354You can avoid running 'make install' as root if you have extensive sudo rights
354with the "--with-sudo=yes" option and have extensive sudo rights 355(can run "chmod +s" and "chown" via 'sudo'). If you run 'make install' as a
355(can run "chmod +s" and "chown" via 'sudo'). If you run 'make install' 356normal user without sudo rights (or the configure option), certain binaries
356as a normal user without sudo rights (or the configure option), 357that require additional privileges will not be installed properly (and
357certain binaries that require additional privileges will not be 358autonomous NAT traversal, WLAN, DNS/GNS and the VPN will then not work).
358installed properly (and autonomous NAT traversal, WLAN, DNS/GNS and 359
359the VPN will then not work). 360If you run 'configure' and 'make install' as root, GNUnet's build system will
360 361install "libnss_gns*" libraries to "/lib/" regardless (!) of the
361If you run 'configure' and 'make install' as root or use the '--with-sudo' 362$GNUNET_PREFIX you might have specified, as those libraries must be in
362option, GNUnet's build system will install "libnss_gns*" libraries to 363"/lib/". If you are packaging GNUnet for binary distribution, this may cause
363"/lib/" regardless (!) of the $GNUNET_PREFIX you might have specified, 364your packaging script to miss those plugins, so you might need to do some
364as those libraries must be in "/lib/". If you are packaging GNUnet 365additional manual work to include those libraries in your binary package(s).
365for binary distribution, this may cause your packaging script to miss 366Similarly, if you want to use the GNUnet Name System and did NOT run
366those plugins, so you might need to do some additional manual work to 367GNUnet's 'make install' process with priviledged rights, the libraries will be
367include those libraries in your binary package(s). Similarly, if you 368installed to "$GNUNET_PREFIX" and you will have to move them to "/lib/"
368want to use the GNUnet naming system and did NOT run GNUnet's 'make
369install' process with sudo rights, the libraries will be installed to
370"$GNUNET_PREFIX" and you will have to move them to "/lib/"
371manually. 369manually.
372 370
371Notes on compiling from Git
372~~~~~~~~~~~~~~~~~~~~~~~~~~~
373
373Finally, if you are compiling the code from git, you have to 374Finally, if you are compiling the code from git, you have to
374run "sh ./bootstrap" before running "./configure". If you receive an error during 375run "sh ./bootstrap" before running "./configure". If you receive an error during
375the running of "sh ./bootstrap" that looks like "macro `AM_PATH_GTK' 376the running of "sh ./bootstrap" that looks like "macro `AM_PATH_GTK'