aboutsummaryrefslogtreecommitdiff
path: root/template/gnurl.html.j2
diff options
context:
space:
mode:
Diffstat (limited to 'template/gnurl.html.j2')
-rw-r--r--template/gnurl.html.j2721
1 files changed, 381 insertions, 340 deletions
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 %}