diff options
author | Schanzenbach, Martin <mschanzenbach@posteo.de> | 2019-12-20 10:28:09 +0900 |
---|---|---|
committer | Schanzenbach, Martin <mschanzenbach@posteo.de> | 2019-12-20 10:28:09 +0900 |
commit | c511e990a3208730371663a9c7847a9f9fab9b83 (patch) | |
tree | 82094965ae42672440776c6c0cf224479d0ff26d | |
parent | 9975d6f250dee9a4d599d2c144b3700646290ca3 (diff) | |
parent | a97f6beb152b6fe13fc3ff8a3a21fc21eb697057 (diff) | |
download | www-c511e990a3208730371663a9c7847a9f9fab9b83.tar.gz www-c511e990a3208730371663a9c7847a9f9fab9b83.zip |
Merge branch 'master' into stable
-rw-r--r-- | Dockerfile | 1 | ||||
-rw-r--r-- | GNUmakefile | 99 | ||||
-rw-r--r-- | Makefile | 107 | ||||
-rw-r--r-- | README | 19 | ||||
-rwxr-xr-x | bootstrap | 2 | ||||
m--------- | build-system/taler-build-scripts | 0 | ||||
m--------- | inc | 0 | ||||
-rw-r--r-- | locale/de/LC_MESSAGES/messages.po | 2 | ||||
-rw-r--r-- | locale/es/LC_MESSAGES/messages.po | 2 | ||||
-rw-r--r-- | locale/fr/LC_MESSAGES/messages.po | 2 | ||||
-rw-r--r-- | locale/it/LC_MESSAGES/messages.po | 2 | ||||
-rw-r--r-- | news/2019-0.12.0.html.j2 | 85 | ||||
-rw-r--r-- | template/gnurl.html.j2 | 721 | ||||
-rw-r--r-- | template/install.html.j2 | 18 | ||||
-rw-r--r-- | www.yml | 5 |
15 files changed, 552 insertions, 513 deletions
@@ -14,7 +14,6 @@ RUN apt-get update && \ | |||
14 | python3-babel \ | 14 | python3-babel \ |
15 | python3-jinja2 \ | 15 | python3-jinja2 \ |
16 | git \ | 16 | git \ |
17 | sassc && \ | ||
18 | apt-get clean all && \ | 17 | apt-get clean all && \ |
19 | apt-get -y autoremove && \ | 18 | apt-get -y autoremove && \ |
20 | rm -rf \ | 19 | rm -rf \ |
diff --git a/GNUmakefile b/GNUmakefile deleted file mode 100644 index ffe9c281..00000000 --- a/GNUmakefile +++ /dev/null | |||
@@ -1,99 +0,0 @@ | |||
1 | # | ||
2 | # Copyright (C) 2017, 2018, 2019 GNUnet e.V. | ||
3 | # | ||
4 | # Copying and distribution of this file, with or without modification, | ||
5 | # are permitted in any medium without royalty provided the copyright | ||
6 | # notice and this notice are preserved. This file is offered as-is, | ||
7 | # without any warranty. | ||
8 | # | ||
9 | # ---- | ||
10 | |||
11 | # All: build HTML pages in all languages and compile the | ||
12 | # TypeScript logic in web-common. | ||
13 | |||
14 | # Hardly anyone seems to read README files anymore, so keep this note here: | ||
15 | # Don't remove the variables for python etc. They exist | ||
16 | # because one system sticks with PEPs, and others opt | ||
17 | # for installing every version side-by-side, | ||
18 | # Same goes for babel. | ||
19 | |||
20 | include config.mk | ||
21 | |||
22 | all: locale template | ||
23 | ($(cp) rendered/static/robots.txt rendered/robots.txt) | ||
24 | ($(cp) rendered/static/stage.robots.txt rendered/stage.robots.txt) | ||
25 | ($(cp) rendered/static/robots.txt rendered/dist/robots.txt) | ||
26 | (for lang in en de es fr it ; do \ | ||
27 | $(cp) rendered/static/robots.txt rendered/$$lang/robots.txt ; \ | ||
28 | done) | ||
29 | ($(python) inc/make_sitemap.py -i rendered) | ||
30 | ($(cp) sitemap.xml rendered/sitemap.xml) | ||
31 | ($(cp) sitemap.xml rendered/en/sitemap.xml) | ||
32 | ($(cp) static/moved.html rendered/frontpage.html) | ||
33 | (cd rendered; $(ln) -fs frontpage.html frontpage) | ||
34 | ($(cp) static/moved_gsoc.html rendered/gsoc.html) | ||
35 | (cd rendered; $(ln) -fs gsoc.html gsoc) | ||
36 | ($(cp) static/moved_gns.html rendered/gns.html) | ||
37 | (cd rendered; $(ln) -fs gns.html gns) | ||
38 | ($(mkdir) -p rendered/node ; $(cp) static/moved_about.html rendered/node/about.html) | ||
39 | (cd rendered/node ; $(ln) -fs about.html 397) | ||
40 | ($(cp) static/moved_about.html rendered/about.html) | ||
41 | (cd rendered ; $(ln) -fs about.html philosophy) | ||
42 | (cd rendered; \ | ||
43 | for lang in en de es fr it; do \ | ||
44 | $(cp) $$lang/rss.xml $$lang/news/rss.xml; \ | ||
45 | done) | ||
46 | |||
47 | # Extract translateable strings from jinja2 templates. | ||
48 | # Because of the local i18nfix extractor module we need | ||
49 | # to set the pythonpath before invoking pybabel. | ||
50 | locale/messages.pot: common/*.j2.inc template/*.j2 | ||
51 | $(env) PYTHONPATH=. $(pybabel) -q extract -F locale/babel.map -o locale/messages.pot . | ||
52 | |||
53 | # Update translation (.po) files with new strings. | ||
54 | locale-update: locale/messages.pot | ||
55 | (for lang in en de es fr it; do \ | ||
56 | $(msgmerge) -q -U -m --previous locale/$$lang/LC_MESSAGES/messages.po locale/messages.pot ; \ | ||
57 | done) | ||
58 | if $(grep) -nA1 '#-#-#-#-#' locale/*/LC_MESSAGES/messages.po; then echo -e "\nERROR: Conflicts encountered in PO files.\n"; exit 1; fi | ||
59 | |||
60 | # Compile translation files for use. | ||
61 | locale-compile: | ||
62 | (for lang in en de fr it es; do \ | ||
63 | $(pybabel) -q compile -d locale -l $$lang --use-fuzzy ; \ | ||
64 | done) | ||
65 | |||
66 | # Process everything related to gettext translations. | ||
67 | locale: locale-update locale-compile | ||
68 | |||
69 | # Run the jinja2 templating engine to expand templates to HTML | ||
70 | # incorporating translations. | ||
71 | template: locale-compile | ||
72 | $(python) ./make_site.py | ||
73 | |||
74 | it: template | ||
75 | |||
76 | current_dir = $(shell pwd) | ||
77 | |||
78 | run: all | ||
79 | $(browser) http://0.0.0.0:8000/rendered/en & | ||
80 | $(python) -m http.server | ||
81 | |||
82 | |||
83 | # docker-all: Build using a docker image which contains all the needed | ||
84 | # packages. | ||
85 | |||
86 | docker: docker-all | ||
87 | |||
88 | docker-all: | ||
89 | $(docker) build -t gnunet-www-builder . | ||
90 | # Importing via the shell like this is hacky, | ||
91 | # but after trying lots of other ways, this works most reliably... | ||
92 | $(python) -c 'import i18nfix' | ||
93 | $(docker) run --rm -v $$(pwd):/tmp/ --user $$(id -u):$$(id -g) gnunet-www-builder | ||
94 | |||
95 | clean: | ||
96 | $(rm) -rf __pycache__ | ||
97 | $(rm) -rf en/ de/ fr/ it/ es/ ru/ | ||
98 | $(rm) -rf rendered/ | ||
99 | $(rm) -rf *.pyc *~ \.*~ \#*\# | ||
@@ -1,65 +1,67 @@ | |||
1 | # Makefile for NetBSD make (portable version: "bmake"), | ||
2 | # GNU make will find 'GNUmakefile' first and use that file instead. | ||
3 | # This file is in the public domain. | ||
4 | # | 1 | # |
5 | # I keep and maintain this file for personal use, it is faster than | 2 | # Copyright (C) 2017, 2018, 2019 GNUnet e.V. |
6 | # the gmake approach. | 3 | # |
7 | 4 | # Copying and distribution of this file, with or without modification, | |
8 | .include "config.mk" | 5 | # are permitted in any medium without royalty provided the copyright |
9 | 6 | # notice and this notice are preserved. This file is offered as-is, | |
10 | DESTDIR=$(prefix) | 7 | # without any warranty. |
11 | 8 | # | |
12 | _LOCALELIST= en de fr it es | 9 | # ---- |
13 | _DIRLIST= dist static | ||
14 | 10 | ||
15 | .PHONY: all run locale-compile locale install clean | 11 | # All: build HTML pages in all languages and compile the |
12 | # TypeScript logic in web-common. | ||
16 | 13 | ||
17 | .OBJDIR=rendered | 14 | # Hardly anyone seems to read README files anymore, so keep this note here: |
15 | # Don't remove the variables for python etc. They exist | ||
16 | # because one system sticks with PEPs, and others opt | ||
17 | # for installing every version side-by-side, | ||
18 | # Same goes for babel. | ||
18 | 19 | ||
19 | # Work this into an mk file | 20 | include config.mk |
20 | 21 | ||
21 | # All: build HTML pages in all languages and compile the | ||
22 | # TypeScript logic in web-common. | ||
23 | all: locale template | 22 | all: locale template |
24 | .for _lang in ${_LOCALELIST} | 23 | ($(cp) rendered/static/robots.txt rendered/robots.txt) |
25 | ($(cp) rendered/static/robots.txt rendered/${_lang}) | 24 | ($(cp) rendered/static/stage.robots.txt rendered/stage.robots.txt) |
26 | ($(cp) rendered/static/stage.robots.txt rendered/${_lang}) | ||
27 | .endfor | ||
28 | ($(cp) rendered/static/robots.txt rendered/dist/robots.txt) | 25 | ($(cp) rendered/static/robots.txt rendered/dist/robots.txt) |
29 | # ($(cp) favicon.ico rendered/) | 26 | (for lang in en de es fr it ; do \ |
30 | # $(sh) make_sitemap.sh | 27 | $(cp) rendered/static/robots.txt rendered/$$lang/robots.txt ; \ |
28 | done) | ||
29 | ($(python) inc/make_sitemap.py -i rendered) | ||
31 | ($(cp) sitemap.xml rendered/sitemap.xml) | 30 | ($(cp) sitemap.xml rendered/sitemap.xml) |
32 | ($(cp) rendered/sitemap.xml rendered/en/sitemap.xml) | 31 | ($(cp) sitemap.xml rendered/en/sitemap.xml) |
33 | ($(cp) static/moved.html rendered/frontpage.html) | 32 | ($(cp) static/moved.html rendered/frontpage.html) |
34 | (cd rendered; $(ln) -fs frontpage.html frontpage) | 33 | (cd rendered; $(ln) -fs frontpage.html frontpage) |
35 | ($(cp) static/moved_gsoc.html rendered/gsoc.html) | 34 | ($(cp) static/moved_gsoc.html rendered/gsoc.html) |
36 | (cd rendered; $(ln) -fs gsoc.html gsoc) | 35 | (cd rendered; $(ln) -fs gsoc.html gsoc) |
37 | ($(cp) static/moved_gns.html rendered/gns.html) | 36 | ($(cp) static/moved_gns.html rendered/gns.html) |
38 | (cd rendered; $(ln) -fs gns.html gns) | 37 | (cd rendered; $(ln) -fs gns.html gns) |
39 | ($(mkdir) -p rendered/node; $(cp) static/moved_about.html rendered/node/about.html) | 38 | ($(mkdir) -p rendered/node ; $(cp) static/moved_about.html rendered/node/about.html) |
40 | (cd rendered/node ; $(ln) -fs about.html 397) | 39 | (cd rendered/node ; $(ln) -fs about.html 397) |
41 | ($(cp) static/moved_about.html rendered/about.html) | 40 | ($(cp) static/moved_about.html rendered/about.html) |
42 | (cd rendered ; $(ln) -fs about.html philosophy) | 41 | (cd rendered ; $(ln) -fs about.html philosophy) |
42 | (cd rendered; \ | ||
43 | for lang in en de es fr it; do \ | ||
44 | $(cp) $$lang/rss.xml $$lang/news/rss.xml; \ | ||
45 | done) | ||
43 | 46 | ||
44 | # Extract translateable strings from jinja2 templates. | 47 | # Extract translateable strings from jinja2 templates. |
45 | locale/messages.pot: template/*.j2 common/*.j2 common/*.j2.inc | 48 | # Because of the local i18nfix extractor module we need |
49 | # to set the pythonpath before invoking pybabel. | ||
50 | locale/messages.pot: common/*.j2.inc template/*.j2 | ||
46 | $(env) PYTHONPATH="." $(pybabel) -q extract -F locale/babel.map -o locale/messages.pot . | 51 | $(env) PYTHONPATH="." $(pybabel) -q extract -F locale/babel.map -o locale/messages.pot . |
47 | 52 | ||
48 | # Update translation (.po) files with new strings. | 53 | # Update translation (.po) files with new strings. |
49 | locale-update: locale/messages.pot | 54 | locale-update: locale/messages.pot |
50 | .for _lang in ${_LOCALELIST} | 55 | (for lang in en de es fr it; do \ |
51 | $(msgmerge) -q -U -m --previous locale/${_lang}/LC_MESSAGES/messages.po locale/messages.pot | 56 | $(msgmerge) -q -U -m --previous locale/$$lang/LC_MESSAGES/messages.po locale/messages.pot ; \ |
52 | .endfor | 57 | done) |
53 | if $(grep) -nA1 '#-#-#-#-#' locale/*/LC_MESSAGES/messages.po; then \ | 58 | if $(grep) -nA1 '#-#-#-#-#' locale/*/LC_MESSAGES/messages.po; then echo -e "\nERROR: Conflicts encountered in PO files.\n"; exit 1; fi |
54 | $(echo) -e "\nERROR: Conflicts encountered in PO files.\n"; \ | ||
55 | exit 1; \ | ||
56 | fi | ||
57 | 59 | ||
58 | # Compile translation files for use. | 60 | # Compile translation files for use. |
59 | locale-compile: | 61 | locale-compile: |
60 | .for _lang in ${_LOCALELIST} | 62 | (for lang in en de fr it es; do \ |
61 | $(pybabel) -q compile -d locale -l ${_lang} --use-fuzzy | 63 | $(pybabel) -q compile -d locale -l $$lang --use-fuzzy ; \ |
62 | .endfor | 64 | done) |
63 | 65 | ||
64 | # Process everything related to gettext translations. | 66 | # Process everything related to gettext translations. |
65 | locale: locale-update locale-compile | 67 | locale: locale-update locale-compile |
@@ -67,38 +69,31 @@ locale: locale-update locale-compile | |||
67 | # Run the jinja2 templating engine to expand templates to HTML | 69 | # Run the jinja2 templating engine to expand templates to HTML |
68 | # incorporating translations. | 70 | # incorporating translations. |
69 | template: locale-compile | 71 | template: locale-compile |
70 | $(python) ./make_site.py -vvvv | 72 | $(python) ./make_site.py |
71 | 73 | ||
72 | run: | 74 | it: template |
73 | .if defined(browser) && !empty(DESTDIR) && !empty(python) | ||
74 | $(browser) http://0.0.0.0:8000/rendered/en/ & | ||
75 | $(python) -m http.server | ||
76 | .endif | ||
77 | 75 | ||
78 | install: | 76 | current_dir = $(shell pwd) |
79 | $(mkdir) -p $(prefix)/share/gnunet-www | ||
80 | $(cp) -R rendered/* $(prefix)/share/gnunet-www | ||
81 | 77 | ||
82 | uninstall: | 78 | run: all |
83 | $(rm) -rf $(prefix)/share/gnunet-www | 79 | $(browser) http://0.0.0.0:8000/rendered/en & |
80 | $(python) -m http.server | ||
84 | 81 | ||
85 | submodules/init: | ||
86 | $(git) submodule update --init --recursive | ||
87 | 82 | ||
88 | submodules/update: | 83 | # docker-all: Build using a docker image which contains all the needed |
89 | $(git) submodule update --recursive --remote | 84 | # packages. |
90 | 85 | ||
91 | docker: docker-all | 86 | docker: docker-all |
92 | 87 | ||
93 | docker-all: | 88 | docker-all: |
94 | .if defined(docker) | ||
95 | $(docker) build -t gnunet-www-builder . | 89 | $(docker) build -t gnunet-www-builder . |
96 | # Importing via the shell like this is hacky, | 90 | # Importing via the shell like this is hacky, |
97 | # but after trying lots of other ways, this works most reliably... | 91 | # but after trying lots of other ways, this works most reliably... |
98 | $(python) -c 'import i18nfix' | 92 | $(python) -c 'import i18nfix' |
99 | $(docker) run --rm -v $$(pwd):/tmp/ --user $$(id -u):$$(id -g) gnunet-www-builder | 93 | $(docker) run --rm -v $$(pwd):/tmp/ --user $$(id -u):$$(id -g) gnunet-www-builder |
100 | .endif | ||
101 | |||
102 | CLEANFILES+= *.pyc *~ \.*~ *.core | ||
103 | 94 | ||
104 | .include <bsd.prog.mk> | 95 | clean: |
96 | $(rm) -rf __pycache__ | ||
97 | $(rm) -rf en/ de/ fr/ it/ es/ ru/ | ||
98 | $(rm) -rf rendered/ | ||
99 | $(rm) -rf *.pyc *~ \.*~ \#*\# | ||
@@ -67,6 +67,8 @@ Writing News | |||
67 | 67 | ||
68 | Writing news posts for gnunet.org involves a couple of steps. | 68 | Writing news posts for gnunet.org involves a couple of steps. |
69 | If you intend to write a new post, read this carefully. | 69 | If you intend to write a new post, read this carefully. |
70 | Note that this section will be worked into a separate onboarding | ||
71 | section in the manual. | ||
70 | 72 | ||
71 | * Every news post is wrapped in an <article> element, outside | 73 | * Every news post is wrapped in an <article> element, outside |
72 | of the news post itself. | 74 | of the news post itself. |
@@ -77,18 +79,17 @@ If you intend to write a new post, read this carefully. | |||
77 | assigned as the title for the rss feed item for this post. | 79 | assigned as the title for the rss feed item for this post. |
78 | 80 | ||
79 | * Every news post must get added as a dict to the newspost list | 81 | * Every news post must get added as a dict to the newspost list |
80 | in template.py. If you are not sure what those words mean, search | 82 | in www.yml. If you are not sure what those words mean, search |
81 | "newsposts" in template.py. There you will find a structure where | 83 | "newsposts" in www.yml. |
82 | you have to add a new member including the "," at the end. | 84 | There you will find a structure where you have to add a new |
85 | member. | ||
83 | New posts get added to the top of the list, not at the bottom | 86 | New posts get added to the top of the list, not at the bottom |
84 | (this list is also responsible for the 5 newest entries on the | 87 | (this list is also responsible for the 5 newest entries on the |
85 | frontpage). | 88 | frontpage). |
86 | 89 | ||
87 | { | 90 | - page: 2019-0.12.0.html |
88 | 'page': 'name-of-page.html', | 91 | date: 2019-12-15 |
89 | 'date': '2019-10-31', | 92 | title: GNUnet 0.12.0 |
90 | 'title': 'My new post' | ||
91 | }, | ||
92 | 93 | ||
93 | * page must be the name of the file without the leading news/ | 94 | * page must be the name of the file without the leading news/ |
94 | * date must be a valid date in exactly this format. | 95 | * date must be a valid date in exactly this format. |
@@ -133,8 +134,8 @@ Additional Notes | |||
133 | Please use HTML codes, not international signs as found on your keyboard. | 134 | Please use HTML codes, not international signs as found on your keyboard. |
134 | 135 | ||
135 | This website has been tested with: | 136 | This website has been tested with: |
136 | * python 3.6.5 and jinja2 2.9.6. | ||
137 | * python 3.7.1, Babel 2.6.0, py-jinja2 2.10 (pkgsrc, NetBSD 8.0) | 137 | * python 3.7.1, Babel 2.6.0, py-jinja2 2.10 (pkgsrc, NetBSD 8.0) |
138 | |||
138 | Since python development in collaborative environments with | 139 | Since python development in collaborative environments with |
139 | a whole range of possibilities in what your environment looks | 140 | a whole range of possibilities in what your environment looks |
140 | like, please state problems on the mailinglist instead of just | 141 | like, please state problems on the mailinglist instead of just |
@@ -11,7 +11,7 @@ if ! git --version >/dev/null; then | |||
11 | fi | 11 | fi |
12 | 12 | ||
13 | git submodule update --init | 13 | git submodule update --init |
14 | git submodule update --recursive --remote | 14 | git submodule update --recursive |
15 | git submodule sync | 15 | git submodule sync |
16 | cp build-system/taler-build-scripts/configure ./configure || true | 16 | cp build-system/taler-build-scripts/configure ./configure || true |
17 | cp build-system/taler-build-scripts/conf/.style.yapf .style.yapf || true | 17 | cp build-system/taler-build-scripts/conf/.style.yapf .style.yapf || true |
diff --git a/build-system/taler-build-scripts b/build-system/taler-build-scripts | |||
Subproject 1915a74bbb4cd2ae9bc541a382dfebc37064a2f | Subproject d725a0cd1b4aa3ff54452a702b8c19db3f3c339 | ||
diff --git a/inc b/inc | |||
Subproject 46295bc38988c16a9a6c8c0cf8930abd20193a0 | Subproject bdef602fcbd13d59aef971307b3730247a8b9c5 | ||
diff --git a/locale/de/LC_MESSAGES/messages.po b/locale/de/LC_MESSAGES/messages.po index bef9c6d6..06477135 100644 --- a/locale/de/LC_MESSAGES/messages.po +++ b/locale/de/LC_MESSAGES/messages.po | |||
@@ -11,10 +11,10 @@ msgstr "" | |||
11 | "PO-Revision-Date: 2018-02-24 17:42\n" | 11 | "PO-Revision-Date: 2018-02-24 17:42\n" |
12 | "Last-Translator: Torsten Grothoff <torsten@grothoff.org>\n" | 12 | "Last-Translator: Torsten Grothoff <torsten@grothoff.org>\n" |
13 | "Language-Team: German <LL@li.org>\n" | 13 | "Language-Team: German <LL@li.org>\n" |
14 | "Language: de\n" | ||
14 | "MIME-Version: 1.0\n" | 15 | "MIME-Version: 1.0\n" |
15 | "Content-Type: text/plain; charset=UTF-8\n" | 16 | "Content-Type: text/plain; charset=UTF-8\n" |
16 | "Content-Transfer-Encoding: 8bit\n" | 17 | "Content-Transfer-Encoding: 8bit\n" |
17 | "Language: de\n" | ||
18 | "Generated-By: Babel 2.4.0\n" | 18 | "Generated-By: Babel 2.4.0\n" |
19 | 19 | ||
20 | #~ msgid "GNUnet" | 20 | #~ msgid "GNUnet" |
diff --git a/locale/es/LC_MESSAGES/messages.po b/locale/es/LC_MESSAGES/messages.po index 13e165e9..a19f6a50 100644 --- a/locale/es/LC_MESSAGES/messages.po +++ b/locale/es/LC_MESSAGES/messages.po | |||
@@ -12,10 +12,10 @@ msgstr "" | |||
12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | "Language-Team: LANGUAGE <LL@li.org>\n" | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
15 | "Language: es\n" | ||
15 | "MIME-Version: 1.0\n" | 16 | "MIME-Version: 1.0\n" |
16 | "Content-Type: text/plain; charset=UTF-8\n" | 17 | "Content-Type: text/plain; charset=UTF-8\n" |
17 | "Content-Transfer-Encoding: 8bit\n" | 18 | "Content-Transfer-Encoding: 8bit\n" |
18 | "Language: es\n" | ||
19 | "Generated-By: Babel 2.4.0\n" | 19 | "Generated-By: Babel 2.4.0\n" |
20 | 20 | ||
21 | #~ msgid "Contact" | 21 | #~ msgid "Contact" |
diff --git a/locale/fr/LC_MESSAGES/messages.po b/locale/fr/LC_MESSAGES/messages.po index 2a89f105..1d1ec761 100644 --- a/locale/fr/LC_MESSAGES/messages.po +++ b/locale/fr/LC_MESSAGES/messages.po | |||
@@ -12,8 +12,8 @@ msgstr "" | |||
12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | "Language-Team: LANGUAGE <LL@li.org>\n" | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
15 | "Language: fr\n" | ||
15 | "MIME-Version: 1.0\n" | 16 | "MIME-Version: 1.0\n" |
16 | "Content-Type: text/plain; charset=UTF-8\n" | 17 | "Content-Type: text/plain; charset=UTF-8\n" |
17 | "Content-Transfer-Encoding: 8bit\n" | 18 | "Content-Transfer-Encoding: 8bit\n" |
18 | "Language: fr\n" | ||
19 | "Generated-By: Babel 2.4.0\n" | 19 | "Generated-By: Babel 2.4.0\n" |
diff --git a/locale/it/LC_MESSAGES/messages.po b/locale/it/LC_MESSAGES/messages.po index 433198f8..ca9bf922 100644 --- a/locale/it/LC_MESSAGES/messages.po +++ b/locale/it/LC_MESSAGES/messages.po | |||
@@ -12,10 +12,10 @@ msgstr "" | |||
12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | "Language-Team: LANGUAGE <LL@li.org>\n" | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
15 | "Language: it\n" | ||
15 | "MIME-Version: 1.0\n" | 16 | "MIME-Version: 1.0\n" |
16 | "Content-Type: text/plain; charset=UTF-8\n" | 17 | "Content-Type: text/plain; charset=UTF-8\n" |
17 | "Content-Transfer-Encoding: 8bit\n" | 18 | "Content-Transfer-Encoding: 8bit\n" |
18 | "Language: it\n" | ||
19 | "Generated-By: Babel 2.4.0\n" | 19 | "Generated-By: Babel 2.4.0\n" |
20 | 20 | ||
21 | #~ msgid "_project_title" | 21 | #~ msgid "_project_title" |
diff --git a/news/2019-0.12.0.html.j2 b/news/2019-0.12.0.html.j2 new file mode 100644 index 00000000..6cf68160 --- /dev/null +++ b/news/2019-0.12.0.html.j2 | |||
@@ -0,0 +1,85 @@ | |||
1 | {% extends "common/news.j2" %} | ||
2 | {% block body_content %} | ||
3 | <h1>GNUnet 0.12.0 released</h1> | ||
4 | <p> | ||
5 | We are pleased to announce the release of GNUnet 0.12.0. | ||
6 | <br> | ||
7 | This is a new major release. It breaks protocol compatibility with the 0.11.x versions. | ||
8 | Please be aware that Git master is thus henceforth <b>INCOMPATIBLE</b> with | ||
9 | the 0.11.x GNUnet network, and interactions between old and new peers | ||
10 | will result in signature verification failures. 0.11.x peers will <b>NOT</b> | ||
11 | be able to communicate with Git master or 0.12.x peers.<br/> | ||
12 | In terms of usability, users should be aware that there are still | ||
13 | <b>a large number of known open issues</b> in particular with respect to ease | ||
14 | of use, but also some critical privacy issues especially for mobile users. | ||
15 | Also, the nascent network is tiny and thus unlikely to | ||
16 | provide good anonymity or extensive amounts of interesting information. | ||
17 | As a result, the 0.12.0 release is still <b>only suitable for early adopters | ||
18 | with some reasonable pain tolerance</b>. | ||
19 | </p> | ||
20 | <h4>Download links</h4> | ||
21 | <ul> | ||
22 | <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.12.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-0.12.0.tar.gz</a></li> | ||
23 | <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.12.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-0.12.0.tar.gz.sig</a></li> | ||
24 | <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.12.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.12.0.tar.gz</a></li> | ||
25 | <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.12.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.12.0.tar.gz.sig</a></li> | ||
26 | <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.12.0.tar.gz">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.12.0.tar.gz</a></li> | ||
27 | <li><a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.12.0.tar.gz.sig">http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.12.0.tar.gz.sig</a></li> | ||
28 | </ul> | ||
29 | <p> | ||
30 | The GPG key used to sign is: <tt>3D11063C10F98D14BD24D1470B0998EF86F59B6A</tt> | ||
31 | </p> | ||
32 | <p> | ||
33 | Note that due to mirror synchronization, not all links might be functional | ||
34 | early after the release. For direct access try | ||
35 | <a href="http://ftp.gnu.org/gnu/gnunet/">http://ftp.gnu.org/gnu/gnunet/</a> | ||
36 | </p> | ||
37 | <h4>Noteworthy changes in 0.12.0 (since 0.11.8)</h4> | ||
38 | <ul> | ||
39 | <li><tt>GNS</tt>: | ||
40 | <ul> | ||
41 | <li>Changed key derivation protocols to adhere with <a href="https://git.gnunet.org/lsd0001.git/tree/draft-schanzen-gns.txt">LSD001</a>. <a href="https://bugs.gnunet.org/view.php?id=5921">#5921</a></li> | ||
42 | <li>Names are not expected to be UTF-8 (as opposed to IDNA). <a href="https://bugs.gnunet.org/view.php?id=5922">#5922</a></li> | ||
43 | <li>NSS plugin now properly handles non-standard IDNA names. <a href="https://bugs.gnunet.org/view.php?id=5927">#5927</a></li> | ||
44 | <li>NSS plugin will refuse to process requests from root (as GNUnet code should never run as root). <a href="https://bugs.gnunet.org/view.php?id=5927">#5907</a></li> | ||
45 | <li>Fixed BOX service/protocol label parsing (for TLSA et al)</li> | ||
46 | </ul> | ||
47 | </li> | ||
48 | <li><tt>GNS/NSE</tt>: Zone revocation proof of work algorithm changed to be less susceptible to specialized ASIC hardware. | ||
49 | <a href="https://bugs.gnunet.org/view.php?id=3795">#3795</a></li> | ||
50 | <li><tt>TRANSPORT</tt>: UDP plugin moved to experimental as it is known to be unstable.</li> | ||
51 | <li><tt>UTIL</tt>: | ||
52 | <ul> | ||
53 | <li>Improved and documented RSA binary format. <a href="https://bugs.gnunet.org/view.php?id=5968">#5968</a></li> | ||
54 | <li>Removed redundant hashing in EdDSA signatures. <a href="https://bugs.gnunet.org/view.php?id=5398">#5398</a></li> | ||
55 | <li>The <tt>gnunet-logread</tt> script for log auditing (requires perl) can now be installed.</li> | ||
56 | <li>Now using <a href="https://tweetnacl.cr.yp.to/">TweetNaCl</a> for ECDH implementation.</li> | ||
57 | </ul> | ||
58 | </li> | ||
59 | <li><tt>Buildsystem</tt>: A significant number of build system issued have been fixed and improvements implemented, including: | ||
60 | <ul> | ||
61 | <li>GLPK dependency dropped.</li> | ||
62 | <li>Fixed guix package definition.</li> | ||
63 | </ul> | ||
64 | </li> | ||
65 | <li><tt>Documentation</tt>: Improvements to the handbook and documentation.</li> | ||
66 | </ul> | ||
67 | <h4>Known Issues</h4> | ||
68 | <ul> | ||
69 | <li>There are known major design issues in the TRANSPORT, ATS and CORE subsystems which will need to be addressed in the future to achieve acceptable usability, performance and security.</li> | ||
70 | <li>There are known moderate implementation limitations in CADET that negatively impact performance.</li> | ||
71 | <li>There are known moderate design issues in FS that also impact usability and performance.</li> | ||
72 | <li>There are minor implementation limitations in SET that create unnecessary attack surface for availability.</li> | ||
73 | <li>The RPS subsystem remains experimental.</li> | ||
74 | <li>Some high-level tests in the test-suite fail non-deterministically due to the low-level TRANSPORT issues.</li> | ||
75 | </ul> | ||
76 | <p> | ||
77 | In addition to this list, you may also want to consult our bug tracker at <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a> which lists about 190 more specific issues. | ||
78 | </p> | ||
79 | |||
80 | <h4>Thanks</h4> | ||
81 | <p> | ||
82 | This release was the work of many people. The following people contributed code and were thus easily identified: | ||
83 | ng0, Christian Grothoff, Florian Dold, xrs, Naomi Phillips and Martin Schanzenbach. | ||
84 | </p> | ||
85 | {% endblock body_content %} | ||
diff --git a/template/gnurl.html.j2 b/template/gnurl.html.j2 index 7d5a7365..7393bb6f 100644 --- a/template/gnurl.html.j2 +++ b/template/gnurl.html.j2 | |||
@@ -1,7 +1,6 @@ | |||
1 | {% extends "common/base.j2" %} | 1 | {% extends "common/base.j2" %} |
2 | {% block body_content %} | 2 | {% block body_content %} |
3 | <article class="container"> | 3 | <article class="container"> |
4 | |||
5 | <header> | 4 | <header> |
6 | <h1>gnurl (libgnurl)</h1> | 5 | <h1>gnurl (libgnurl)</h1> |
7 | <a href="#motivation">motivation</a> | 6 | <a href="#motivation">motivation</a> |
@@ -15,353 +14,395 @@ | |||
15 | <a href="#maintainer">maintainer</a> | 14 | <a href="#maintainer">maintainer</a> |
16 | </header> | 15 | </header> |
17 | 16 | ||
18 | <div class="container"> | 17 | <section class="container"> |
19 | <p> | 18 | <div class="row"> |
20 | {% trans %} | 19 | <div class="col-md"> |
21 | libgnurl is a micro fork of libcurl. The goal of libgnurl | 20 | <p> |
22 | is to support only HTTP and HTTPS (and only HTTP 1.x) with | 21 | {% trans %} |
23 | a single crypto backend (GnuTLS) to ensure a small footprint | 22 | libgnurl is a micro fork of libcurl. The goal of |
24 | and uniform experience for developers regardless of how | 23 | libgnurl is to support only HTTP and HTTPS (and only |
25 | libcurl was compiled.<br> | 24 | HTTP 1.x) with a single crypto backend (GnuTLS) to |
26 | Our main usecase is for GNUnet, but it might be usable for | 25 | ensure a small footprint and uniform experience for |
27 | others, hence we're releasing the code | 26 | developers regardless of how libcurl was compiled. |
28 | to the general public.<br> | 27 | {% endtrans %} |
29 | libgnurl is released under the same | 28 | </p> |
30 | license as libcurl. Please read the README for instructions, as you | 29 | <p> |
31 | must supply the correct options to configure to get a proper build of | 30 | {% trans %} |
32 | libgnurl. | 31 | Our main usecase is for GNUnet, but it might be usable |
33 | {% endtrans %} | 32 | for others, hence we're releasing the code to the |
34 | </p> | 33 | general public. |
35 | <h3>{{ _("About gnurl") }}</h3> | 34 | {% endtrans %} |
36 | <p> | 35 | </p> |
37 | {% trans %} | 36 | <p> |
38 | Large parts of the following 6 paragraphs are old and need | 37 | {% trans %} |
39 | to be rewritten. | 38 | libgnurl is released under the same license as |
40 | {% endtrans %} | 39 | libcurl. Please read the README for instructions, as you |
41 | </p> | 40 | must supply the correct options to configure to get a |
42 | <a name="motivation"></a> | 41 | proper build of libgnurl. |
43 | <h4>{{_("Motivation") }}</h4> | 42 | {% endtrans %} |
44 | <p> | 43 | </p> |
45 | {% trans %} | 44 | </div> |
46 | cURL supports many crypto backends. GNUnet requires the use of | ||
47 | GnuTLS, but other variants are used by some distributions. Supporting | ||
48 | other crypto backends would again expose us to a wider array of | ||
49 | security issues, may create licensing issues and most importantly | ||
50 | introduce new bugs as some crypto backends are known to introduce | ||
51 | subtle runtime issues. While it is possible to have two versions of | ||
52 | libcurl installed on the same system, this is error-prone, especially | ||
53 | as if we are linked against the wrong version, the bugs that arise | ||
54 | might be rather subtle. | ||
55 | {% endtrans %} | ||
56 | </p> | ||
57 | <p> | ||
58 | {% trans %} | ||
59 | For GNUnet, we also need a particularly modern version of | ||
60 | GnuTLS. Thus, it would anyway be necessary to recompile cURL for | ||
61 | GNUnet. But what happens if one links cURL against this version of | ||
62 | GnuTLS? Well, first one would install GnuTLS by hand in the | ||
63 | system. Then, we build cURL. cURL will build against it just fine, but | ||
64 | the linker will eventually complain bitterly. The reason is that cURL | ||
65 | also links against a bunch of other system libraries (gssapi, ldap, | ||
66 | ssh2, rtmp, krb5, sasl2, see discussion on obscure protocols above), | ||
67 | which --- as they are part of the distribution --- were linked against | ||
68 | an older version of GnuTLS. As a result, the same binary would be | ||
69 | linked against two different versions of GnuTLS. That is typically a | ||
70 | recipe for disaster. Thus, in order to avoid updating a dozen system | ||
71 | libraries (and having two versions of those installed), it is | ||
72 | necessary to disable all of those cURL features that GNUnet does not | ||
73 | use, and there are many of those. For GNUnet, the more obscure | ||
74 | protocols supported by cURL are close to dead code --- mostly | ||
75 | harmless, but not useful. However, as some application may use one of | ||
76 | those features, distributions are typically forced to enable all of | ||
77 | those features, and thus including security issues that might arise | ||
78 | from that code. | ||
79 | {% endtrans %} | ||
80 | </p> | ||
81 | <p> | ||
82 | {% trans %} | ||
83 | So to use a modern version of GnuTLS, a sane approach is to disable | ||
84 | all of the "optional" features of cURL that drag in system libraries | ||
85 | that link against the older GnuTLS. That works, except that one should | ||
86 | then NEVER install that version of libcurl in say /usr or /usr/local, | ||
87 | as that may break other parts of the system that might depend on these | ||
88 | features that we just disabled. Libtool versioning doesn't help here, | ||
89 | as it is not intended to deal with libraries that have optional | ||
90 | features. Naturally, installing cURL somewhere else is also | ||
91 | problematic, as we now need to be really careful that the linker will | ||
92 | link GNUnet against the right version. Note that none of this can | ||
93 | really be trivially fixed by the cURL developers. | ||
94 | {% endtrans %} | ||
95 | </p> | ||
96 | <a name="rename"></a> | ||
97 | <h4>{{_("Rename to fix") }}</h4> | ||
98 | <p> | ||
99 | {% trans %} | ||
100 | How does forking fix it? Easy. First, we can get rid of all of the | ||
101 | compatibility issues --- if you use libgnurl, you state that you don't | ||
102 | need anything but HTTP/HTTPS. Those applications that need more, | ||
103 | should stick with the original cURL. Those that do not, can choose to | ||
104 | move to something simpler. As the library gets a new name, we do not | ||
105 | have to worry about tons of packages breaking as soon as one rebuilds | ||
106 | it. So renaming itself and saying that "libgnurl = libcurl with only | ||
107 | HTTP/HTTPS support and GnuTLS" fixes 99%% of the problems that darkened | ||
108 | my mood. Note that this pretty much CANNOT be done without a fork, as | ||
109 | renaming is an essential part of the fix. Now, there might be creative | ||
110 | solutions to achieve the same thing within the standard cURL build | ||
111 | system, but I'm not happy to wait for a decade for Daniel to review | ||
112 | the patches. The changes libgnurl makes to curl are miniscule and can | ||
113 | easily be applied again and again whenever libcurl makes a new | ||
114 | release. | ||
115 | {% endtrans %} | ||
116 | </p> | ||
117 | <a name="using"></a> | ||
118 | <h4>{{_("Using libgnurl") }}</h4> | ||
119 | <p> | ||
120 | {% trans %} | ||
121 | Projects that use cURL only for HTTP/HTTPS and that would work | ||
122 | with GnuTLS should be able to switch to libgnurl by changing | ||
123 | "-lcurl" to "-lgnurl". That's it. No changes to the source code | ||
124 | should be required, | ||
125 | as libgnurl strives for bug-for-bug compatibility with the | ||
126 | HTTP/HTTPS/GnuTLS subset of cURL. | ||
127 | We might add new features relating to this core subset if they | ||
128 | are proposed, but so far we have kept our changes minimal and | ||
129 | no additions to the original curl source have been written. | ||
130 | {% endtrans %} | ||
131 | </p> | ||
132 | <a name="gotchas"></a> | ||
133 | <h4>{{_("Gotchas") }}</h4> | ||
134 | <p> | ||
135 | {% trans %} | ||
136 | libgnurl and gnurl are not intended to be used as a replacement | ||
137 | for curl for users. Since no conflicts in filenames should occur | ||
138 | you are not expected to remove curl to make use of gnurl and | ||
139 | viceversa. | ||
140 | {% endtrans %} | ||
141 | </p> | ||
142 | </div> | ||
143 | |||
144 | <div class="row container"> | ||
145 | <div class="col-md"> | ||
146 | <a name="source"></a> | ||
147 | <h3>{{ _("Source Code") }}</h3> | ||
148 | <p> | ||
149 | {% trans %} | ||
150 | You can get the gnurl git repository using: | ||
151 | {% endtrans %} | ||
152 | </p> | ||
153 | <ul> | ||
154 | <li> | ||
155 | <code>git clone https://git.taler.net/gnurl.git</code> | ||
156 | </li> | ||
157 | <li> | ||
158 | <code>git clone git://git.taler.net/gnurl.git</code> | ||
159 | </li> | ||
160 | </ul> | ||
161 | <p> | ||
162 | {% trans %} | ||
163 | The versions are checked in as (signed) git tags. | ||
164 | {% endtrans %} | ||
165 | </p> | ||
166 | </div> | 45 | </div> |
167 | <div class="col-md"> | 46 | <div class="row"> |
168 | <a name="downloads"></a> | 47 | <div class="col-md"> |
169 | <h3>{{ _("Downloads") }}</h3> | 48 | <h2>{{ _("About gnurl") }}</h3> |
170 | <p> | 49 | <p> |
171 | {% trans %} | 50 | {% trans %} |
172 | Releases are published on <a href="https://ftpmirror.gnu.org/gnu/gnunet/">ftpmirror.gnu.org/gnu/gnunet</a>. | 51 | Large parts of the following 6 paragraphs are old and need |
173 | gnurl is available from within a variety of distributions and package managers. | 52 | to be rewritten. |
174 | Package Managers which include gnurl are: | 53 | {% endtrans %} |
175 | <a href="https://www.gnu.org/software/guix/">GNU Guix</a> (available as "gnurl"), | 54 | </p> |
176 | <a href="https://gentoo.org">Gentoo</a> through the collaborative ebuild collection | 55 | </div> |
177 | <a href="https://git.gnunet.org/youbroketheinternet-overlay.git/">youbroketheinternet</a>, | ||
178 | <a href="https://nixos.org/nix/">Nix</a>, and as www/gnurl in | ||
179 | <a href="https://pkgsrc.org">pkgsrc</a>. | ||
180 | {% endtrans %} | ||
181 | </p> | ||
182 | </div> | 56 | </div> |
183 | </div> | 57 | <div class="row"> |
184 | 58 | <div class="col-md"> | |
185 | <div class="row container"> | 59 | <a name="motivation"></a> |
186 | <div class="col-md"> | 60 | <h3>{{_("Motivation") }}</h4> |
187 | <a name="building"></a> | 61 | <p> |
188 | <h3>{{ _("Building gnurl") }}</h3> | 62 | {% trans %} |
189 | <p> | 63 | cURL supports many crypto backends. GNUnet requires the use of |
190 | {% trans %} | 64 | GnuTLS, but other variants are used by some distributions. Supporting |
191 | We suggest to closely follow release announcements, as they | 65 | other crypto backends would again expose us to a wider array of |
192 | might indicate changes in how gnurl is to be build. | 66 | security issues, may create licensing issues and most importantly |
193 | <br> | 67 | introduce new bugs as some crypto backends are known to introduce |
194 | If your package manager provides a binary build or build | 68 | subtle runtime issues. While it is possible to have two versions of |
195 | instructions to build gnurl from source automated and | 69 | libcurl installed on the same system, this is error-prone, especially |
196 | integrated with your environment, we strongly suggest to use | 70 | as if we are linked against the wrong version, the bugs that arise |
197 | this binary build. | 71 | might be rather subtle. |
198 | <br> | 72 | {% endtrans %} |
199 | There are two ways to build gnurl. The first one builds from | 73 | </p> |
200 | the most recent git tag, the second one uses the distributed | 74 | <p> |
201 | tarball. Distributors generally are supposed to build from | ||
202 | the tarball, but we describe both methods here. Both methods | ||
203 | are written with a NetBSD 9 userland in mind, substitute tools | ||
204 | as necessary. | ||
205 | <br> | ||
206 | You should <b>avoid</b> building gnurl from the tip of the | ||
207 | default git branch, as only tags are considered to be stable | ||
208 | and approved builds. | ||
209 | {% endtrans %} | ||
210 | </p> | ||
211 | <h4>{{ _("Building from the distributed tarball (prefered method)") }}</h4> | ||
212 | <p> | ||
213 | {% trans %} | ||
214 | If you want to verify the signature, install an OpenPGP compatible tool such | ||
215 | as security/gnupgp2 (and set it up). Assuming you use pkgin: | ||
216 | {% endtrans %} | ||
217 | </p> | ||
218 | <ul> | ||
219 | <li> | ||
220 | pkgin update | ||
221 | </li> | ||
222 | <li> | ||
223 | pkgin install gnupg2 | ||
224 | </li> | ||
225 | </ul> | ||
226 | <p> | ||
227 | {% trans %} | ||
228 | Fetch the signature key from | ||
229 | {% endtrans %} | ||
230 | <a href="https://keys.openpgp.org/search?q=ng0%40n0.is">keys.openpgp.org</a> | ||
231 | {% trans %} | ||
232 | or via commandline with gnupg2. | ||
233 | {% endtrans %} | ||
234 | </p> | ||
235 | <p> | ||
236 | {% trans %} | ||
237 | Fetch the release, the signature, the checksum file as well as its signature: | ||
238 | {% endtrans %} | ||
239 | </p> | ||
240 | <ul> | ||
241 | <li> | ||
242 | ftp https://ftpmirror.gnu.org/gnu/gnunet/gnurl-7.65.3.tar.Z | ||
243 | </li> | ||
244 | <li> | ||
245 | ftp https://ftpmirror.gnu.org/gnu/gnunet/gnurl-7.65.3.tar.Z.sig | ||
246 | </li> | ||
247 | <li> | ||
248 | ftp https://ftpmirror.gnu.org/gnu.org/gnunet/gnurl-7.65.3.sum.txt | ||
249 | </li> | ||
250 | <li> | ||
251 | ftp https://ftpmirror.gnu.org/gnu.org/gnunet/gnurl-7.65.3.sum.txt.sig | ||
252 | </li> | ||
253 | </ul> | ||
254 | <p> | ||
255 | {% trans %} | ||
256 | verify the signatures, and verify the checksums against the | ||
257 | checksums in the .sum.txt file. | ||
258 | {% endtrans %} | ||
259 | </p> | ||
260 | <p> | ||
261 | {% trans %} | ||
262 | unpack the tarball: | ||
263 | {% endtrans %} | ||
264 | </p> | ||
265 | <ul> | ||
266 | <li> | ||
267 | tar -zxf gnurl-7.65.3.tar.Z | ||
268 | </li> | ||
269 | </ul> | ||
270 | <p> | ||
271 | {% trans %} | ||
272 | Change into the directory | ||
273 | {% endtrans %} | ||
274 | </p> | ||
275 | <ul> | ||
276 | <li> | ||
277 | cd gnurl-7.65.3 | ||
278 | </li> | ||
279 | </ul> | ||
280 | <p> | ||
281 | {% trans %} | ||
282 | Now you can either run | ||
283 | {% endtrans %} | ||
284 | </p> | ||
285 | <ul> | ||
286 | <li> | ||
287 | ./configure | ||
288 | </li> | ||
289 | </ul> | ||
290 | <p> | ||
291 | {% trans %} | ||
292 | directly (and read configure-gnurl before you do so) or invoke | ||
293 | {% endtrans %} | ||
294 | </p> | ||
295 | <ul> | ||
296 | <li> | ||
297 | ./configure-gnurl | ||
298 | </li> | ||
299 | </ul> | ||
300 | <p> | ||
301 | {% trans %} | ||
302 | and pass additional parameters such as a custom PREFIX location. | ||
303 | Further reference can be the | ||
304 | {% endtrans %} | ||
305 | <a href="http://pkgsrc.se/www/gnurl">www/gnurl</a> Makefile. | ||
306 | {% trans %} | ||
307 | Now run | ||
308 | {% endtrans %} | ||
309 | </p> | ||
310 | <ul> | ||
311 | <li> | ||
312 | make | ||
313 | </li> | ||
314 | <li> | ||
315 | make check | ||
316 | {% trans %} | 75 | {% trans %} |
317 | (this is optional) | 76 | For GNUnet, we also need a particularly modern version of |
77 | GnuTLS. Thus, it would anyway be necessary to recompile cURL for | ||
78 | GNUnet. But what happens if one links cURL against this version of | ||
79 | GnuTLS? Well, first one would install GnuTLS by hand in the | ||
80 | system. Then, we build cURL. cURL will build against it just fine, but | ||
81 | the linker will eventually complain bitterly. The reason is that cURL | ||
82 | also links against a bunch of other system libraries (gssapi, ldap, | ||
83 | ssh2, rtmp, krb5, sasl2, see discussion on obscure protocols above), | ||
84 | which --- as they are part of the distribution --- were linked against | ||
85 | an older version of GnuTLS. As a result, the same binary would be | ||
86 | linked against two different versions of GnuTLS. That is typically a | ||
87 | recipe for disaster. Thus, in order to avoid updating a dozen system | ||
88 | libraries (and having two versions of those installed), it is | ||
89 | necessary to disable all of those cURL features that GNUnet does not | ||
90 | use, and there are many of those. For GNUnet, the more obscure | ||
91 | protocols supported by cURL are close to dead code --- mostly | ||
92 | harmless, but not useful. However, as some application may use one of | ||
93 | those features, distributions are typically forced to enable all of | ||
94 | those features, and thus including security issues that might arise | ||
95 | from that code. | ||
318 | {% endtrans %} | 96 | {% endtrans %} |
319 | </li> | 97 | </p> |
320 | <li> | 98 | <p> |
321 | make install | 99 | {% trans %} |
322 | </li> | 100 | So to use a modern version of GnuTLS, a sane approach is to disable |
323 | </ul> | 101 | all of the "optional" features of cURL that drag in system libraries |
324 | <p> | 102 | that link against the older GnuTLS. That works, except that one should |
325 | {% trans %} | 103 | then NEVER install that version of libcurl in say /usr or /usr/local, |
326 | and you are done. | 104 | as that may break other parts of the system that might depend on these |
327 | {% endtrans %} | 105 | features that we just disabled. Libtool versioning doesn't help here, |
328 | </p> | 106 | as it is not intended to deal with libraries that have optional |
329 | <h4>{{ _("Building from a tagged git commit") }}</h4> | 107 | features. Naturally, installing cURL somewhere else is also |
330 | <p> | 108 | problematic, as we now need to be really careful that the linker will |
331 | {% trans %} | 109 | link GNUnet against the right version. Note that none of this can |
332 | Follow the steps above, but instead of downloading the tarball, | 110 | really be trivially fixed by the cURL developers. |
333 | clone the git tag you want to build from. | 111 | {% endtrans %} |
334 | {% endtrans %} | 112 | </p> |
335 | </p> | 113 | </div> |
336 | </div> | 114 | </div> |
337 | </div> | 115 | <div class="row"> |
116 | <div class="col-md"> | ||
117 | <a name="rename"></a> | ||
118 | <h3>{{_("Rename to fix") }}</h4> | ||
119 | <p> | ||
120 | {% trans %} | ||
121 | How does forking fix it? Easy. First, we can get rid of all of the | ||
122 | compatibility issues --- if you use libgnurl, you state that you don't | ||
123 | need anything but HTTP/HTTPS. Those applications that need more, | ||
124 | should stick with the original cURL. Those that do not, can choose to | ||
125 | move to something simpler. As the library gets a new name, we do not | ||
126 | have to worry about tons of packages breaking as soon as one rebuilds | ||
127 | it. So renaming itself and saying that "libgnurl = libcurl with only | ||
128 | HTTP/HTTPS support and GnuTLS" fixes 99%% of the problems that darkened | ||
129 | my mood. Note that this pretty much CANNOT be done without a fork, as | ||
130 | renaming is an essential part of the fix. Now, there might be creative | ||
131 | solutions to achieve the same thing within the standard cURL build | ||
132 | system, but I'm not happy to wait for a decade for Daniel to review | ||
133 | the patches. The changes libgnurl makes to curl are miniscule and can | ||
134 | easily be applied again and again whenever libcurl makes a new | ||
135 | release. | ||
136 | {% endtrans %} | ||
137 | </p> | ||
138 | </div> | ||
139 | <div class="col-md"> | ||
140 | <a name="using"></a> | ||
141 | <h3>{{_("Using libgnurl") }}</h4> | ||
142 | <p> | ||
143 | {% trans %} | ||
144 | Projects that use cURL only for HTTP/HTTPS and that would work | ||
145 | with GnuTLS should be able to switch to libgnurl by changing | ||
146 | "-lcurl" to "-lgnurl". That's it. No changes to the source code | ||
147 | should be required, | ||
148 | as libgnurl strives for bug-for-bug compatibility with the | ||
149 | HTTP/HTTPS/GnuTLS subset of cURL. | ||
150 | We might add new features relating to this core subset if they | ||
151 | are proposed, but so far we have kept our changes minimal and | ||
152 | no additions to the original curl source have been written. | ||
153 | {% endtrans %} | ||
154 | </p> | ||
155 | </div> | ||
156 | </div> | ||
157 | <div class="row"> | ||
158 | <div class="col-md"> | ||
159 | <a name="gotchas"></a> | ||
160 | <h3>{{_("Gotchas") }}</h4> | ||
161 | <p> | ||
162 | {% trans %} | ||
163 | libgnurl and gnurl are not intended to be used as a replacement | ||
164 | for curl for users: | ||
165 | <br> | ||
166 | This does not mean there is no confidence in the work done | ||
167 | with gnurl, it means that tools which expect curl or libcurl | ||
168 | will not make use of a different named binary and library. | ||
169 | If you know what you are doing, you should be able to use | ||
170 | gnurl as part of your tooling in place of curl. We do not | ||
171 | recommend to do so however, as the only usage it is tested | ||
172 | for <em>so far</em> is as part of Taler's and GNunet's | ||
173 | build-system. | ||
174 | <br> | ||
175 | Since no conflicts in filenames occur you are not expected | ||
176 | to remove curl to make use of gnurl and viceversa. | ||
177 | {% endtrans %} | ||
178 | </p> | ||
179 | </div> | ||
180 | </div> | ||
181 | |||
182 | <div class="row"> | ||
183 | <div class="col-md"> | ||
184 | <a name="source"></a> | ||
185 | <h2>{{ _("Source Code") }}</h3> | ||
186 | <p> | ||
187 | {% trans %} | ||
188 | You can get the gnurl git repository using: | ||
189 | {% endtrans %} | ||
190 | </p> | ||
191 | <ul> | ||
192 | <li> | ||
193 | <code>git clone https://git.taler.net/gnurl.git</code> | ||
194 | </li> | ||
195 | <li> | ||
196 | <code>git clone git://git.taler.net/gnurl.git</code> | ||
197 | </li> | ||
198 | </ul> | ||
199 | <p> | ||
200 | {% trans %} | ||
201 | The versions are checked in as (signed) git tags. | ||
202 | {% endtrans %} | ||
203 | </p> | ||
204 | </div> | ||
338 | 205 | ||
339 | <div class="row container"> | 206 | <div class="col-md"> |
340 | <div class="col-md"> | 207 | <a name="downloads"></a> |
341 | <a name="reporting"></a> | 208 | <h2>{{ _("Downloads") }}</h3> |
342 | <h3>{{ _("Reporting Bugs") }}</h3> | 209 | <p> |
343 | <p> | 210 | {% trans %} |
344 | {% trans %} | 211 | Releases are published on <a href="https://ftpmirror.gnu.org/gnu/gnunet/">ftpmirror.gnu.org/gnu/gnunet</a>. |
345 | You can report bugs on our bug tracker: | 212 | gnurl is available from within a variety of distributions and package managers. |
346 | <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a>. Alternatively | 213 | Package Managers which include gnurl are: |
347 | you can use our bug mailinglist, but we prefer to track bugs | 214 | <a href="https://www.gnu.org/software/guix/">GNU Guix</a> (available as "gnurl"), |
348 | on the bugtracker. | 215 | <a href="https://gentoo.org">Gentoo</a> through the collaborative ebuild collection |
349 | {% endtrans %} | 216 | <a href="https://git.gnunet.org/youbroketheinternet-overlay.git/">youbroketheinternet</a>, |
350 | </p> | 217 | <a href="https://nixos.org/nix/">Nix</a>, and as www/gnurl in |
218 | <a href="https://pkgsrc.org">pkgsrc</a>. | ||
219 | {% endtrans %} | ||
220 | </p> | ||
221 | </div> | ||
351 | </div> | 222 | </div> |
352 | <div class="col-md"> | 223 | |
353 | <a name="maintainer"></a> | 224 | <div class="row"> |
354 | <h3>{{ _("Maintainer and Cryptographic signatures") }}</h3> | 225 | <div class="col-md"> |
355 | <p> | 226 | <a name="building"></a> |
356 | {% trans %} | 227 | <h2>{{ _("Building gnurl") }}</h3> |
357 | gnurl/libgnurl is maintained by ng0. | 228 | <p> |
358 | Releases are signed | 229 | {% trans %} |
359 | with the OpenPGP Key <b>A88C8ADD129828D7EAC02E52E22F9BBFEE348588</b>, | 230 | We suggest to closely follow release announcements, as they |
360 | with the key fingerprint <b>A88C 8ADD 1298 28D7 EAC0 2E52 E22F 9BBF EE34 8588</b>. | 231 | might indicate changes in how gnurl is to be build. |
361 | {% endtrans %} | 232 | <br> |
362 | </p> | 233 | If your package manager provides a binary build or build |
234 | instructions to build gnurl from source automated and | ||
235 | integrated with your environment, we strongly suggest to use | ||
236 | this binary build. | ||
237 | <br> | ||
238 | There are two ways to build gnurl. The first one builds from | ||
239 | the most recent git tag, the second one uses the distributed | ||
240 | tarball. Distributors generally are supposed to build from | ||
241 | the tarball, but we describe both methods here. Both methods | ||
242 | are written with a NetBSD 9 userland in mind, substitute tools | ||
243 | as necessary. | ||
244 | <br> | ||
245 | You should <b>avoid</b> building gnurl from the tip of the | ||
246 | default git branch, as only tags are considered to be stable | ||
247 | and approved builds. | ||
248 | {% endtrans %} | ||
249 | </p> | ||
250 | <h3>{{ _("Building from the distributed tarball (prefered method)") }}</h4> | ||
251 | <p> | ||
252 | {% trans %} | ||
253 | If you want to verify the signature, install an OpenPGP compatible tool such | ||
254 | as security/gnupgp2 (and set it up). Assuming you use pkgin: | ||
255 | {% endtrans %} | ||
256 | </p> | ||
257 | <ul> | ||
258 | <li> | ||
259 | pkgin update | ||
260 | </li> | ||
261 | <li> | ||
262 | pkgin install gnupg2 | ||
263 | </li> | ||
264 | </ul> | ||
265 | <p> | ||
266 | {% trans %} | ||
267 | Fetch the signature key from | ||
268 | {% endtrans %} | ||
269 | <a href="https://keys.openpgp.org/search?q=ng0%40n0.is">keys.openpgp.org</a> | ||
270 | {% trans %} | ||
271 | or via commandline with gnupg2. | ||
272 | {% endtrans %} | ||
273 | </p> | ||
274 | <p> | ||
275 | {% trans %} | ||
276 | Fetch the release, the signature, the checksum file as well as its signature: | ||
277 | {% endtrans %} | ||
278 | </p> | ||
279 | <ul> | ||
280 | <li> | ||
281 | ftp https://ftpmirror.gnu.org/gnu/gnunet/gnurl-7.65.3.tar.Z | ||
282 | </li> | ||
283 | <li> | ||
284 | ftp https://ftpmirror.gnu.org/gnu/gnunet/gnurl-7.65.3.tar.Z.sig | ||
285 | </li> | ||
286 | <li> | ||
287 | ftp https://ftpmirror.gnu.org/gnu.org/gnunet/gnurl-7.65.3.sum.txt | ||
288 | </li> | ||
289 | <li> | ||
290 | ftp https://ftpmirror.gnu.org/gnu.org/gnunet/gnurl-7.65.3.sum.txt.sig | ||
291 | </li> | ||
292 | </ul> | ||
293 | <p> | ||
294 | {% trans %} | ||
295 | verify the signatures, and verify the checksums against the | ||
296 | checksums in the .sum.txt file. | ||
297 | {% endtrans %} | ||
298 | </p> | ||
299 | <p> | ||
300 | {% trans %} | ||
301 | unpack the tarball: | ||
302 | {% endtrans %} | ||
303 | </p> | ||
304 | <ul> | ||
305 | <li> | ||
306 | tar -zxf gnurl-7.65.3.tar.Z | ||
307 | </li> | ||
308 | </ul> | ||
309 | <p> | ||
310 | {% trans %} | ||
311 | Change into the directory | ||
312 | {% endtrans %} | ||
313 | </p> | ||
314 | <ul> | ||
315 | <li> | ||
316 | cd gnurl-7.65.3 | ||
317 | </li> | ||
318 | </ul> | ||
319 | <p> | ||
320 | {% trans %} | ||
321 | Now you can either run | ||
322 | {% endtrans %} | ||
323 | </p> | ||
324 | <ul> | ||
325 | <li> | ||
326 | ./configure | ||
327 | </li> | ||
328 | </ul> | ||
329 | <p> | ||
330 | {% trans %} | ||
331 | directly (and read configure-gnurl before you do so) or invoke | ||
332 | {% endtrans %} | ||
333 | </p> | ||
334 | <ul> | ||
335 | <li> | ||
336 | ./configure-gnurl | ||
337 | </li> | ||
338 | </ul> | ||
339 | <p> | ||
340 | {% trans %} | ||
341 | and pass additional parameters such as a custom PREFIX location. | ||
342 | Further reference can be the | ||
343 | {% endtrans %} | ||
344 | <a href="http://pkgsrc.se/www/gnurl">www/gnurl</a> Makefile. | ||
345 | {% trans %} | ||
346 | Now run | ||
347 | {% endtrans %} | ||
348 | </p> | ||
349 | <ul> | ||
350 | <li> | ||
351 | make | ||
352 | </li> | ||
353 | <li> | ||
354 | make check | ||
355 | {% trans %} | ||
356 | (this is optional) | ||
357 | {% endtrans %} | ||
358 | </li> | ||
359 | <li> | ||
360 | make install | ||
361 | </li> | ||
362 | </ul> | ||
363 | <p> | ||
364 | {% trans %} | ||
365 | and you are done. | ||
366 | {% endtrans %} | ||
367 | </p> | ||
368 | <h3>{{ _("Building from a tagged git commit") }}</h4> | ||
369 | <p> | ||
370 | {% trans %} | ||
371 | Follow the steps above, but instead of downloading the tarball, | ||
372 | clone the git tag you want to build from. | ||
373 | {% endtrans %} | ||
374 | </p> | ||
375 | </div> | ||
363 | </div> | 376 | </div> |
364 | </div> | ||
365 | 377 | ||
378 | <div class="row"> | ||
379 | <div class="col-md"> | ||
380 | <a name="reporting"></a> | ||
381 | <h2>{{ _("Reporting Bugs") }}</h3> | ||
382 | <p> | ||
383 | {% trans %} | ||
384 | You can report bugs on our bug tracker: | ||
385 | <a href="https://bugs.gnunet.org/">bugs.gnunet.org</a>. Alternatively | ||
386 | you can use our bug mailinglist, but we prefer to track bugs | ||
387 | on the bugtracker. | ||
388 | {% endtrans %} | ||
389 | </p> | ||
390 | </div> | ||
391 | |||
392 | <div class="col-md"> | ||
393 | <a name="maintainer"></a> | ||
394 | <h2>{{ _("Maintainer and Cryptographic signatures") }}</h3> | ||
395 | <p> | ||
396 | {% trans %} | ||
397 | gnurl/libgnurl is maintained by ng0. | ||
398 | Releases are signed with the OpenPGP Key | ||
399 | <b>A88C8ADD129828D7EAC02E52E22F9BBFEE348588</b>, | ||
400 | with the key fingerprint | ||
401 | <b>A88C 8ADD 1298 28D7 EAC0 2E52 E22F 9BBF EE34 8588</b>. | ||
402 | {% endtrans %} | ||
403 | </p> | ||
404 | </div> | ||
405 | </div> | ||
406 | </section> | ||
366 | </article> <!-- /container --> | 407 | </article> <!-- /container --> |
367 | {% endblock body_content %} | 408 | {% endblock body_content %} |
diff --git a/template/install.html.j2 b/template/install.html.j2 index 03313f64..2245b9fb 100644 --- a/template/install.html.j2 +++ b/template/install.html.j2 | |||
@@ -7,12 +7,24 @@ | |||
7 | </header> | 7 | </header> |
8 | 8 | ||
9 | <div class="row container justify-content-center"> | 9 | <div class="row container justify-content-center"> |
10 | <div class="alert" style="background-color: #419edb;"> | 10 | <div class="alert" style="background-color: #419edb;"> |
11 | <div class="alert-content"> | 11 | <div class="alert-content"> |
12 | Notice: GNUnet is still undergoing major development. It is | 12 | Notice: GNUnet is still undergoing major development. It is |
13 | largely <i>not yet ready</i> for usage beyond developers. | 13 | largely <i>not yet ready</i> for usage beyond developers. |
14 | </div> | ||
15 | </div> | 14 | </div> |
15 | </div> | ||
16 | </div> | ||
17 | |||
18 | <h3>Current release downloads:</h3> | ||
19 | <div class="row container justify-content-center"> | ||
20 | <div class="col-md"> | ||
21 | <b>gnunet</b>: <a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.12.0.tar.gz">0.12.0</a> (<a href="http://ftpmirror.gnu.org/gnunet/gnunet-0.12.0.tar.gz.sig">sig</a>) sha512sum: <tt>5457d6f80478b28821de70b4da419d40d6972d270622bdeb83e5552b286fd032</tt><br> | ||
22 | <b>gnunet-gtk</b>: <a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.12.0.tar.gz">0.12.0</a> (<a href="http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.12.0.tar.gz.sig">sig</a>) sha512sum: <tt>cb99da11d68107f9709ee5be49cc574e9a03054767334767930ae6b0bd1a4421</tt><br/> | ||
23 | <b>gnunet-fuse</b>: <a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.12.0.tar.gz">0.12.0</a> (<a href="http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.12.0.tar.gz.sig">sig</a>) sha512sum: <tt>4d42dc3112f36ada150b3904e207b93373c90d4fbd5a1c6415ee7f5c6a428e3b</tt> | ||
24 | </div> | ||
25 | </div> | ||
26 | <h3>Instructions</h3><br/> | ||
27 | <div class="row container justify-content-center"> | ||
16 | <div class="col-md"> | 28 | <div class="col-md"> |
17 | {% trans %} | 29 | {% trans %} |
18 | <p>The following GNUnet installation instructions help you building from source for your Operating System.</p> | 30 | <p>The following GNUnet installation instructions help you building from source for your Operating System.</p> |
@@ -56,6 +56,11 @@ meetingnotes: | |||
56 | 2017: 2017-12-27 | 56 | 2017: 2017-12-27 |
57 | 2018: 2018-12-27 | 57 | 2018: 2018-12-27 |
58 | newsposts: | 58 | newsposts: |
59 | - page: 2019-0.12.0.html | ||
60 | date: 2019-12-20 | ||
61 | title: GNUnet 0.12.0 | ||
62 | abstract: | ||
63 | content: | ||
59 | - page: 2019-11-ICANNUpdate.html | 64 | - page: 2019-11-ICANNUpdate.html |
60 | date: 2019-11-10 | 65 | date: 2019-11-10 |
61 | title: GNS@ICANN66 | 66 | title: GNS@ICANN66 |