aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSchanzenbach, Martin <mschanzenbach@posteo.de>2019-12-20 10:28:09 +0900
committerSchanzenbach, Martin <mschanzenbach@posteo.de>2019-12-20 10:28:09 +0900
commitc511e990a3208730371663a9c7847a9f9fab9b83 (patch)
tree82094965ae42672440776c6c0cf224479d0ff26d
parent9975d6f250dee9a4d599d2c144b3700646290ca3 (diff)
parenta97f6beb152b6fe13fc3ff8a3a21fc21eb697057 (diff)
downloadwww-c511e990a3208730371663a9c7847a9f9fab9b83.tar.gz
www-c511e990a3208730371663a9c7847a9f9fab9b83.zip
Merge branch 'master' into stable
-rw-r--r--Dockerfile1
-rw-r--r--GNUmakefile99
-rw-r--r--Makefile107
-rw-r--r--README19
-rwxr-xr-xbootstrap2
m---------build-system/taler-build-scripts0
m---------inc0
-rw-r--r--locale/de/LC_MESSAGES/messages.po2
-rw-r--r--locale/es/LC_MESSAGES/messages.po2
-rw-r--r--locale/fr/LC_MESSAGES/messages.po2
-rw-r--r--locale/it/LC_MESSAGES/messages.po2
-rw-r--r--news/2019-0.12.0.html.j285
-rw-r--r--template/gnurl.html.j2721
-rw-r--r--template/install.html.j218
-rw-r--r--www.yml5
15 files changed, 552 insertions, 513 deletions
diff --git a/Dockerfile b/Dockerfile
index 7b17dc87..09db58f0 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -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
20include config.mk
21
22all: 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.
50locale/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.
54locale-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.
61locale-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.
67locale: locale-update locale-compile
68
69# Run the jinja2 templating engine to expand templates to HTML
70# incorporating translations.
71template: locale-compile
72 $(python) ./make_site.py
73
74it: template
75
76current_dir = $(shell pwd)
77
78run: 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
86docker: docker-all
87
88docker-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
95clean:
96 $(rm) -rf __pycache__
97 $(rm) -rf en/ de/ fr/ it/ es/ ru/
98 $(rm) -rf rendered/
99 $(rm) -rf *.pyc *~ \.*~ \#*\#
diff --git a/Makefile b/Makefile
index 4cb7a99b..e47f3faa 100644
--- a/Makefile
+++ b/Makefile
@@ -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,
10DESTDIR=$(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 20include config.mk
20 21
21# All: build HTML pages in all languages and compile the
22# TypeScript logic in web-common.
23all: locale template 22all: 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.
45locale/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.
50locale/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.
49locale-update: locale/messages.pot 54locale-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.
59locale-compile: 61locale-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.
65locale: locale-update locale-compile 67locale: 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.
69template: locale-compile 71template: locale-compile
70 $(python) ./make_site.py -vvvv 72 $(python) ./make_site.py
71 73
72run: 74it: 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
78install: 76current_dir = $(shell pwd)
79 $(mkdir) -p $(prefix)/share/gnunet-www
80 $(cp) -R rendered/* $(prefix)/share/gnunet-www
81 77
82uninstall: 78run: 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
85submodules/init:
86 $(git) submodule update --init --recursive
87 82
88submodules/update: 83# docker-all: Build using a docker image which contains all the needed
89 $(git) submodule update --recursive --remote 84# packages.
90 85
91docker: docker-all 86docker: docker-all
92 87
93docker-all: 88docker-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
102CLEANFILES+= *.pyc *~ \.*~ *.core
103 94
104.include <bsd.prog.mk> 95clean:
96 $(rm) -rf __pycache__
97 $(rm) -rf en/ de/ fr/ it/ es/ ru/
98 $(rm) -rf rendered/
99 $(rm) -rf *.pyc *~ \.*~ \#*\#
diff --git a/README b/README
index 9857ac6a..6fb8ac15 100644
--- a/README
+++ b/README
@@ -67,6 +67,8 @@ Writing News
67 67
68Writing news posts for gnunet.org involves a couple of steps. 68Writing news posts for gnunet.org involves a couple of steps.
69If you intend to write a new post, read this carefully. 69If you intend to write a new post, read this carefully.
70Note that this section will be worked into a separate onboarding
71section 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
133Please use HTML codes, not international signs as found on your keyboard. 134Please use HTML codes, not international signs as found on your keyboard.
134 135
135This website has been tested with: 136This 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
138Since python development in collaborative environments with 139Since python development in collaborative environments with
139a whole range of possibilities in what your environment looks 140a whole range of possibilities in what your environment looks
140like, please state problems on the mailinglist instead of just 141like, please state problems on the mailinglist instead of just
diff --git a/bootstrap b/bootstrap
index 7630c337..dcc5ae3a 100755
--- a/bootstrap
+++ b/bootstrap
@@ -11,7 +11,7 @@ if ! git --version >/dev/null; then
11fi 11fi
12 12
13git submodule update --init 13git submodule update --init
14git submodule update --recursive --remote 14git submodule update --recursive
15git submodule sync 15git submodule sync
16cp build-system/taler-build-scripts/configure ./configure || true 16cp build-system/taler-build-scripts/configure ./configure || true
17cp build-system/taler-build-scripts/conf/.style.yapf .style.yapf || true 17cp 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&#39;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&#39;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&#39;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&#39;s and GNunet&#39;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>
diff --git a/www.yml b/www.yml
index 8a019878..aeb0dbaa 100644
--- a/www.yml
+++ b/www.yml
@@ -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
58newsposts: 58newsposts:
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