diff options
author | ng0 <ng0@n0.is> | 2019-10-24 09:35:52 +0000 |
---|---|---|
committer | ng0 <ng0@n0.is> | 2019-10-24 09:35:52 +0000 |
commit | 2767a0a55b20369e9206f6e8dcd93373324f3b69 (patch) | |
tree | 34ea560b4989019341b4526fdfb46b832a81c68c /README | |
parent | 6c009f8555997295cd99ef9e7a6909c0c9ca90b2 (diff) | |
download | gnunet-2767a0a55b20369e9206f6e8dcd93373324f3b69.tar.gz gnunet-2767a0a55b20369e9206f6e8dcd93373324f3b69.zip |
rewrite parts of the README.
Diffstat (limited to 'README')
-rw-r--r-- | README | 113 |
1 files changed, 57 insertions, 56 deletions
@@ -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 | |||
51 | Dependencies: | 52 | Dependencies: |
52 | ============= | 53 | ============= |
53 | 54 | ||
55 | The dependencies for building GNUnet will require around 0.74 GiB | ||
56 | diskspace. GNUnet itself will require 8 - 9.2 MiB depending on | ||
57 | configuration. | ||
58 | |||
54 | These are the direct dependencies for running GNUnet: | 59 | These 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 | ||
195 | For a correct functionality depending on the host OS, you need | 200 | For a correct functionality depending on the host OS, you need |
196 | to run the equivalent of these steps after installation: | 201 | to run the equivalent of these steps after installation. |
202 | Replace $(DESTDIR)$(libexecdir) with the appropriate paths, | ||
203 | for example /usr/local/lib/gnunet/libexec/. Note that this | ||
204 | obviously must be run as priviledged user. | ||
197 | 205 | ||
198 | chown root:root $(DESTDIR)$(libexecdir)/gnunet-helper-vpn | 206 | chown root:root $(DESTDIR)$(libexecdir)/gnunet-helper-vpn |
199 | chmod u+s $(DESTDIR)$(libexecdir)/gnunet-helper-vpn | 207 | chmod u+s $(DESTDIR)$(libexecdir)/gnunet-helper-vpn |
@@ -215,22 +223,36 @@ chmod u+s $(DESTDIR)$(libexecdir)/gnunet-helper-nat-server | |||
215 | chmod u+s $(DESTDIR)$(libexecdir)/gnunet-helper-nat-client | 223 | chmod u+s $(DESTDIR)$(libexecdir)/gnunet-helper-nat-client |
216 | 224 | ||
217 | 225 | ||
218 | Requirements | 226 | Scope of Operating System support |
219 | ============ | 227 | ================================= |
228 | |||
229 | We actively support GNUnet on a broad range of Free Software Operating | ||
230 | Systems. | ||
231 | |||
232 | For proprietary Operating Systems, like for example Microsoft Windows | ||
233 | or Apple OS X, we accept patches if they don't break anything for | ||
234 | other Operating Systems. | ||
235 | If you are implementing support for a proprietary Operating System, | ||
236 | you should be aware that progress in our codebase could break | ||
237 | functionality on your OS and cause unpredicted behavior we can | ||
238 | not test. However, we do not break support on Operating Systems | ||
239 | with malicious intent. | ||
240 | Regressions which do occur on these Operating Systems are 3rd | ||
241 | class issues and we expect users and developers of these | ||
242 | Operating Systems to send proposed patches to fix regressions. | ||
243 | |||
244 | For more information about our stand on some of the motivating | ||
245 | points here, read the 'Philosophy' Chapter of our handbook. | ||
220 | 246 | ||
221 | GNUnet's directed acyclic graph (DAG) will require around 0.74 GiB | ||
222 | Diskspace, with GNUnet itself taking around 8 - 9.2 MiB reported by | ||
223 | the build on GNU Guix. | ||
224 | 247 | ||
225 | How to install? | 248 | How to install? |
226 | =============== | 249 | =============== |
227 | 250 | ||
228 | |||
229 | binary packages | 251 | binary packages |
230 | ~~~~~~~~~~~~~~~ | 252 | ~~~~~~~~~~~~~~~ |
231 | 253 | ||
232 | We recommend to use binary packages provided by your Operating System's | 254 | We recommend to use binary packages provided by the package manager integrated |
233 | package manager. GNUnet is reportedly available for at least: | 255 | within your Operating System. GNUnet is reportedly available for at least: |
234 | 256 | ||
235 | ALT Linux, Archlinux, Debian, Deepin, Devuan, GNU Guix, Hyperbola, | 257 | ALT Linux, Archlinux, Debian, Deepin, Devuan, GNU Guix, Hyperbola, |
236 | Kali Linux, LEDE/OpenWRT, Manjaro, Nix, Parabola, Pardus, Parrot, | 258 | Kali Linux, LEDE/OpenWRT, Manjaro, Nix, Parabola, Pardus, Parrot, |
@@ -250,26 +272,6 @@ $ apt-get install gnunet | |||
250 | Generic installation instructions are in the INSTALL file in this | 272 | Generic installation instructions are in the INSTALL file in this |
251 | directory. | 273 | directory. |
252 | 274 | ||
253 | Scope of Operating System support | ||
254 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
255 | We actively support GNUnet on a broad range of Free Software Operating | ||
256 | Systems. | ||
257 | |||
258 | For proprietary Operating Systems, like for example Microsoft Windows | ||
259 | or Apple OS X, we accept patches if they don't break anything for | ||
260 | other Operating Systems. | ||
261 | If you are implementing support for a proprietary Operating System, | ||
262 | you should be aware that progress in our codebase could break | ||
263 | functionality on your OS and cause unpredicted behavior we can | ||
264 | not test. However, we do not break support on Operating Systems | ||
265 | with malicious intent. | ||
266 | Regressions which do occur on these Operating Systems are 3rd | ||
267 | class issues and we expect users and developers of these | ||
268 | Operating Systems to send proposed patches to fix regressions. | ||
269 | |||
270 | For more information about our stand on some of the motivating | ||
271 | points here, read the 'Philosophy' Chapter of our handbook. | ||
272 | |||
273 | Building GNUnet from source | 275 | Building 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 | ||
326 | Note that you must read paragraph "Notes on setuid", which documents | 328 | Note that you must read paragraph "Notes on setuid", which documents steps you |
327 | steps you have to follow after the installation, as a priviledged | 329 | have to follow after the installation, as a priviledged user. We require some |
328 | user. We require some binaries to be setuid. The most portable | 330 | binaries to be setuid. The most portable approach across all supported |
329 | approach across all supported platforms and targets is to let this be handled | 331 | platforms and targets is to let this be handled manually. |
330 | manually. | ||
331 | The installation will work if you do not run these steps as root, but some | 332 | The installation will work if you do not run these steps as root, but some |
332 | components may not be installed in the perfect place or with the right | 333 | components may not be installed in the perfect place or with the right |
333 | permissions and thus won't work. | 334 | permissions and thus won't work. |
@@ -350,26 +351,26 @@ this case (instead of ~gnunet/.config/gnunet.conf"). In this case, | |||
350 | you need to start GNUnet using "gnunet-arm -s -c /etc/gnunet.conf" or | 351 | you need to start GNUnet using "gnunet-arm -s -c /etc/gnunet.conf" or |
351 | set "XDG_CONFIG_HOME=/etc/". | 352 | set "XDG_CONFIG_HOME=/etc/". |
352 | 353 | ||
353 | You can avoid running 'make install' as root if you run configure | 354 | You can avoid running 'make install' as root if you have extensive sudo rights |
354 | with 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' | 356 | normal user without sudo rights (or the configure option), certain binaries |
356 | as a normal user without sudo rights (or the configure option), | 357 | that require additional privileges will not be installed properly (and |
357 | certain binaries that require additional privileges will not be | 358 | autonomous NAT traversal, WLAN, DNS/GNS and the VPN will then not work). |
358 | installed properly (and autonomous NAT traversal, WLAN, DNS/GNS and | 359 | |
359 | the VPN will then not work). | 360 | If you run 'configure' and 'make install' as root, GNUnet's build system will |
360 | 361 | install "libnss_gns*" libraries to "/lib/" regardless (!) of the | |
361 | If 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 |
362 | option, 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, | 364 | your packaging script to miss those plugins, so you might need to do some |
364 | as those libraries must be in "/lib/". If you are packaging GNUnet | 365 | additional manual work to include those libraries in your binary package(s). |
365 | for binary distribution, this may cause your packaging script to miss | 366 | Similarly, if you want to use the GNUnet Name System and did NOT run |
366 | those plugins, so you might need to do some additional manual work to | 367 | GNUnet's 'make install' process with priviledged rights, the libraries will be |
367 | include those libraries in your binary package(s). Similarly, if you | 368 | installed to "$GNUNET_PREFIX" and you will have to move them to "/lib/" |
368 | want to use the GNUnet naming system and did NOT run GNUnet's 'make | ||
369 | install' process with sudo rights, the libraries will be installed to | ||
370 | "$GNUNET_PREFIX" and you will have to move them to "/lib/" | ||
371 | manually. | 369 | manually. |
372 | 370 | ||
371 | Notes on compiling from Git | ||
372 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
373 | |||
373 | Finally, if you are compiling the code from git, you have to | 374 | Finally, if you are compiling the code from git, you have to |
374 | run "sh ./bootstrap" before running "./configure". If you receive an error during | 375 | run "sh ./bootstrap" before running "./configure". If you receive an error during |
375 | the running of "sh ./bootstrap" that looks like "macro `AM_PATH_GTK' | 376 | the running of "sh ./bootstrap" that looks like "macro `AM_PATH_GTK' |