diff options
author | Anonymized <anonymous@example.com> | 2018-01-07 18:46:04 +0100 |
---|---|---|
committer | Anonymized <anonymous@example.com> | 2018-01-07 18:46:04 +0100 |
commit | b4eed6560a090e9b1b492b66a6d17f80025e0704 (patch) | |
tree | 1434981a9419faa210e376bf4c763d74e5f9bbc2 | |
download | gnunet-guile2-b4eed6560a090e9b1b492b66a6d17f80025e0704.tar.gz gnunet-guile2-b4eed6560a090e9b1b492b66a6d17f80025e0704.zip |
reboot the gnunet-guile project
-rw-r--r-- | .gitignore | 15 | ||||
-rw-r--r-- | AUTHORS | 4 | ||||
-rw-r--r-- | COPYING | 674 | ||||
-rw-r--r-- | Makefile.am | 67 | ||||
-rw-r--r-- | README | 26 | ||||
-rwxr-xr-x | bootstrap | 2 | ||||
-rw-r--r-- | configure.ac | 56 | ||||
-rw-r--r-- | doc/Makefile.am | 38 | ||||
-rw-r--r-- | doc/docstyle.css | 76 | ||||
-rw-r--r-- | doc/fdl-1.3.texi | 505 | ||||
-rwxr-xr-x | doc/gendocs.sh | 504 | ||||
-rw-r--r-- | doc/gendocs_template | 91 | ||||
-rw-r--r-- | doc/gendocs_template_min | 93 | ||||
-rw-r--r-- | doc/gnunet-guile.texi | 132 | ||||
-rw-r--r-- | doc/gpl-3.0.texi | 717 | ||||
-rw-r--r-- | doc/htmlxref.cnf | 668 | ||||
-rw-r--r-- | doc/index.html | 34 | ||||
-rwxr-xr-x | doc/run-gendocs.sh | 6 | ||||
-rw-r--r-- | download.scm | 21 | ||||
-rw-r--r-- | gnunet.scm | 480 | ||||
-rw-r--r-- | gnunet/config.scm.in | 25 | ||||
-rw-r--r-- | guix.scm | 165 | ||||
-rw-r--r-- | pre-inst-env.in | 39 |
23 files changed, 4438 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..eb37ab0 --- /dev/null +++ b/.gitignore | |||
@@ -0,0 +1,15 @@ | |||
1 | *~ | ||
2 | *.go | ||
3 | Makefile | ||
4 | Makefile.in | ||
5 | aclocal.m4 | ||
6 | autom4te.cache/ | ||
7 | build-aux/ | ||
8 | config.log | ||
9 | config.status | ||
10 | configure | ||
11 | gnunet/config.scm | ||
12 | pre-inst-env | ||
13 | *.info | ||
14 | doc/stamp-vti | ||
15 | doc/version.texi \ No newline at end of file | ||
@@ -0,0 +1,4 @@ | |||
1 | Rémi Delrue <asgeir@free.fr> | ||
2 | Ludovic Courtès <ludo@gnu.org> | ||
3 | ng0 <ng0@infotropique.org> | ||
4 | Amirouche Boubekki <amirouche@hypermove.net> \ No newline at end of file | ||
@@ -0,0 +1,674 @@ | |||
1 | GNU GENERAL PUBLIC LICENSE | ||
2 | Version 3, 29 June 2007 | ||
3 | |||
4 | Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> | ||
5 | Everyone is permitted to copy and distribute verbatim copies | ||
6 | of this license document, but changing it is not allowed. | ||
7 | |||
8 | Preamble | ||
9 | |||
10 | The GNU General Public License is a free, copyleft license for | ||
11 | software and other kinds of works. | ||
12 | |||
13 | The licenses for most software and other practical works are designed | ||
14 | to take away your freedom to share and change the works. By contrast, | ||
15 | the GNU General Public License is intended to guarantee your freedom to | ||
16 | share and change all versions of a program--to make sure it remains free | ||
17 | software for all its users. We, the Free Software Foundation, use the | ||
18 | GNU General Public License for most of our software; it applies also to | ||
19 | any other work released this way by its authors. You can apply it to | ||
20 | your programs, too. | ||
21 | |||
22 | When we speak of free software, we are referring to freedom, not | ||
23 | price. Our General Public Licenses are designed to make sure that you | ||
24 | have the freedom to distribute copies of free software (and charge for | ||
25 | them if you wish), that you receive source code or can get it if you | ||
26 | want it, that you can change the software or use pieces of it in new | ||
27 | free programs, and that you know you can do these things. | ||
28 | |||
29 | To protect your rights, we need to prevent others from denying you | ||
30 | these rights or asking you to surrender the rights. Therefore, you have | ||
31 | certain responsibilities if you distribute copies of the software, or if | ||
32 | you modify it: responsibilities to respect the freedom of others. | ||
33 | |||
34 | For example, if you distribute copies of such a program, whether | ||
35 | gratis or for a fee, you must pass on to the recipients the same | ||
36 | freedoms that you received. You must make sure that they, too, receive | ||
37 | or can get the source code. And you must show them these terms so they | ||
38 | know their rights. | ||
39 | |||
40 | Developers that use the GNU GPL protect your rights with two steps: | ||
41 | (1) assert copyright on the software, and (2) offer you this License | ||
42 | giving you legal permission to copy, distribute and/or modify it. | ||
43 | |||
44 | For the developers' and authors' protection, the GPL clearly explains | ||
45 | that there is no warranty for this free software. For both users' and | ||
46 | authors' sake, the GPL requires that modified versions be marked as | ||
47 | changed, so that their problems will not be attributed erroneously to | ||
48 | authors of previous versions. | ||
49 | |||
50 | Some devices are designed to deny users access to install or run | ||
51 | modified versions of the software inside them, although the manufacturer | ||
52 | can do so. This is fundamentally incompatible with the aim of | ||
53 | protecting users' freedom to change the software. The systematic | ||
54 | pattern of such abuse occurs in the area of products for individuals to | ||
55 | use, which is precisely where it is most unacceptable. Therefore, we | ||
56 | have designed this version of the GPL to prohibit the practice for those | ||
57 | products. If such problems arise substantially in other domains, we | ||
58 | stand ready to extend this provision to those domains in future versions | ||
59 | of the GPL, as needed to protect the freedom of users. | ||
60 | |||
61 | Finally, every program is threatened constantly by software patents. | ||
62 | States should not allow patents to restrict development and use of | ||
63 | software on general-purpose computers, but in those that do, we wish to | ||
64 | avoid the special danger that patents applied to a free program could | ||
65 | make it effectively proprietary. To prevent this, the GPL assures that | ||
66 | patents cannot be used to render the program non-free. | ||
67 | |||
68 | The precise terms and conditions for copying, distribution and | ||
69 | modification follow. | ||
70 | |||
71 | TERMS AND CONDITIONS | ||
72 | |||
73 | 0. Definitions. | ||
74 | |||
75 | "This License" refers to version 3 of the GNU General Public License. | ||
76 | |||
77 | "Copyright" also means copyright-like laws that apply to other kinds of | ||
78 | works, such as semiconductor masks. | ||
79 | |||
80 | "The Program" refers to any copyrightable work licensed under this | ||
81 | License. Each licensee is addressed as "you". "Licensees" and | ||
82 | "recipients" may be individuals or organizations. | ||
83 | |||
84 | To "modify" a work means to copy from or adapt all or part of the work | ||
85 | in a fashion requiring copyright permission, other than the making of an | ||
86 | exact copy. The resulting work is called a "modified version" of the | ||
87 | earlier work or a work "based on" the earlier work. | ||
88 | |||
89 | A "covered work" means either the unmodified Program or a work based | ||
90 | on the Program. | ||
91 | |||
92 | To "propagate" a work means to do anything with it that, without | ||
93 | permission, would make you directly or secondarily liable for | ||
94 | infringement under applicable copyright law, except executing it on a | ||
95 | computer or modifying a private copy. Propagation includes copying, | ||
96 | distribution (with or without modification), making available to the | ||
97 | public, and in some countries other activities as well. | ||
98 | |||
99 | To "convey" a work means any kind of propagation that enables other | ||
100 | parties to make or receive copies. Mere interaction with a user through | ||
101 | a computer network, with no transfer of a copy, is not conveying. | ||
102 | |||
103 | An interactive user interface displays "Appropriate Legal Notices" | ||
104 | to the extent that it includes a convenient and prominently visible | ||
105 | feature that (1) displays an appropriate copyright notice, and (2) | ||
106 | tells the user that there is no warranty for the work (except to the | ||
107 | extent that warranties are provided), that licensees may convey the | ||
108 | work under this License, and how to view a copy of this License. If | ||
109 | the interface presents a list of user commands or options, such as a | ||
110 | menu, a prominent item in the list meets this criterion. | ||
111 | |||
112 | 1. Source Code. | ||
113 | |||
114 | The "source code" for a work means the preferred form of the work | ||
115 | for making modifications to it. "Object code" means any non-source | ||
116 | form of a work. | ||
117 | |||
118 | A "Standard Interface" means an interface that either is an official | ||
119 | standard defined by a recognized standards body, or, in the case of | ||
120 | interfaces specified for a particular programming language, one that | ||
121 | is widely used among developers working in that language. | ||
122 | |||
123 | The "System Libraries" of an executable work include anything, other | ||
124 | than the work as a whole, that (a) is included in the normal form of | ||
125 | packaging a Major Component, but which is not part of that Major | ||
126 | Component, and (b) serves only to enable use of the work with that | ||
127 | Major Component, or to implement a Standard Interface for which an | ||
128 | implementation is available to the public in source code form. A | ||
129 | "Major Component", in this context, means a major essential component | ||
130 | (kernel, window system, and so on) of the specific operating system | ||
131 | (if any) on which the executable work runs, or a compiler used to | ||
132 | produce the work, or an object code interpreter used to run it. | ||
133 | |||
134 | The "Corresponding Source" for a work in object code form means all | ||
135 | the source code needed to generate, install, and (for an executable | ||
136 | work) run the object code and to modify the work, including scripts to | ||
137 | control those activities. However, it does not include the work's | ||
138 | System Libraries, or general-purpose tools or generally available free | ||
139 | programs which are used unmodified in performing those activities but | ||
140 | which are not part of the work. For example, Corresponding Source | ||
141 | includes interface definition files associated with source files for | ||
142 | the work, and the source code for shared libraries and dynamically | ||
143 | linked subprograms that the work is specifically designed to require, | ||
144 | such as by intimate data communication or control flow between those | ||
145 | subprograms and other parts of the work. | ||
146 | |||
147 | The Corresponding Source need not include anything that users | ||
148 | can regenerate automatically from other parts of the Corresponding | ||
149 | Source. | ||
150 | |||
151 | The Corresponding Source for a work in source code form is that | ||
152 | same work. | ||
153 | |||
154 | 2. Basic Permissions. | ||
155 | |||
156 | All rights granted under this License are granted for the term of | ||
157 | copyright on the Program, and are irrevocable provided the stated | ||
158 | conditions are met. This License explicitly affirms your unlimited | ||
159 | permission to run the unmodified Program. The output from running a | ||
160 | covered work is covered by this License only if the output, given its | ||
161 | content, constitutes a covered work. This License acknowledges your | ||
162 | rights of fair use or other equivalent, as provided by copyright law. | ||
163 | |||
164 | You may make, run and propagate covered works that you do not | ||
165 | convey, without conditions so long as your license otherwise remains | ||
166 | in force. You may convey covered works to others for the sole purpose | ||
167 | of having them make modifications exclusively for you, or provide you | ||
168 | with facilities for running those works, provided that you comply with | ||
169 | the terms of this License in conveying all material for which you do | ||
170 | not control copyright. Those thus making or running the covered works | ||
171 | for you must do so exclusively on your behalf, under your direction | ||
172 | and control, on terms that prohibit them from making any copies of | ||
173 | your copyrighted material outside their relationship with you. | ||
174 | |||
175 | Conveying under any other circumstances is permitted solely under | ||
176 | the conditions stated below. Sublicensing is not allowed; section 10 | ||
177 | makes it unnecessary. | ||
178 | |||
179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. | ||
180 | |||
181 | No covered work shall be deemed part of an effective technological | ||
182 | measure under any applicable law fulfilling obligations under article | ||
183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or | ||
184 | similar laws prohibiting or restricting circumvention of such | ||
185 | measures. | ||
186 | |||
187 | When you convey a covered work, you waive any legal power to forbid | ||
188 | circumvention of technological measures to the extent such circumvention | ||
189 | is effected by exercising rights under this License with respect to | ||
190 | the covered work, and you disclaim any intention to limit operation or | ||
191 | modification of the work as a means of enforcing, against the work's | ||
192 | users, your or third parties' legal rights to forbid circumvention of | ||
193 | technological measures. | ||
194 | |||
195 | 4. Conveying Verbatim Copies. | ||
196 | |||
197 | You may convey verbatim copies of the Program's source code as you | ||
198 | receive it, in any medium, provided that you conspicuously and | ||
199 | appropriately publish on each copy an appropriate copyright notice; | ||
200 | keep intact all notices stating that this License and any | ||
201 | non-permissive terms added in accord with section 7 apply to the code; | ||
202 | keep intact all notices of the absence of any warranty; and give all | ||
203 | recipients a copy of this License along with the Program. | ||
204 | |||
205 | You may charge any price or no price for each copy that you convey, | ||
206 | and you may offer support or warranty protection for a fee. | ||
207 | |||
208 | 5. Conveying Modified Source Versions. | ||
209 | |||
210 | You may convey a work based on the Program, or the modifications to | ||
211 | produce it from the Program, in the form of source code under the | ||
212 | terms of section 4, provided that you also meet all of these conditions: | ||
213 | |||
214 | a) The work must carry prominent notices stating that you modified | ||
215 | it, and giving a relevant date. | ||
216 | |||
217 | b) The work must carry prominent notices stating that it is | ||
218 | released under this License and any conditions added under section | ||
219 | 7. This requirement modifies the requirement in section 4 to | ||
220 | "keep intact all notices". | ||
221 | |||
222 | c) You must license the entire work, as a whole, under this | ||
223 | License to anyone who comes into possession of a copy. This | ||
224 | License will therefore apply, along with any applicable section 7 | ||
225 | additional terms, to the whole of the work, and all its parts, | ||
226 | regardless of how they are packaged. This License gives no | ||
227 | permission to license the work in any other way, but it does not | ||
228 | invalidate such permission if you have separately received it. | ||
229 | |||
230 | d) If the work has interactive user interfaces, each must display | ||
231 | Appropriate Legal Notices; however, if the Program has interactive | ||
232 | interfaces that do not display Appropriate Legal Notices, your | ||
233 | work need not make them do so. | ||
234 | |||
235 | A compilation of a covered work with other separate and independent | ||
236 | works, which are not by their nature extensions of the covered work, | ||
237 | and which are not combined with it such as to form a larger program, | ||
238 | in or on a volume of a storage or distribution medium, is called an | ||
239 | "aggregate" if the compilation and its resulting copyright are not | ||
240 | used to limit the access or legal rights of the compilation's users | ||
241 | beyond what the individual works permit. Inclusion of a covered work | ||
242 | in an aggregate does not cause this License to apply to the other | ||
243 | parts of the aggregate. | ||
244 | |||
245 | 6. Conveying Non-Source Forms. | ||
246 | |||
247 | You may convey a covered work in object code form under the terms | ||
248 | of sections 4 and 5, provided that you also convey the | ||
249 | machine-readable Corresponding Source under the terms of this License, | ||
250 | in one of these ways: | ||
251 | |||
252 | a) Convey the object code in, or embodied in, a physical product | ||
253 | (including a physical distribution medium), accompanied by the | ||
254 | Corresponding Source fixed on a durable physical medium | ||
255 | customarily used for software interchange. | ||
256 | |||
257 | b) Convey the object code in, or embodied in, a physical product | ||
258 | (including a physical distribution medium), accompanied by a | ||
259 | written offer, valid for at least three years and valid for as | ||
260 | long as you offer spare parts or customer support for that product | ||
261 | model, to give anyone who possesses the object code either (1) a | ||
262 | copy of the Corresponding Source for all the software in the | ||
263 | product that is covered by this License, on a durable physical | ||
264 | medium customarily used for software interchange, for a price no | ||
265 | more than your reasonable cost of physically performing this | ||
266 | conveying of source, or (2) access to copy the | ||
267 | Corresponding Source from a network server at no charge. | ||
268 | |||
269 | c) Convey individual copies of the object code with a copy of the | ||
270 | written offer to provide the Corresponding Source. This | ||
271 | alternative is allowed only occasionally and noncommercially, and | ||
272 | only if you received the object code with such an offer, in accord | ||
273 | with subsection 6b. | ||
274 | |||
275 | d) Convey the object code by offering access from a designated | ||
276 | place (gratis or for a charge), and offer equivalent access to the | ||
277 | Corresponding Source in the same way through the same place at no | ||
278 | further charge. You need not require recipients to copy the | ||
279 | Corresponding Source along with the object code. If the place to | ||
280 | copy the object code is a network server, the Corresponding Source | ||
281 | may be on a different server (operated by you or a third party) | ||
282 | that supports equivalent copying facilities, provided you maintain | ||
283 | clear directions next to the object code saying where to find the | ||
284 | Corresponding Source. Regardless of what server hosts the | ||
285 | Corresponding Source, you remain obligated to ensure that it is | ||
286 | available for as long as needed to satisfy these requirements. | ||
287 | |||
288 | e) Convey the object code using peer-to-peer transmission, provided | ||
289 | you inform other peers where the object code and Corresponding | ||
290 | Source of the work are being offered to the general public at no | ||
291 | charge under subsection 6d. | ||
292 | |||
293 | A separable portion of the object code, whose source code is excluded | ||
294 | from the Corresponding Source as a System Library, need not be | ||
295 | included in conveying the object code work. | ||
296 | |||
297 | A "User Product" is either (1) a "consumer product", which means any | ||
298 | tangible personal property which is normally used for personal, family, | ||
299 | or household purposes, or (2) anything designed or sold for incorporation | ||
300 | into a dwelling. In determining whether a product is a consumer product, | ||
301 | doubtful cases shall be resolved in favor of coverage. For a particular | ||
302 | product received by a particular user, "normally used" refers to a | ||
303 | typical or common use of that class of product, regardless of the status | ||
304 | of the particular user or of the way in which the particular user | ||
305 | actually uses, or expects or is expected to use, the product. A product | ||
306 | is a consumer product regardless of whether the product has substantial | ||
307 | commercial, industrial or non-consumer uses, unless such uses represent | ||
308 | the only significant mode of use of the product. | ||
309 | |||
310 | "Installation Information" for a User Product means any methods, | ||
311 | procedures, authorization keys, or other information required to install | ||
312 | and execute modified versions of a covered work in that User Product from | ||
313 | a modified version of its Corresponding Source. The information must | ||
314 | suffice to ensure that the continued functioning of the modified object | ||
315 | code is in no case prevented or interfered with solely because | ||
316 | modification has been made. | ||
317 | |||
318 | If you convey an object code work under this section in, or with, or | ||
319 | specifically for use in, a User Product, and the conveying occurs as | ||
320 | part of a transaction in which the right of possession and use of the | ||
321 | User Product is transferred to the recipient in perpetuity or for a | ||
322 | fixed term (regardless of how the transaction is characterized), the | ||
323 | Corresponding Source conveyed under this section must be accompanied | ||
324 | by the Installation Information. But this requirement does not apply | ||
325 | if neither you nor any third party retains the ability to install | ||
326 | modified object code on the User Product (for example, the work has | ||
327 | been installed in ROM). | ||
328 | |||
329 | The requirement to provide Installation Information does not include a | ||
330 | requirement to continue to provide support service, warranty, or updates | ||
331 | for a work that has been modified or installed by the recipient, or for | ||
332 | the User Product in which it has been modified or installed. Access to a | ||
333 | network may be denied when the modification itself materially and | ||
334 | adversely affects the operation of the network or violates the rules and | ||
335 | protocols for communication across the network. | ||
336 | |||
337 | Corresponding Source conveyed, and Installation Information provided, | ||
338 | in accord with this section must be in a format that is publicly | ||
339 | documented (and with an implementation available to the public in | ||
340 | source code form), and must require no special password or key for | ||
341 | unpacking, reading or copying. | ||
342 | |||
343 | 7. Additional Terms. | ||
344 | |||
345 | "Additional permissions" are terms that supplement the terms of this | ||
346 | License by making exceptions from one or more of its conditions. | ||
347 | Additional permissions that are applicable to the entire Program shall | ||
348 | be treated as though they were included in this License, to the extent | ||
349 | that they are valid under applicable law. If additional permissions | ||
350 | apply only to part of the Program, that part may be used separately | ||
351 | under those permissions, but the entire Program remains governed by | ||
352 | this License without regard to the additional permissions. | ||
353 | |||
354 | When you convey a copy of a covered work, you may at your option | ||
355 | remove any additional permissions from that copy, or from any part of | ||
356 | it. (Additional permissions may be written to require their own | ||
357 | removal in certain cases when you modify the work.) You may place | ||
358 | additional permissions on material, added by you to a covered work, | ||
359 | for which you have or can give appropriate copyright permission. | ||
360 | |||
361 | Notwithstanding any other provision of this License, for material you | ||
362 | add to a covered work, you may (if authorized by the copyright holders of | ||
363 | that material) supplement the terms of this License with terms: | ||
364 | |||
365 | a) Disclaiming warranty or limiting liability differently from the | ||
366 | terms of sections 15 and 16 of this License; or | ||
367 | |||
368 | b) Requiring preservation of specified reasonable legal notices or | ||
369 | author attributions in that material or in the Appropriate Legal | ||
370 | Notices displayed by works containing it; or | ||
371 | |||
372 | c) Prohibiting misrepresentation of the origin of that material, or | ||
373 | requiring that modified versions of such material be marked in | ||
374 | reasonable ways as different from the original version; or | ||
375 | |||
376 | d) Limiting the use for publicity purposes of names of licensors or | ||
377 | authors of the material; or | ||
378 | |||
379 | e) Declining to grant rights under trademark law for use of some | ||
380 | trade names, trademarks, or service marks; or | ||
381 | |||
382 | f) Requiring indemnification of licensors and authors of that | ||
383 | material by anyone who conveys the material (or modified versions of | ||
384 | it) with contractual assumptions of liability to the recipient, for | ||
385 | any liability that these contractual assumptions directly impose on | ||
386 | those licensors and authors. | ||
387 | |||
388 | All other non-permissive additional terms are considered "further | ||
389 | restrictions" within the meaning of section 10. If the Program as you | ||
390 | received it, or any part of it, contains a notice stating that it is | ||
391 | governed by this License along with a term that is a further | ||
392 | restriction, you may remove that term. If a license document contains | ||
393 | a further restriction but permits relicensing or conveying under this | ||
394 | License, you may add to a covered work material governed by the terms | ||
395 | of that license document, provided that the further restriction does | ||
396 | not survive such relicensing or conveying. | ||
397 | |||
398 | If you add terms to a covered work in accord with this section, you | ||
399 | must place, in the relevant source files, a statement of the | ||
400 | additional terms that apply to those files, or a notice indicating | ||
401 | where to find the applicable terms. | ||
402 | |||
403 | Additional terms, permissive or non-permissive, may be stated in the | ||
404 | form of a separately written license, or stated as exceptions; | ||
405 | the above requirements apply either way. | ||
406 | |||
407 | 8. Termination. | ||
408 | |||
409 | You may not propagate or modify a covered work except as expressly | ||
410 | provided under this License. Any attempt otherwise to propagate or | ||
411 | modify it is void, and will automatically terminate your rights under | ||
412 | this License (including any patent licenses granted under the third | ||
413 | paragraph of section 11). | ||
414 | |||
415 | However, if you cease all violation of this License, then your | ||
416 | license from a particular copyright holder is reinstated (a) | ||
417 | provisionally, unless and until the copyright holder explicitly and | ||
418 | finally terminates your license, and (b) permanently, if the copyright | ||
419 | holder fails to notify you of the violation by some reasonable means | ||
420 | prior to 60 days after the cessation. | ||
421 | |||
422 | Moreover, your license from a particular copyright holder is | ||
423 | reinstated permanently if the copyright holder notifies you of the | ||
424 | violation by some reasonable means, this is the first time you have | ||
425 | received notice of violation of this License (for any work) from that | ||
426 | copyright holder, and you cure the violation prior to 30 days after | ||
427 | your receipt of the notice. | ||
428 | |||
429 | Termination of your rights under this section does not terminate the | ||
430 | licenses of parties who have received copies or rights from you under | ||
431 | this License. If your rights have been terminated and not permanently | ||
432 | reinstated, you do not qualify to receive new licenses for the same | ||
433 | material under section 10. | ||
434 | |||
435 | 9. Acceptance Not Required for Having Copies. | ||
436 | |||
437 | You are not required to accept this License in order to receive or | ||
438 | run a copy of the Program. Ancillary propagation of a covered work | ||
439 | occurring solely as a consequence of using peer-to-peer transmission | ||
440 | to receive a copy likewise does not require acceptance. However, | ||
441 | nothing other than this License grants you permission to propagate or | ||
442 | modify any covered work. These actions infringe copyright if you do | ||
443 | not accept this License. Therefore, by modifying or propagating a | ||
444 | covered work, you indicate your acceptance of this License to do so. | ||
445 | |||
446 | 10. Automatic Licensing of Downstream Recipients. | ||
447 | |||
448 | Each time you convey a covered work, the recipient automatically | ||
449 | receives a license from the original licensors, to run, modify and | ||
450 | propagate that work, subject to this License. You are not responsible | ||
451 | for enforcing compliance by third parties with this License. | ||
452 | |||
453 | An "entity transaction" is a transaction transferring control of an | ||
454 | organization, or substantially all assets of one, or subdividing an | ||
455 | organization, or merging organizations. If propagation of a covered | ||
456 | work results from an entity transaction, each party to that | ||
457 | transaction who receives a copy of the work also receives whatever | ||
458 | licenses to the work the party's predecessor in interest had or could | ||
459 | give under the previous paragraph, plus a right to possession of the | ||
460 | Corresponding Source of the work from the predecessor in interest, if | ||
461 | the predecessor has it or can get it with reasonable efforts. | ||
462 | |||
463 | You may not impose any further restrictions on the exercise of the | ||
464 | rights granted or affirmed under this License. For example, you may | ||
465 | not impose a license fee, royalty, or other charge for exercise of | ||
466 | rights granted under this License, and you may not initiate litigation | ||
467 | (including a cross-claim or counterclaim in a lawsuit) alleging that | ||
468 | any patent claim is infringed by making, using, selling, offering for | ||
469 | sale, or importing the Program or any portion of it. | ||
470 | |||
471 | 11. Patents. | ||
472 | |||
473 | A "contributor" is a copyright holder who authorizes use under this | ||
474 | License of the Program or a work on which the Program is based. The | ||
475 | work thus licensed is called the contributor's "contributor version". | ||
476 | |||
477 | A contributor's "essential patent claims" are all patent claims | ||
478 | owned or controlled by the contributor, whether already acquired or | ||
479 | hereafter acquired, that would be infringed by some manner, permitted | ||
480 | by this License, of making, using, or selling its contributor version, | ||
481 | but do not include claims that would be infringed only as a | ||
482 | consequence of further modification of the contributor version. For | ||
483 | purposes of this definition, "control" includes the right to grant | ||
484 | patent sublicenses in a manner consistent with the requirements of | ||
485 | this License. | ||
486 | |||
487 | Each contributor grants you a non-exclusive, worldwide, royalty-free | ||
488 | patent license under the contributor's essential patent claims, to | ||
489 | make, use, sell, offer for sale, import and otherwise run, modify and | ||
490 | propagate the contents of its contributor version. | ||
491 | |||
492 | In the following three paragraphs, a "patent license" is any express | ||
493 | agreement or commitment, however denominated, not to enforce a patent | ||
494 | (such as an express permission to practice a patent or covenant not to | ||
495 | sue for patent infringement). To "grant" such a patent license to a | ||
496 | party means to make such an agreement or commitment not to enforce a | ||
497 | patent against the party. | ||
498 | |||
499 | If you convey a covered work, knowingly relying on a patent license, | ||
500 | and the Corresponding Source of the work is not available for anyone | ||
501 | to copy, free of charge and under the terms of this License, through a | ||
502 | publicly available network server or other readily accessible means, | ||
503 | then you must either (1) cause the Corresponding Source to be so | ||
504 | available, or (2) arrange to deprive yourself of the benefit of the | ||
505 | patent license for this particular work, or (3) arrange, in a manner | ||
506 | consistent with the requirements of this License, to extend the patent | ||
507 | license to downstream recipients. "Knowingly relying" means you have | ||
508 | actual knowledge that, but for the patent license, your conveying the | ||
509 | covered work in a country, or your recipient's use of the covered work | ||
510 | in a country, would infringe one or more identifiable patents in that | ||
511 | country that you have reason to believe are valid. | ||
512 | |||
513 | If, pursuant to or in connection with a single transaction or | ||
514 | arrangement, you convey, or propagate by procuring conveyance of, a | ||
515 | covered work, and grant a patent license to some of the parties | ||
516 | receiving the covered work authorizing them to use, propagate, modify | ||
517 | or convey a specific copy of the covered work, then the patent license | ||
518 | you grant is automatically extended to all recipients of the covered | ||
519 | work and works based on it. | ||
520 | |||
521 | A patent license is "discriminatory" if it does not include within | ||
522 | the scope of its coverage, prohibits the exercise of, or is | ||
523 | conditioned on the non-exercise of one or more of the rights that are | ||
524 | specifically granted under this License. You may not convey a covered | ||
525 | work if you are a party to an arrangement with a third party that is | ||
526 | in the business of distributing software, under which you make payment | ||
527 | to the third party based on the extent of your activity of conveying | ||
528 | the work, and under which the third party grants, to any of the | ||
529 | parties who would receive the covered work from you, a discriminatory | ||
530 | patent license (a) in connection with copies of the covered work | ||
531 | conveyed by you (or copies made from those copies), or (b) primarily | ||
532 | for and in connection with specific products or compilations that | ||
533 | contain the covered work, unless you entered into that arrangement, | ||
534 | or that patent license was granted, prior to 28 March 2007. | ||
535 | |||
536 | Nothing in this License shall be construed as excluding or limiting | ||
537 | any implied license or other defenses to infringement that may | ||
538 | otherwise be available to you under applicable patent law. | ||
539 | |||
540 | 12. No Surrender of Others' Freedom. | ||
541 | |||
542 | If conditions are imposed on you (whether by court order, agreement or | ||
543 | otherwise) that contradict the conditions of this License, they do not | ||
544 | excuse you from the conditions of this License. If you cannot convey a | ||
545 | covered work so as to satisfy simultaneously your obligations under this | ||
546 | License and any other pertinent obligations, then as a consequence you may | ||
547 | not convey it at all. For example, if you agree to terms that obligate you | ||
548 | to collect a royalty for further conveying from those to whom you convey | ||
549 | the Program, the only way you could satisfy both those terms and this | ||
550 | License would be to refrain entirely from conveying the Program. | ||
551 | |||
552 | 13. Use with the GNU Affero General Public License. | ||
553 | |||
554 | Notwithstanding any other provision of this License, you have | ||
555 | permission to link or combine any covered work with a work licensed | ||
556 | under version 3 of the GNU Affero General Public License into a single | ||
557 | combined work, and to convey the resulting work. The terms of this | ||
558 | License will continue to apply to the part which is the covered work, | ||
559 | but the special requirements of the GNU Affero General Public License, | ||
560 | section 13, concerning interaction through a network will apply to the | ||
561 | combination as such. | ||
562 | |||
563 | 14. Revised Versions of this License. | ||
564 | |||
565 | The Free Software Foundation may publish revised and/or new versions of | ||
566 | the GNU General Public License from time to time. Such new versions will | ||
567 | be similar in spirit to the present version, but may differ in detail to | ||
568 | address new problems or concerns. | ||
569 | |||
570 | Each version is given a distinguishing version number. If the | ||
571 | Program specifies that a certain numbered version of the GNU General | ||
572 | Public License "or any later version" applies to it, you have the | ||
573 | option of following the terms and conditions either of that numbered | ||
574 | version or of any later version published by the Free Software | ||
575 | Foundation. If the Program does not specify a version number of the | ||
576 | GNU General Public License, you may choose any version ever published | ||
577 | by the Free Software Foundation. | ||
578 | |||
579 | If the Program specifies that a proxy can decide which future | ||
580 | versions of the GNU General Public License can be used, that proxy's | ||
581 | public statement of acceptance of a version permanently authorizes you | ||
582 | to choose that version for the Program. | ||
583 | |||
584 | Later license versions may give you additional or different | ||
585 | permissions. However, no additional obligations are imposed on any | ||
586 | author or copyright holder as a result of your choosing to follow a | ||
587 | later version. | ||
588 | |||
589 | 15. Disclaimer of Warranty. | ||
590 | |||
591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY | ||
592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT | ||
593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY | ||
594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, | ||
595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||
596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM | ||
597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF | ||
598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. | ||
599 | |||
600 | 16. Limitation of Liability. | ||
601 | |||
602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING | ||
603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS | ||
604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY | ||
605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE | ||
606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF | ||
607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD | ||
608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), | ||
609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF | ||
610 | SUCH DAMAGES. | ||
611 | |||
612 | 17. Interpretation of Sections 15 and 16. | ||
613 | |||
614 | If the disclaimer of warranty and limitation of liability provided | ||
615 | above cannot be given local legal effect according to their terms, | ||
616 | reviewing courts shall apply local law that most closely approximates | ||
617 | an absolute waiver of all civil liability in connection with the | ||
618 | Program, unless a warranty or assumption of liability accompanies a | ||
619 | copy of the Program in return for a fee. | ||
620 | |||
621 | END OF TERMS AND CONDITIONS | ||
622 | |||
623 | How to Apply These Terms to Your New Programs | ||
624 | |||
625 | If you develop a new program, and you want it to be of the greatest | ||
626 | possible use to the public, the best way to achieve this is to make it | ||
627 | free software which everyone can redistribute and change under these terms. | ||
628 | |||
629 | To do so, attach the following notices to the program. It is safest | ||
630 | to attach them to the start of each source file to most effectively | ||
631 | state the exclusion of warranty; and each file should have at least | ||
632 | the "copyright" line and a pointer to where the full notice is found. | ||
633 | |||
634 | <one line to give the program's name and a brief idea of what it does.> | ||
635 | Copyright (C) <year> <name of author> | ||
636 | |||
637 | This program is free software: you can redistribute it and/or modify | ||
638 | it under the terms of the GNU General Public License as published by | ||
639 | the Free Software Foundation, either version 3 of the License, or | ||
640 | (at your option) any later version. | ||
641 | |||
642 | This program is distributed in the hope that it will be useful, | ||
643 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
645 | GNU General Public License for more details. | ||
646 | |||
647 | You should have received a copy of the GNU General Public License | ||
648 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
649 | |||
650 | Also add information on how to contact you by electronic and paper mail. | ||
651 | |||
652 | If the program does terminal interaction, make it output a short | ||
653 | notice like this when it starts in an interactive mode: | ||
654 | |||
655 | <program> Copyright (C) <year> <name of author> | ||
656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. | ||
657 | This is free software, and you are welcome to redistribute it | ||
658 | under certain conditions; type `show c' for details. | ||
659 | |||
660 | The hypothetical commands `show w' and `show c' should show the appropriate | ||
661 | parts of the General Public License. Of course, your program's commands | ||
662 | might be different; for a GUI interface, you would use an "about box". | ||
663 | |||
664 | You should also get your employer (if you work as a programmer) or school, | ||
665 | if any, to sign a "copyright disclaimer" for the program, if necessary. | ||
666 | For more information on this, and how to apply and follow the GNU GPL, see | ||
667 | <http://www.gnu.org/licenses/>. | ||
668 | |||
669 | The GNU General Public License does not permit incorporating your program | ||
670 | into proprietary programs. If your program is a subroutine library, you | ||
671 | may consider it more useful to permit linking proprietary applications with | ||
672 | the library. If this is what you want to do, use the GNU Lesser General | ||
673 | Public License instead of this License. But first, please read | ||
674 | <http://www.gnu.org/philosophy/why-not-lgpl.html>. | ||
diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..ef40ab6 --- /dev/null +++ b/Makefile.am | |||
@@ -0,0 +1,67 @@ | |||
1 | # GNUnet-Guile --- Guile bindings for GNUnet. | ||
2 | # Copyright © 2015 Ludovic Courtès <ludo@gnu.org> | ||
3 | # Copyright © 2017 ng0 <ng0@infotropique.org> | ||
4 | # Copyright © 2018 Amirouche Boubkki <amirouche@hypermove.net> | ||
5 | # | ||
6 | # This file is part of GNUnet-Guile. | ||
7 | # | ||
8 | # GNUnet-Guile is free software; you can redistribute it and/or modify it | ||
9 | # under the terms of the GNU General Public License as published by | ||
10 | # the Free Software Foundation; either version 3 of the License, or (at | ||
11 | # your option) any later version. | ||
12 | # | ||
13 | # GNUnet-Guile is distributed in the hope that it will be useful, but | ||
14 | # WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
16 | # GNU General Public License for more details. | ||
17 | # | ||
18 | # You should have received a copy of the GNU General Public License | ||
19 | # along with GNUnet-Guile. If not, see <http://www.gnu.org/licenses/>. | ||
20 | |||
21 | SUBDIRS = doc | ||
22 | docdir = $(datadir)/doc/gnunet-guile/ | ||
23 | |||
24 | MODULES = \ | ||
25 | gnunet.scm | ||
26 | |||
27 | GOBJECTS = $(MODULES:%.scm=%.go) gnunet/config.go | ||
28 | |||
29 | nobase_dist_guilemodule_DATA = $(MODULES) | ||
30 | nobase_nodist_guilemodule_DATA = $(GOBJECTS) | ||
31 | |||
32 | AM_V_GUILEC = $(AM_V_GUILEC_$(V)) | ||
33 | AM_V_GUILEC_ = $(AM_V_GUILEC_$(AM_DEFAULT_VERBOSITY)) | ||
34 | AM_V_GUILEC_0 = @echo " GUILEC" $@; | ||
35 | |||
36 | # Unset 'GUILE_LOAD_COMPILED_PATH' altogether while compiling. Otherwise, if | ||
37 | # $GUILE_LOAD_COMPILED_PATH contains $(moduledir), we may find .go files in | ||
38 | # there that are newer than the local .scm files (for instance because the | ||
39 | # user ran 'make install' recently). When that happens, we end up loading | ||
40 | # those previously-installed .go files, which may be stale, thereby breaking | ||
41 | # the whole thing. | ||
42 | # | ||
43 | # XXX: Use the C locale for when Guile lacks | ||
44 | # <http://git.sv.gnu.org/cgit/guile.git/commit/?h=stable-2.0&id=e2c6bf3866d1186c60bacfbd4fe5037087ee5e3f>. | ||
45 | .scm.go: | ||
46 | $(AM_V_GUILEC)$(MKDIR_P) `dirname "$@"` ; \ | ||
47 | unset GUILE_LOAD_COMPILED_PATH ; \ | ||
48 | LC_ALL=C \ | ||
49 | $(top_builddir)/pre-inst-env \ | ||
50 | $(GUILD) compile -L "$(top_builddir)" -L "$(top_srcdir)" \ | ||
51 | -Wformat -Wunbound-variable -Warity-mismatch \ | ||
52 | --target="$(host)" \ | ||
53 | -o "$@" "$<" | ||
54 | |||
55 | SUFFIXES = .go | ||
56 | |||
57 | # Make sure source files are installed first, so that the mtime of | ||
58 | # installed compiled files is greater than that of installed source | ||
59 | # files. See | ||
60 | # <http://lists.gnu.org/archive/html/guile-devel/2010-07/msg00125.html> | ||
61 | # for details. | ||
62 | guix_install_go_files = install-nobase_nodist_guilemoduleDATA | ||
63 | $(guix_install_go_files): install-nobase_dist_guilemoduleDATA | ||
64 | |||
65 | SCM_LOG_COMPILER = $(top_builddir)/pre-inst-env $(GUILE) | ||
66 | |||
67 | CLEANFILES = $(GOBJECTS) | ||
@@ -0,0 +1,26 @@ | |||
1 | Guile bindings for GNUnet | ||
2 | ————————————————————————— | ||
3 | |||
4 | Work in progress! | ||
5 | |||
6 | To try the stub gnunet-search clone, you must have a working GNUnet | ||
7 | configuration. Edit the file `examples/search.scm` and modify the line | ||
8 | |||
9 | (define config-file "~/.gnunet/gnunet.conf") | ||
10 | |||
11 | to match your current GNUnet configuration file. | ||
12 | |||
13 | Then, go inside the bindings directory and run `search.scm` as a | ||
14 | script. For instance, to run a search on the keywords "foo" and "bar": | ||
15 | |||
16 | $ cd guix/gnunet/ | ||
17 | $ examples/search.scm "foo" "bar" | ||
18 | |||
19 | This will start a 5 seconds search on the given keywords. Here’s the | ||
20 | output when exactly one find matches the keyword “foo”: | ||
21 | |||
22 | gnunet-download -o "foo.txt" gnunet://fs/chk/M976V69FDSQDH74AORDDLB… | ||
23 | |||
24 | You can also check your bindings with the command: | ||
25 | |||
26 | $ ./run-tests.scm | ||
diff --git a/bootstrap b/bootstrap new file mode 100755 index 0000000..5a29d5f --- /dev/null +++ b/bootstrap | |||
@@ -0,0 +1,2 @@ | |||
1 | #!/bin/sh | ||
2 | autoreconf -vif | ||
diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..d8aab24 --- /dev/null +++ b/configure.ac | |||
@@ -0,0 +1,56 @@ | |||
1 | # -*- Autoconf -*- | ||
2 | # Process this file with autoconf to produce a configure script. | ||
3 | |||
4 | AC_PREREQ(2.69) | ||
5 | AC_INIT([GNUnet-Guile], [0.0.1], [bug-gnunet@gnu.org], [gnunet-guile], | ||
6 | [https://gnunet.org]) | ||
7 | AC_CONFIG_AUX_DIR([build-aux]) | ||
8 | |||
9 | AM_INIT_AUTOMAKE([1.12 foreign silent-rules subdir-objects \ | ||
10 | color-tests parallel-tests -Woverride -Wno-portability]) | ||
11 | |||
12 | # Enable silent rules by default. | ||
13 | AM_SILENT_RULES([yes]) | ||
14 | |||
15 | AC_CONFIG_SRCDIR([gnunet]) | ||
16 | AC_CONFIG_MACRO_DIR([m4]) | ||
17 | |||
18 | AC_CANONICAL_HOST | ||
19 | |||
20 | dnl We require pkg.m4 (from pkg-config) and guile.m4 (from Guile.) | ||
21 | dnl Make sure they are available. | ||
22 | m4_pattern_forbid([PKG_CHECK_MODULES]) | ||
23 | m4_pattern_forbid([GUILE_MODULE_AVAILABLE]) | ||
24 | |||
25 | PKG_CHECK_MODULES([GUILE], [guile-2.2 >= 2.2.3]) | ||
26 | AC_PATH_PROG([GUILE], [guile]) | ||
27 | AC_PATH_PROG([GUILD], [guild]) | ||
28 | if test "x$GUILD" = "x"; then | ||
29 | AC_MSG_ERROR(['guild' binary not found; please check your Guile 2.x installation.]) | ||
30 | fi | ||
31 | |||
32 | guilemoduledir="${datarootdir}/guile/site/2.0" | ||
33 | AC_SUBST([guilemoduledir]) | ||
34 | |||
35 | AC_CACHE_SAVE | ||
36 | |||
37 | PKG_CHECK_MODULES([GNUNETUTIL], [gnunetutil]) | ||
38 | PKG_CHECK_MODULES([GNUNETFS], [gnunetfs]) | ||
39 | PKG_CHECK_MODULES([GNUNETIDENTITY], [gnunetidentity]) | ||
40 | |||
41 | GNUNETUTIL_LIBDIR="`$PKG_CONFIG --variable=libdir gnunetutil`" | ||
42 | GNUNETFS_LIBDIR="`$PKG_CONFIG --variable=libdir gnunetfs`" | ||
43 | GNUNETIDENTITY_LIBDIR="`$PKG_CONFIG --variable=libdir gnunetidentity`" | ||
44 | |||
45 | AC_SUBST([GNUNETUTIL_LIBDIR]) | ||
46 | AC_SUBST([GNUNETFS_LIBDIR]) | ||
47 | AC_SUBST([GNUNETIDENTITY_LIBDIR]) | ||
48 | |||
49 | AC_CONFIG_FILES([ | ||
50 | Makefile | ||
51 | gnunet/config.scm | ||
52 | doc/Makefile | ||
53 | ]) | ||
54 | AC_CONFIG_FILES([pre-inst-env], [chmod +x pre-inst-env]) | ||
55 | |||
56 | AC_OUTPUT | ||
diff --git a/doc/Makefile.am b/doc/Makefile.am new file mode 100644 index 0000000..394b773 --- /dev/null +++ b/doc/Makefile.am | |||
@@ -0,0 +1,38 @@ | |||
1 | # This Makefile.am is in the public domain | ||
2 | docdir = $(datadir)/doc/gnunet-guile/ | ||
3 | |||
4 | infoimagedir = $(infodir)/images | ||
5 | |||
6 | AM_MAKEINFOHTMLFLAGS = --no-split --css-ref=docstyle.css | ||
7 | |||
8 | info_TEXINFOS = \ | ||
9 | gnunet-guile.texi | ||
10 | |||
11 | gnunet_TEXINFOS = \ | ||
12 | fdl-1.3.texi \ | ||
13 | gpl-3.0.texi | ||
14 | |||
15 | EXTRA_DIST = \ | ||
16 | $(gnunet_TEXINFOS) \ | ||
17 | htmlxref.cnf \ | ||
18 | run-gendocs.sh \ | ||
19 | docstyle.css | ||
20 | |||
21 | DISTCLEANFILES = \ | ||
22 | fdl-1.3.cps \ | ||
23 | gpl-3.0.cps | ||
24 | |||
25 | doc-gendoc-install: | ||
26 | @mkdir -p $(DESTDIR)/$(docdir) | ||
27 | @cp -r manual $(DESTDIR)/$(docdir) | ||
28 | |||
29 | # TODO: Add more to clean. | ||
30 | clean: | ||
31 | @rm gnunet-guile.pdf | ||
32 | @rm gnunet-guile.html | ||
33 | @rm gnunet-guile.info | ||
34 | @rm gnunet-guile.info-1 | ||
35 | @rm gnunet-guile.info-2 | ||
36 | @rm gnunet-guile.info-3 | ||
37 | @rm -r gnunet-guile.t2p | ||
38 | @rm -r manual | ||
diff --git a/doc/docstyle.css b/doc/docstyle.css new file mode 100644 index 0000000..8719248 --- /dev/null +++ b/doc/docstyle.css | |||
@@ -0,0 +1,76 @@ | |||
1 | html, body { | ||
2 | font-size: 1em; | ||
3 | text-align: left; | ||
4 | text-decoration: none; | ||
5 | } | ||
6 | html { background-color: #e7e7e7; } | ||
7 | |||
8 | body { | ||
9 | max-width: 74.92em; | ||
10 | margin: 0 auto; | ||
11 | padding: .5em 1em 1em 1em; | ||
12 | background-color: white; | ||
13 | border: .1em solid #c0c0c0; | ||
14 | } | ||
15 | |||
16 | h1, h2, h3, h4 { color: #333; } | ||
17 | h5, h6, dt { color: #222; } | ||
18 | |||
19 | |||
20 | a h3 { | ||
21 | color: #005090; | ||
22 | } | ||
23 | |||
24 | a[href] { color: #005090; } | ||
25 | a[href]:visited { color: #100070; } | ||
26 | a[href]:active, a[href]:hover { | ||
27 | color: #100070; | ||
28 | text-decoration: none; | ||
29 | } | ||
30 | |||
31 | .linkrow { | ||
32 | margin: 3em 0; | ||
33 | } | ||
34 | |||
35 | .linkrow { | ||
36 | text-align: center; | ||
37 | } | ||
38 | |||
39 | div.example { padding: .8em 1.2em .4em; } | ||
40 | pre.example { padding: .8em 1.2em; } | ||
41 | div.example, pre.example { | ||
42 | margin: 1em 0 1em 3% ; | ||
43 | -webkit-border-radius: .3em; | ||
44 | -moz-border-radius: .3em; | ||
45 | border-radius: .3em; | ||
46 | border: 1px solid #d4cbb6; | ||
47 | background-color: #f2efe4; | ||
48 | } | ||
49 | div.example > pre.example { | ||
50 | padding: 0 0 .4em; | ||
51 | margin: 0; | ||
52 | border: none; | ||
53 | } | ||
54 | |||
55 | |||
56 | /* This makes the very long tables of contents in Gnulib and other | ||
57 | manuals easier to read. */ | ||
58 | .contents ul, .shortcontents ul { font-weight: bold; } | ||
59 | .contents ul ul, .shortcontents ul ul { font-weight: normal; } | ||
60 | .contents ul { list-style: none; } | ||
61 | |||
62 | /* For colored navigation bars (Emacs manual): make the bar extend | ||
63 | across the whole width of the page and give it a decent height. */ | ||
64 | .header, .node { margin: 0 -1em; padding: 0 1em; } | ||
65 | .header p, .node p { line-height: 2em; } | ||
66 | |||
67 | /* For navigation links */ | ||
68 | .node a, .header a { display: inline-block; line-height: 2em; } | ||
69 | .node a:hover, .header a:hover { background: #f2efe4; } | ||
70 | |||
71 | table.cartouche { | ||
72 | border-collapse: collapse; | ||
73 | border-color: darkred; | ||
74 | border-style: solid; | ||
75 | border-width: 3px; | ||
76 | } | ||
diff --git a/doc/fdl-1.3.texi b/doc/fdl-1.3.texi new file mode 100644 index 0000000..cb71f05 --- /dev/null +++ b/doc/fdl-1.3.texi | |||
@@ -0,0 +1,505 @@ | |||
1 | @c The GNU Free Documentation License. | ||
2 | @center Version 1.3, 3 November 2008 | ||
3 | |||
4 | @c This file is intended to be included within another document, | ||
5 | @c hence no sectioning command or @node. | ||
6 | |||
7 | @display | ||
8 | Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. | ||
9 | @uref{http://fsf.org/} | ||
10 | |||
11 | Everyone is permitted to copy and distribute verbatim copies | ||
12 | of this license document, but changing it is not allowed. | ||
13 | @end display | ||
14 | |||
15 | @enumerate 0 | ||
16 | @item | ||
17 | PREAMBLE | ||
18 | |||
19 | The purpose of this License is to make a manual, textbook, or other | ||
20 | functional and useful document @dfn{free} in the sense of freedom: to | ||
21 | assure everyone the effective freedom to copy and redistribute it, | ||
22 | with or without modifying it, either commercially or noncommercially. | ||
23 | Secondarily, this License preserves for the author and publisher a way | ||
24 | to get credit for their work, while not being considered responsible | ||
25 | for modifications made by others. | ||
26 | |||
27 | This License is a kind of ``copyleft'', which means that derivative | ||
28 | works of the document must themselves be free in the same sense. It | ||
29 | complements the GNU General Public License, which is a copyleft | ||
30 | license designed for free software. | ||
31 | |||
32 | We have designed this License in order to use it for manuals for free | ||
33 | software, because free software needs free documentation: a free | ||
34 | program should come with manuals providing the same freedoms that the | ||
35 | software does. But this License is not limited to software manuals; | ||
36 | it can be used for any textual work, regardless of subject matter or | ||
37 | whether it is published as a printed book. We recommend this License | ||
38 | principally for works whose purpose is instruction or reference. | ||
39 | |||
40 | @item | ||
41 | APPLICABILITY AND DEFINITIONS | ||
42 | |||
43 | This License applies to any manual or other work, in any medium, that | ||
44 | contains a notice placed by the copyright holder saying it can be | ||
45 | distributed under the terms of this License. Such a notice grants a | ||
46 | world-wide, royalty-free license, unlimited in duration, to use that | ||
47 | work under the conditions stated herein. The ``Document'', below, | ||
48 | refers to any such manual or work. Any member of the public is a | ||
49 | licensee, and is addressed as ``you''. You accept the license if you | ||
50 | copy, modify or distribute the work in a way requiring permission | ||
51 | under copyright law. | ||
52 | |||
53 | A ``Modified Version'' of the Document means any work containing the | ||
54 | Document or a portion of it, either copied verbatim, or with | ||
55 | modifications and/or translated into another language. | ||
56 | |||
57 | A ``Secondary Section'' is a named appendix or a front-matter section | ||
58 | of the Document that deals exclusively with the relationship of the | ||
59 | publishers or authors of the Document to the Document's overall | ||
60 | subject (or to related matters) and contains nothing that could fall | ||
61 | directly within that overall subject. (Thus, if the Document is in | ||
62 | part a textbook of mathematics, a Secondary Section may not explain | ||
63 | any mathematics.) The relationship could be a matter of historical | ||
64 | connection with the subject or with related matters, or of legal, | ||
65 | commercial, philosophical, ethical or political position regarding | ||
66 | them. | ||
67 | |||
68 | The ``Invariant Sections'' are certain Secondary Sections whose titles | ||
69 | are designated, as being those of Invariant Sections, in the notice | ||
70 | that says that the Document is released under this License. If a | ||
71 | section does not fit the above definition of Secondary then it is not | ||
72 | allowed to be designated as Invariant. The Document may contain zero | ||
73 | Invariant Sections. If the Document does not identify any Invariant | ||
74 | Sections then there are none. | ||
75 | |||
76 | The ``Cover Texts'' are certain short passages of text that are listed, | ||
77 | as Front-Cover Texts or Back-Cover Texts, in the notice that says that | ||
78 | the Document is released under this License. A Front-Cover Text may | ||
79 | be at most 5 words, and a Back-Cover Text may be at most 25 words. | ||
80 | |||
81 | A ``Transparent'' copy of the Document means a machine-readable copy, | ||
82 | represented in a format whose specification is available to the | ||
83 | general public, that is suitable for revising the document | ||
84 | straightforwardly with generic text editors or (for images composed of | ||
85 | pixels) generic paint programs or (for drawings) some widely available | ||
86 | drawing editor, and that is suitable for input to text formatters or | ||
87 | for automatic translation to a variety of formats suitable for input | ||
88 | to text formatters. A copy made in an otherwise Transparent file | ||
89 | format whose markup, or absence of markup, has been arranged to thwart | ||
90 | or discourage subsequent modification by readers is not Transparent. | ||
91 | An image format is not Transparent if used for any substantial amount | ||
92 | of text. A copy that is not ``Transparent'' is called ``Opaque''. | ||
93 | |||
94 | Examples of suitable formats for Transparent copies include plain | ||
95 | ASCII without markup, Texinfo input format, La@TeX{} input | ||
96 | format, SGML or XML using a publicly available | ||
97 | DTD, and standard-conforming simple HTML, | ||
98 | PostScript or PDF designed for human modification. Examples | ||
99 | of transparent image formats include PNG, XCF and | ||
100 | JPG. Opaque formats include proprietary formats that can be | ||
101 | read and edited only by proprietary word processors, SGML or | ||
102 | XML for which the DTD and/or processing tools are | ||
103 | not generally available, and the machine-generated HTML, | ||
104 | PostScript or PDF produced by some word processors for | ||
105 | output purposes only. | ||
106 | |||
107 | The ``Title Page'' means, for a printed book, the title page itself, | ||
108 | plus such following pages as are needed to hold, legibly, the material | ||
109 | this License requires to appear in the title page. For works in | ||
110 | formats which do not have any title page as such, ``Title Page'' means | ||
111 | the text near the most prominent appearance of the work's title, | ||
112 | preceding the beginning of the body of the text. | ||
113 | |||
114 | The ``publisher'' means any person or entity that distributes copies | ||
115 | of the Document to the public. | ||
116 | |||
117 | A section ``Entitled XYZ'' means a named subunit of the Document whose | ||
118 | title either is precisely XYZ or contains XYZ in parentheses following | ||
119 | text that translates XYZ in another language. (Here XYZ stands for a | ||
120 | specific section name mentioned below, such as ``Acknowledgements'', | ||
121 | ``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title'' | ||
122 | of such a section when you modify the Document means that it remains a | ||
123 | section ``Entitled XYZ'' according to this definition. | ||
124 | |||
125 | The Document may include Warranty Disclaimers next to the notice which | ||
126 | states that this License applies to the Document. These Warranty | ||
127 | Disclaimers are considered to be included by reference in this | ||
128 | License, but only as regards disclaiming warranties: any other | ||
129 | implication that these Warranty Disclaimers may have is void and has | ||
130 | no effect on the meaning of this License. | ||
131 | |||
132 | @item | ||
133 | VERBATIM COPYING | ||
134 | |||
135 | You may copy and distribute the Document in any medium, either | ||
136 | commercially or noncommercially, provided that this License, the | ||
137 | copyright notices, and the license notice saying this License applies | ||
138 | to the Document are reproduced in all copies, and that you add no other | ||
139 | conditions whatsoever to those of this License. You may not use | ||
140 | technical measures to obstruct or control the reading or further | ||
141 | copying of the copies you make or distribute. However, you may accept | ||
142 | compensation in exchange for copies. If you distribute a large enough | ||
143 | number of copies you must also follow the conditions in section 3. | ||
144 | |||
145 | You may also lend copies, under the same conditions stated above, and | ||
146 | you may publicly display copies. | ||
147 | |||
148 | @item | ||
149 | COPYING IN QUANTITY | ||
150 | |||
151 | If you publish printed copies (or copies in media that commonly have | ||
152 | printed covers) of the Document, numbering more than 100, and the | ||
153 | Document's license notice requires Cover Texts, you must enclose the | ||
154 | copies in covers that carry, clearly and legibly, all these Cover | ||
155 | Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on | ||
156 | the back cover. Both covers must also clearly and legibly identify | ||
157 | you as the publisher of these copies. The front cover must present | ||
158 | the full title with all words of the title equally prominent and | ||
159 | visible. You may add other material on the covers in addition. | ||
160 | Copying with changes limited to the covers, as long as they preserve | ||
161 | the title of the Document and satisfy these conditions, can be treated | ||
162 | as verbatim copying in other respects. | ||
163 | |||
164 | If the required texts for either cover are too voluminous to fit | ||
165 | legibly, you should put the first ones listed (as many as fit | ||
166 | reasonably) on the actual cover, and continue the rest onto adjacent | ||
167 | pages. | ||
168 | |||
169 | If you publish or distribute Opaque copies of the Document numbering | ||
170 | more than 100, you must either include a machine-readable Transparent | ||
171 | copy along with each Opaque copy, or state in or with each Opaque copy | ||
172 | a computer-network location from which the general network-using | ||
173 | public has access to download using public-standard network protocols | ||
174 | a complete Transparent copy of the Document, free of added material. | ||
175 | If you use the latter option, you must take reasonably prudent steps, | ||
176 | when you begin distribution of Opaque copies in quantity, to ensure | ||
177 | that this Transparent copy will remain thus accessible at the stated | ||
178 | location until at least one year after the last time you distribute an | ||
179 | Opaque copy (directly or through your agents or retailers) of that | ||
180 | edition to the public. | ||
181 | |||
182 | It is requested, but not required, that you contact the authors of the | ||
183 | Document well before redistributing any large number of copies, to give | ||
184 | them a chance to provide you with an updated version of the Document. | ||
185 | |||
186 | @item | ||
187 | MODIFICATIONS | ||
188 | |||
189 | You may copy and distribute a Modified Version of the Document under | ||
190 | the conditions of sections 2 and 3 above, provided that you release | ||
191 | the Modified Version under precisely this License, with the Modified | ||
192 | Version filling the role of the Document, thus licensing distribution | ||
193 | and modification of the Modified Version to whoever possesses a copy | ||
194 | of it. In addition, you must do these things in the Modified Version: | ||
195 | |||
196 | @enumerate A | ||
197 | @item | ||
198 | Use in the Title Page (and on the covers, if any) a title distinct | ||
199 | from that of the Document, and from those of previous versions | ||
200 | (which should, if there were any, be listed in the History section | ||
201 | of the Document). You may use the same title as a previous version | ||
202 | if the original publisher of that version gives permission. | ||
203 | |||
204 | @item | ||
205 | List on the Title Page, as authors, one or more persons or entities | ||
206 | responsible for authorship of the modifications in the Modified | ||
207 | Version, together with at least five of the principal authors of the | ||
208 | Document (all of its principal authors, if it has fewer than five), | ||
209 | unless they release you from this requirement. | ||
210 | |||
211 | @item | ||
212 | State on the Title page the name of the publisher of the | ||
213 | Modified Version, as the publisher. | ||
214 | |||
215 | @item | ||
216 | Preserve all the copyright notices of the Document. | ||
217 | |||
218 | @item | ||
219 | Add an appropriate copyright notice for your modifications | ||
220 | adjacent to the other copyright notices. | ||
221 | |||
222 | @item | ||
223 | Include, immediately after the copyright notices, a license notice | ||
224 | giving the public permission to use the Modified Version under the | ||
225 | terms of this License, in the form shown in the Addendum below. | ||
226 | |||
227 | @item | ||
228 | Preserve in that license notice the full lists of Invariant Sections | ||
229 | and required Cover Texts given in the Document's license notice. | ||
230 | |||
231 | @item | ||
232 | Include an unaltered copy of this License. | ||
233 | |||
234 | @item | ||
235 | Preserve the section Entitled ``History'', Preserve its Title, and add | ||
236 | to it an item stating at least the title, year, new authors, and | ||
237 | publisher of the Modified Version as given on the Title Page. If | ||
238 | there is no section Entitled ``History'' in the Document, create one | ||
239 | stating the title, year, authors, and publisher of the Document as | ||
240 | given on its Title Page, then add an item describing the Modified | ||
241 | Version as stated in the previous sentence. | ||
242 | |||
243 | @item | ||
244 | Preserve the network location, if any, given in the Document for | ||
245 | public access to a Transparent copy of the Document, and likewise | ||
246 | the network locations given in the Document for previous versions | ||
247 | it was based on. These may be placed in the ``History'' section. | ||
248 | You may omit a network location for a work that was published at | ||
249 | least four years before the Document itself, or if the original | ||
250 | publisher of the version it refers to gives permission. | ||
251 | |||
252 | @item | ||
253 | For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve | ||
254 | the Title of the section, and preserve in the section all the | ||
255 | substance and tone of each of the contributor acknowledgements and/or | ||
256 | dedications given therein. | ||
257 | |||
258 | @item | ||
259 | Preserve all the Invariant Sections of the Document, | ||
260 | unaltered in their text and in their titles. Section numbers | ||
261 | or the equivalent are not considered part of the section titles. | ||
262 | |||
263 | @item | ||
264 | Delete any section Entitled ``Endorsements''. Such a section | ||
265 | may not be included in the Modified Version. | ||
266 | |||
267 | @item | ||
268 | Do not retitle any existing section to be Entitled ``Endorsements'' or | ||
269 | to conflict in title with any Invariant Section. | ||
270 | |||
271 | @item | ||
272 | Preserve any Warranty Disclaimers. | ||
273 | @end enumerate | ||
274 | |||
275 | If the Modified Version includes new front-matter sections or | ||
276 | appendices that qualify as Secondary Sections and contain no material | ||
277 | copied from the Document, you may at your option designate some or all | ||
278 | of these sections as invariant. To do this, add their titles to the | ||
279 | list of Invariant Sections in the Modified Version's license notice. | ||
280 | These titles must be distinct from any other section titles. | ||
281 | |||
282 | You may add a section Entitled ``Endorsements'', provided it contains | ||
283 | nothing but endorsements of your Modified Version by various | ||
284 | parties---for example, statements of peer review or that the text has | ||
285 | been approved by an organization as the authoritative definition of a | ||
286 | standard. | ||
287 | |||
288 | You may add a passage of up to five words as a Front-Cover Text, and a | ||
289 | passage of up to 25 words as a Back-Cover Text, to the end of the list | ||
290 | of Cover Texts in the Modified Version. Only one passage of | ||
291 | Front-Cover Text and one of Back-Cover Text may be added by (or | ||
292 | through arrangements made by) any one entity. If the Document already | ||
293 | includes a cover text for the same cover, previously added by you or | ||
294 | by arrangement made by the same entity you are acting on behalf of, | ||
295 | you may not add another; but you may replace the old one, on explicit | ||
296 | permission from the previous publisher that added the old one. | ||
297 | |||
298 | The author(s) and publisher(s) of the Document do not by this License | ||
299 | give permission to use their names for publicity for or to assert or | ||
300 | imply endorsement of any Modified Version. | ||
301 | |||
302 | @item | ||
303 | COMBINING DOCUMENTS | ||
304 | |||
305 | You may combine the Document with other documents released under this | ||
306 | License, under the terms defined in section 4 above for modified | ||
307 | versions, provided that you include in the combination all of the | ||
308 | Invariant Sections of all of the original documents, unmodified, and | ||
309 | list them all as Invariant Sections of your combined work in its | ||
310 | license notice, and that you preserve all their Warranty Disclaimers. | ||
311 | |||
312 | The combined work need only contain one copy of this License, and | ||
313 | multiple identical Invariant Sections may be replaced with a single | ||
314 | copy. If there are multiple Invariant Sections with the same name but | ||
315 | different contents, make the title of each such section unique by | ||
316 | adding at the end of it, in parentheses, the name of the original | ||
317 | author or publisher of that section if known, or else a unique number. | ||
318 | Make the same adjustment to the section titles in the list of | ||
319 | Invariant Sections in the license notice of the combined work. | ||
320 | |||
321 | In the combination, you must combine any sections Entitled ``History'' | ||
322 | in the various original documents, forming one section Entitled | ||
323 | ``History''; likewise combine any sections Entitled ``Acknowledgements'', | ||
324 | and any sections Entitled ``Dedications''. You must delete all | ||
325 | sections Entitled ``Endorsements.'' | ||
326 | |||
327 | @item | ||
328 | COLLECTIONS OF DOCUMENTS | ||
329 | |||
330 | You may make a collection consisting of the Document and other documents | ||
331 | released under this License, and replace the individual copies of this | ||
332 | License in the various documents with a single copy that is included in | ||
333 | the collection, provided that you follow the rules of this License for | ||
334 | verbatim copying of each of the documents in all other respects. | ||
335 | |||
336 | You may extract a single document from such a collection, and distribute | ||
337 | it individually under this License, provided you insert a copy of this | ||
338 | License into the extracted document, and follow this License in all | ||
339 | other respects regarding verbatim copying of that document. | ||
340 | |||
341 | @item | ||
342 | AGGREGATION WITH INDEPENDENT WORKS | ||
343 | |||
344 | A compilation of the Document or its derivatives with other separate | ||
345 | and independent documents or works, in or on a volume of a storage or | ||
346 | distribution medium, is called an ``aggregate'' if the copyright | ||
347 | resulting from the compilation is not used to limit the legal rights | ||
348 | of the compilation's users beyond what the individual works permit. | ||
349 | When the Document is included in an aggregate, this License does not | ||
350 | apply to the other works in the aggregate which are not themselves | ||
351 | derivative works of the Document. | ||
352 | |||
353 | If the Cover Text requirement of section 3 is applicable to these | ||
354 | copies of the Document, then if the Document is less than one half of | ||
355 | the entire aggregate, the Document's Cover Texts may be placed on | ||
356 | covers that bracket the Document within the aggregate, or the | ||
357 | electronic equivalent of covers if the Document is in electronic form. | ||
358 | Otherwise they must appear on printed covers that bracket the whole | ||
359 | aggregate. | ||
360 | |||
361 | @item | ||
362 | TRANSLATION | ||
363 | |||
364 | Translation is considered a kind of modification, so you may | ||
365 | distribute translations of the Document under the terms of section 4. | ||
366 | Replacing Invariant Sections with translations requires special | ||
367 | permission from their copyright holders, but you may include | ||
368 | translations of some or all Invariant Sections in addition to the | ||
369 | original versions of these Invariant Sections. You may include a | ||
370 | translation of this License, and all the license notices in the | ||
371 | Document, and any Warranty Disclaimers, provided that you also include | ||
372 | the original English version of this License and the original versions | ||
373 | of those notices and disclaimers. In case of a disagreement between | ||
374 | the translation and the original version of this License or a notice | ||
375 | or disclaimer, the original version will prevail. | ||
376 | |||
377 | If a section in the Document is Entitled ``Acknowledgements'', | ||
378 | ``Dedications'', or ``History'', the requirement (section 4) to Preserve | ||
379 | its Title (section 1) will typically require changing the actual | ||
380 | title. | ||
381 | |||
382 | @item | ||
383 | TERMINATION | ||
384 | |||
385 | You may not copy, modify, sublicense, or distribute the Document | ||
386 | except as expressly provided under this License. Any attempt | ||
387 | otherwise to copy, modify, sublicense, or distribute it is void, and | ||
388 | will automatically terminate your rights under this License. | ||
389 | |||
390 | However, if you cease all violation of this License, then your license | ||
391 | from a particular copyright holder is reinstated (a) provisionally, | ||
392 | unless and until the copyright holder explicitly and finally | ||
393 | terminates your license, and (b) permanently, if the copyright holder | ||
394 | fails to notify you of the violation by some reasonable means prior to | ||
395 | 60 days after the cessation. | ||
396 | |||
397 | Moreover, your license from a particular copyright holder is | ||
398 | reinstated permanently if the copyright holder notifies you of the | ||
399 | violation by some reasonable means, this is the first time you have | ||
400 | received notice of violation of this License (for any work) from that | ||
401 | copyright holder, and you cure the violation prior to 30 days after | ||
402 | your receipt of the notice. | ||
403 | |||
404 | Termination of your rights under this section does not terminate the | ||
405 | licenses of parties who have received copies or rights from you under | ||
406 | this License. If your rights have been terminated and not permanently | ||
407 | reinstated, receipt of a copy of some or all of the same material does | ||
408 | not give you any rights to use it. | ||
409 | |||
410 | @item | ||
411 | FUTURE REVISIONS OF THIS LICENSE | ||
412 | |||
413 | The Free Software Foundation may publish new, revised versions | ||
414 | of the GNU Free Documentation License from time to time. Such new | ||
415 | versions will be similar in spirit to the present version, but may | ||
416 | differ in detail to address new problems or concerns. See | ||
417 | @uref{http://www.gnu.org/copyleft/}. | ||
418 | |||
419 | Each version of the License is given a distinguishing version number. | ||
420 | If the Document specifies that a particular numbered version of this | ||
421 | License ``or any later version'' applies to it, you have the option of | ||
422 | following the terms and conditions either of that specified version or | ||
423 | of any later version that has been published (not as a draft) by the | ||
424 | Free Software Foundation. If the Document does not specify a version | ||
425 | number of this License, you may choose any version ever published (not | ||
426 | as a draft) by the Free Software Foundation. If the Document | ||
427 | specifies that a proxy can decide which future versions of this | ||
428 | License can be used, that proxy's public statement of acceptance of a | ||
429 | version permanently authorizes you to choose that version for the | ||
430 | Document. | ||
431 | |||
432 | @item | ||
433 | RELICENSING | ||
434 | |||
435 | ``Massive Multiauthor Collaboration Site'' (or ``MMC Site'') means any | ||
436 | World Wide Web server that publishes copyrightable works and also | ||
437 | provides prominent facilities for anybody to edit those works. A | ||
438 | public wiki that anybody can edit is an example of such a server. A | ||
439 | ``Massive Multiauthor Collaboration'' (or ``MMC'') contained in the | ||
440 | site means any set of copyrightable works thus published on the MMC | ||
441 | site. | ||
442 | |||
443 | ``CC-BY-SA'' means the Creative Commons Attribution-Share Alike 3.0 | ||
444 | license published by Creative Commons Corporation, a not-for-profit | ||
445 | corporation with a principal place of business in San Francisco, | ||
446 | California, as well as future copyleft versions of that license | ||
447 | published by that same organization. | ||
448 | |||
449 | ``Incorporate'' means to publish or republish a Document, in whole or | ||
450 | in part, as part of another Document. | ||
451 | |||
452 | An MMC is ``eligible for relicensing'' if it is licensed under this | ||
453 | License, and if all works that were first published under this License | ||
454 | somewhere other than this MMC, and subsequently incorporated in whole | ||
455 | or in part into the MMC, (1) had no cover texts or invariant sections, | ||
456 | and (2) were thus incorporated prior to November 1, 2008. | ||
457 | |||
458 | The operator of an MMC Site may republish an MMC contained in the site | ||
459 | under CC-BY-SA on the same site at any time before August 1, 2009, | ||
460 | provided the MMC is eligible for relicensing. | ||
461 | |||
462 | @end enumerate | ||
463 | |||
464 | @page | ||
465 | @heading ADDENDUM: How to use this License for your documents | ||
466 | |||
467 | To use this License in a document you have written, include a copy of | ||
468 | the License in the document and put the following copyright and | ||
469 | license notices just after the title page: | ||
470 | |||
471 | @smallexample | ||
472 | @group | ||
473 | Copyright (C) @var{year} @var{your name}. | ||
474 | Permission is granted to copy, distribute and/or modify this document | ||
475 | under the terms of the GNU Free Documentation License, Version 1.3 | ||
476 | or any later version published by the Free Software Foundation; | ||
477 | with no Invariant Sections, no Front-Cover Texts, and no Back-Cover | ||
478 | Texts. A copy of the license is included in the section entitled ``GNU | ||
479 | Free Documentation License''. | ||
480 | @end group | ||
481 | @end smallexample | ||
482 | |||
483 | If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, | ||
484 | replace the ``with@dots{}Texts.''@: line with this: | ||
485 | |||
486 | @smallexample | ||
487 | @group | ||
488 | with the Invariant Sections being @var{list their titles}, with | ||
489 | the Front-Cover Texts being @var{list}, and with the Back-Cover Texts | ||
490 | being @var{list}. | ||
491 | @end group | ||
492 | @end smallexample | ||
493 | |||
494 | If you have Invariant Sections without Cover Texts, or some other | ||
495 | combination of the three, merge those two alternatives to suit the | ||
496 | situation. | ||
497 | |||
498 | If your document contains nontrivial examples of program code, we | ||
499 | recommend releasing these examples in parallel under your choice of | ||
500 | free software license, such as the GNU General Public License, | ||
501 | to permit their use in free software. | ||
502 | |||
503 | @c Local Variables: | ||
504 | @c ispell-local-pdict: "ispell-dict" | ||
505 | @c End: | ||
diff --git a/doc/gendocs.sh b/doc/gendocs.sh new file mode 100755 index 0000000..3b71b36 --- /dev/null +++ b/doc/gendocs.sh | |||
@@ -0,0 +1,504 @@ | |||
1 | #!/bin/sh -e | ||
2 | # gendocs.sh -- generate a GNU manual in many formats. This script is | ||
3 | # mentioned in maintain.texi. See the help message below for usage details. | ||
4 | |||
5 | scriptversion=2016-12-31.18 | ||
6 | |||
7 | # Copyright 2003-2017 Free Software Foundation, Inc. | ||
8 | # | ||
9 | # This program is free software: you can redistribute it and/or modify | ||
10 | # it under the terms of the GNU General Public License as published by | ||
11 | # the Free Software Foundation; either version 3 of the License, or | ||
12 | # (at your option) any later version. | ||
13 | # | ||
14 | # This program is distributed in the hope that it will be useful, | ||
15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
17 | # GNU General Public License for more details. | ||
18 | # | ||
19 | # You should have received a copy of the GNU General Public License | ||
20 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
21 | # | ||
22 | # Original author: Mohit Agarwal. | ||
23 | # Send bug reports and any other correspondence to bug-gnulib@gnu.org. | ||
24 | # | ||
25 | # The latest version of this script, and the companion template, is | ||
26 | # available from the Gnulib repository: | ||
27 | # | ||
28 | # http://git.savannah.gnu.org/cgit/gnulib.git/tree/build-aux/gendocs.sh | ||
29 | # http://git.savannah.gnu.org/cgit/gnulib.git/tree/doc/gendocs_template | ||
30 | |||
31 | # TODO: | ||
32 | # - image importing was only implemented for HTML generated by | ||
33 | # makeinfo. But it should be simple enough to adjust. | ||
34 | # - images are not imported in the source tarball. All the needed | ||
35 | # formats (PDF, PNG, etc.) should be included. | ||
36 | |||
37 | prog=`basename "$0"` | ||
38 | srcdir=`pwd` | ||
39 | |||
40 | scripturl="http://git.savannah.gnu.org/cgit/gnulib.git/plain/build-aux/gendocs.sh" | ||
41 | templateurl="http://git.savannah.gnu.org/cgit/gnulib.git/plain/doc/gendocs_template" | ||
42 | |||
43 | : ${SETLANG="env LANG= LC_MESSAGES= LC_ALL= LANGUAGE="} | ||
44 | : ${MAKEINFO="makeinfo"} | ||
45 | : ${TEXI2DVI="texi2dvi"} | ||
46 | : ${DOCBOOK2HTML="docbook2html"} | ||
47 | : ${DOCBOOK2PDF="docbook2pdf"} | ||
48 | : ${DOCBOOK2TXT="docbook2txt"} | ||
49 | : ${GENDOCS_TEMPLATE_DIR="."} | ||
50 | : ${PERL='perl'} | ||
51 | : ${TEXI2HTML="texi2html"} | ||
52 | unset CDPATH | ||
53 | unset use_texi2html | ||
54 | |||
55 | MANUAL_TITLE= | ||
56 | PACKAGE= | ||
57 | EMAIL=webmasters@gnu.org # please override with --email | ||
58 | commonarg= # passed to all makeinfo/texi2html invcations. | ||
59 | dirargs= # passed to all tools (-I dir). | ||
60 | dirs= # -I directories. | ||
61 | htmlarg="--css-ref=/software/gnulib/manual.css -c TOP_NODE_UP_URL=/manual" | ||
62 | infoarg=--no-split | ||
63 | generate_ascii=true | ||
64 | generate_html=true | ||
65 | generate_info=true | ||
66 | generate_tex=true | ||
67 | outdir=manual | ||
68 | source_extra= | ||
69 | split=node | ||
70 | srcfile= | ||
71 | texarg="-t @finalout" | ||
72 | |||
73 | version="gendocs.sh $scriptversion | ||
74 | |||
75 | Copyright 2017 Free Software Foundation, Inc. | ||
76 | There is NO warranty. You may redistribute this software | ||
77 | under the terms of the GNU General Public License. | ||
78 | For more information about these matters, see the files named COPYING." | ||
79 | |||
80 | usage="Usage: $prog [OPTION]... PACKAGE MANUAL-TITLE | ||
81 | |||
82 | Generate output in various formats from PACKAGE.texinfo (or .texi or | ||
83 | .txi) source. See the GNU Maintainers document for a more extensive | ||
84 | discussion: | ||
85 | http://www.gnu.org/prep/maintain_toc.html | ||
86 | |||
87 | Options: | ||
88 | --email ADR use ADR as contact in generated web pages; always give this. | ||
89 | |||
90 | -s SRCFILE read Texinfo from SRCFILE, instead of PACKAGE.{texinfo|texi|txi} | ||
91 | -o OUTDIR write files into OUTDIR, instead of manual/. | ||
92 | -I DIR append DIR to the Texinfo search path. | ||
93 | --common ARG pass ARG in all invocations. | ||
94 | --html ARG pass ARG to makeinfo or texi2html for HTML targets, | ||
95 | instead of '$htmlarg'. | ||
96 | --info ARG pass ARG to makeinfo for Info, instead of --no-split. | ||
97 | --no-ascii skip generating the plain text output. | ||
98 | --no-html skip generating the html output. | ||
99 | --no-info skip generating the info output. | ||
100 | --no-tex skip generating the dvi and pdf output. | ||
101 | --source ARG include ARG in tar archive of sources. | ||
102 | --split HOW make split HTML by node, section, chapter; default node. | ||
103 | --tex ARG pass ARG to texi2dvi for DVI and PDF, instead of -t @finalout. | ||
104 | |||
105 | --texi2html use texi2html to make HTML target, with all split versions. | ||
106 | --docbook convert through DocBook too (xml, txt, html, pdf). | ||
107 | |||
108 | --help display this help and exit successfully. | ||
109 | --version display version information and exit successfully. | ||
110 | |||
111 | Simple example: $prog --email bug-gnu-emacs@gnu.org emacs \"GNU Emacs Manual\" | ||
112 | |||
113 | Typical sequence: | ||
114 | cd PACKAGESOURCE/doc | ||
115 | wget \"$scripturl\" | ||
116 | wget \"$templateurl\" | ||
117 | $prog --email BUGLIST MANUAL \"GNU MANUAL - One-line description\" | ||
118 | |||
119 | Output will be in a new subdirectory \"manual\" (by default; | ||
120 | use -o OUTDIR to override). Move all the new files into your web CVS | ||
121 | tree, as explained in the Web Pages node of maintain.texi. | ||
122 | |||
123 | Please use the --email ADDRESS option so your own bug-reporting | ||
124 | address will be used in the generated HTML pages. | ||
125 | |||
126 | MANUAL-TITLE is included as part of the HTML <title> of the overall | ||
127 | manual/index.html file. It should include the name of the package being | ||
128 | documented. manual/index.html is created by substitution from the file | ||
129 | $GENDOCS_TEMPLATE_DIR/gendocs_template. (Feel free to modify the | ||
130 | generic template for your own purposes.) | ||
131 | |||
132 | If you have several manuals, you'll need to run this script several | ||
133 | times with different MANUAL values, specifying a different output | ||
134 | directory with -o each time. Then write (by hand) an overall index.html | ||
135 | with links to them all. | ||
136 | |||
137 | If a manual's Texinfo sources are spread across several directories, | ||
138 | first copy or symlink all Texinfo sources into a single directory. | ||
139 | (Part of the script's work is to make a tar.gz of the sources.) | ||
140 | |||
141 | As implied above, by default monolithic Info files are generated. | ||
142 | If you want split Info, or other Info options, use --info to override. | ||
143 | |||
144 | You can set the environment variables MAKEINFO, TEXI2DVI, TEXI2HTML, | ||
145 | and PERL to control the programs that get executed, and | ||
146 | GENDOCS_TEMPLATE_DIR to control where the gendocs_template file is | ||
147 | looked for. With --docbook, the environment variables DOCBOOK2HTML, | ||
148 | DOCBOOK2PDF, and DOCBOOK2TXT are also consulted. | ||
149 | |||
150 | By default, makeinfo and texi2dvi are run in the default (English) | ||
151 | locale, since that's the language of most Texinfo manuals. If you | ||
152 | happen to have a non-English manual and non-English web site, see the | ||
153 | SETLANG setting in the source. | ||
154 | |||
155 | Email bug reports or enhancement requests to bug-gnulib@gnu.org. | ||
156 | " | ||
157 | |||
158 | while test $# -gt 0; do | ||
159 | case $1 in | ||
160 | -s) shift; srcfile=$1;; | ||
161 | -o) shift; outdir=$1;; | ||
162 | -I) shift; dirargs="$dirargs -I '$1'"; dirs="$dirs $1";; | ||
163 | --common) shift; commonarg=$1;; | ||
164 | --docbook) docbook=yes;; | ||
165 | --email) shift; EMAIL=$1;; | ||
166 | --html) shift; htmlarg=$1;; | ||
167 | --info) shift; infoarg=$1;; | ||
168 | --no-ascii) generate_ascii=false;; | ||
169 | --no-html) generate_ascii=false;; | ||
170 | --no-info) generate_info=false;; | ||
171 | --no-tex) generate_tex=false;; | ||
172 | --source) shift; source_extra=$1;; | ||
173 | --split) shift; split=$1;; | ||
174 | --tex) shift; texarg=$1;; | ||
175 | --texi2html) use_texi2html=1;; | ||
176 | |||
177 | --help) echo "$usage"; exit 0;; | ||
178 | --version) echo "$version"; exit 0;; | ||
179 | -*) | ||
180 | echo "$0: Unknown option \`$1'." >&2 | ||
181 | echo "$0: Try \`--help' for more information." >&2 | ||
182 | exit 1;; | ||
183 | *) | ||
184 | if test -z "$PACKAGE"; then | ||
185 | PACKAGE=$1 | ||
186 | elif test -z "$MANUAL_TITLE"; then | ||
187 | MANUAL_TITLE=$1 | ||
188 | else | ||
189 | echo "$0: extra non-option argument \`$1'." >&2 | ||
190 | exit 1 | ||
191 | fi;; | ||
192 | esac | ||
193 | shift | ||
194 | done | ||
195 | |||
196 | # makeinfo uses the dirargs, but texi2dvi doesn't. | ||
197 | commonarg=" $dirargs $commonarg" | ||
198 | |||
199 | # For most of the following, the base name is just $PACKAGE | ||
200 | base=$PACKAGE | ||
201 | |||
202 | if test -n "$srcfile"; then | ||
203 | # but here, we use the basename of $srcfile | ||
204 | base=`basename "$srcfile"` | ||
205 | case $base in | ||
206 | *.txi|*.texi|*.texinfo) base=`echo "$base"|sed 's/\.[texinfo]*$//'`;; | ||
207 | esac | ||
208 | PACKAGE=$base | ||
209 | elif test -s "$srcdir/$PACKAGE.texinfo"; then | ||
210 | srcfile=$srcdir/$PACKAGE.texinfo | ||
211 | elif test -s "$srcdir/$PACKAGE.texi"; then | ||
212 | srcfile=$srcdir/$PACKAGE.texi | ||
213 | elif test -s "$srcdir/$PACKAGE.txi"; then | ||
214 | srcfile=$srcdir/$PACKAGE.txi | ||
215 | else | ||
216 | echo "$0: cannot find .texinfo or .texi or .txi for $PACKAGE in $srcdir." >&2 | ||
217 | exit 1 | ||
218 | fi | ||
219 | |||
220 | if test ! -r $GENDOCS_TEMPLATE_DIR/gendocs_template; then | ||
221 | echo "$0: cannot read $GENDOCS_TEMPLATE_DIR/gendocs_template." >&2 | ||
222 | echo "$0: it is available from $templateurl." >&2 | ||
223 | exit 1 | ||
224 | fi | ||
225 | |||
226 | # Function to return size of $1 in something resembling kilobytes. | ||
227 | calcsize() | ||
228 | { | ||
229 | size=`ls -ksl $1 | awk '{print $1}'` | ||
230 | echo $size | ||
231 | } | ||
232 | |||
233 | # copy_images OUTDIR HTML-FILE... | ||
234 | # ------------------------------- | ||
235 | # Copy all the images needed by the HTML-FILEs into OUTDIR. | ||
236 | # Look for them in . and the -I directories; this is simpler than what | ||
237 | # makeinfo supports with -I, but hopefully it will suffice. | ||
238 | copy_images() | ||
239 | { | ||
240 | local odir | ||
241 | odir=$1 | ||
242 | shift | ||
243 | $PERL -n -e " | ||
244 | BEGIN { | ||
245 | \$me = '$prog'; | ||
246 | \$odir = '$odir'; | ||
247 | @dirs = qw(. $dirs); | ||
248 | } | ||
249 | " -e ' | ||
250 | /<img src="(.*?)"/g && ++$need{$1}; | ||
251 | |||
252 | END { | ||
253 | #print "$me: @{[keys %need]}\n"; # for debugging, show images found. | ||
254 | FILE: for my $f (keys %need) { | ||
255 | for my $d (@dirs) { | ||
256 | if (-f "$d/$f") { | ||
257 | use File::Basename; | ||
258 | my $dest = dirname ("$odir/$f"); | ||
259 | # | ||
260 | use File::Path; | ||
261 | -d $dest || mkpath ($dest) | ||
262 | || die "$me: cannot mkdir $dest: $!\n"; | ||
263 | # | ||
264 | use File::Copy; | ||
265 | copy ("$d/$f", $dest) | ||
266 | || die "$me: cannot copy $d/$f to $dest: $!\n"; | ||
267 | next FILE; | ||
268 | } | ||
269 | } | ||
270 | die "$me: $ARGV: cannot find image $f\n"; | ||
271 | } | ||
272 | } | ||
273 | ' -- "$@" || exit 1 | ||
274 | } | ||
275 | |||
276 | case $outdir in | ||
277 | /*) abs_outdir=$outdir;; | ||
278 | *) abs_outdir=$srcdir/$outdir;; | ||
279 | esac | ||
280 | |||
281 | echo "Making output for $srcfile" | ||
282 | echo " in `pwd`" | ||
283 | mkdir -p "$outdir/" | ||
284 | |||
285 | # | ||
286 | if $generate_info; then | ||
287 | cmd="$SETLANG $MAKEINFO -o $PACKAGE.info $commonarg $infoarg \"$srcfile\"" | ||
288 | echo "Generating info... ($cmd)" | ||
289 | rm -f $PACKAGE.info* # get rid of any strays | ||
290 | eval "$cmd" | ||
291 | tar czf "$outdir/$PACKAGE.info.tar.gz" $PACKAGE.info* | ||
292 | ls -l "$outdir/$PACKAGE.info.tar.gz" | ||
293 | info_tgz_size=`calcsize "$outdir/$PACKAGE.info.tar.gz"` | ||
294 | # do not mv the info files, there's no point in having them available | ||
295 | # separately on the web. | ||
296 | fi # end info | ||
297 | |||
298 | # | ||
299 | if $generate_tex; then | ||
300 | cmd="$SETLANG $TEXI2DVI $dirargs $texarg \"$srcfile\"" | ||
301 | printf "\nGenerating dvi... ($cmd)\n" | ||
302 | eval "$cmd" | ||
303 | # compress/finish dvi: | ||
304 | gzip -f -9 $PACKAGE.dvi | ||
305 | dvi_gz_size=`calcsize $PACKAGE.dvi.gz` | ||
306 | mv $PACKAGE.dvi.gz "$outdir/" | ||
307 | ls -l "$outdir/$PACKAGE.dvi.gz" | ||
308 | |||
309 | cmd="$SETLANG $TEXI2DVI --pdf $dirargs $texarg \"$srcfile\"" | ||
310 | printf "\nGenerating pdf... ($cmd)\n" | ||
311 | eval "$cmd" | ||
312 | pdf_size=`calcsize $PACKAGE.pdf` | ||
313 | mv $PACKAGE.pdf "$outdir/" | ||
314 | ls -l "$outdir/$PACKAGE.pdf" | ||
315 | fi # end tex (dvi + pdf) | ||
316 | |||
317 | # | ||
318 | if $generate_ascii; then | ||
319 | opt="-o $PACKAGE.txt --no-split --no-headers $commonarg" | ||
320 | cmd="$SETLANG $MAKEINFO $opt \"$srcfile\"" | ||
321 | printf "\nGenerating ascii... ($cmd)\n" | ||
322 | eval "$cmd" | ||
323 | ascii_size=`calcsize $PACKAGE.txt` | ||
324 | gzip -f -9 -c $PACKAGE.txt >"$outdir/$PACKAGE.txt.gz" | ||
325 | ascii_gz_size=`calcsize "$outdir/$PACKAGE.txt.gz"` | ||
326 | mv $PACKAGE.txt "$outdir/" | ||
327 | ls -l "$outdir/$PACKAGE.txt" "$outdir/$PACKAGE.txt.gz" | ||
328 | fi | ||
329 | |||
330 | # | ||
331 | |||
332 | if $generate_html; then | ||
333 | # Split HTML at level $1. Used for texi2html. | ||
334 | html_split() | ||
335 | { | ||
336 | opt="--split=$1 --node-files $commonarg $htmlarg" | ||
337 | cmd="$SETLANG $TEXI2HTML --output $PACKAGE.html $opt \"$srcfile\"" | ||
338 | printf "\nGenerating html by $1... ($cmd)\n" | ||
339 | eval "$cmd" | ||
340 | split_html_dir=$PACKAGE.html | ||
341 | ( | ||
342 | cd ${split_html_dir} || exit 1 | ||
343 | ln -sf ${PACKAGE}.html index.html | ||
344 | tar -czf "$abs_outdir/${PACKAGE}.html_$1.tar.gz" -- *.html | ||
345 | ) | ||
346 | eval html_$1_tgz_size=`calcsize "$outdir/${PACKAGE}.html_$1.tar.gz"` | ||
347 | rm -f "$outdir"/html_$1/*.html | ||
348 | mkdir -p "$outdir/html_$1/" | ||
349 | mv ${split_html_dir}/*.html "$outdir/html_$1/" | ||
350 | rmdir ${split_html_dir} | ||
351 | } | ||
352 | |||
353 | if test -z "$use_texi2html"; then | ||
354 | opt="--no-split --html -o $PACKAGE.html $commonarg $htmlarg" | ||
355 | cmd="$SETLANG $MAKEINFO $opt \"$srcfile\"" | ||
356 | printf "\nGenerating monolithic html... ($cmd)\n" | ||
357 | rm -rf $PACKAGE.html # in case a directory is left over | ||
358 | eval "$cmd" | ||
359 | html_mono_size=`calcsize $PACKAGE.html` | ||
360 | gzip -f -9 -c $PACKAGE.html >"$outdir/$PACKAGE.html.gz" | ||
361 | html_mono_gz_size=`calcsize "$outdir/$PACKAGE.html.gz"` | ||
362 | copy_images "$outdir/" $PACKAGE.html | ||
363 | mv $PACKAGE.html "$outdir/" | ||
364 | ls -l "$outdir/$PACKAGE.html" "$outdir/$PACKAGE.html.gz" | ||
365 | |||
366 | # Before Texinfo 5.0, makeinfo did not accept a --split=HOW option, | ||
367 | # it just always split by node. So if we're splitting by node anyway, | ||
368 | # leave it out. | ||
369 | if test "x$split" = xnode; then | ||
370 | split_arg= | ||
371 | else | ||
372 | split_arg=--split=$split | ||
373 | fi | ||
374 | # | ||
375 | opt="--html -o $PACKAGE.html $split_arg $commonarg $htmlarg" | ||
376 | cmd="$SETLANG $MAKEINFO $opt \"$srcfile\"" | ||
377 | printf "\nGenerating html by $split... ($cmd)\n" | ||
378 | eval "$cmd" | ||
379 | split_html_dir=$PACKAGE.html | ||
380 | copy_images $split_html_dir/ $split_html_dir/*.html | ||
381 | ( | ||
382 | cd $split_html_dir || exit 1 | ||
383 | tar -czf "$abs_outdir/$PACKAGE.html_$split.tar.gz" -- * | ||
384 | ) | ||
385 | eval \ | ||
386 | html_${split}_tgz_size=`calcsize "$outdir/$PACKAGE.html_$split.tar.gz"` | ||
387 | rm -rf "$outdir/html_$split/" | ||
388 | mv $split_html_dir "$outdir/html_$split/" | ||
389 | du -s "$outdir/html_$split/" | ||
390 | ls -l "$outdir/$PACKAGE.html_$split.tar.gz" | ||
391 | |||
392 | else # use texi2html: | ||
393 | opt="--output $PACKAGE.html $commonarg $htmlarg" | ||
394 | cmd="$SETLANG $TEXI2HTML $opt \"$srcfile\"" | ||
395 | printf "\nGenerating monolithic html with texi2html... ($cmd)\n" | ||
396 | rm -rf $PACKAGE.html # in case a directory is left over | ||
397 | eval "$cmd" | ||
398 | html_mono_size=`calcsize $PACKAGE.html` | ||
399 | gzip -f -9 -c $PACKAGE.html >"$outdir/$PACKAGE.html.gz" | ||
400 | html_mono_gz_size=`calcsize "$outdir/$PACKAGE.html.gz"` | ||
401 | mv $PACKAGE.html "$outdir/" | ||
402 | |||
403 | html_split node | ||
404 | html_split chapter | ||
405 | html_split section | ||
406 | fi | ||
407 | fi # end html | ||
408 | |||
409 | # | ||
410 | printf "\nMaking .tar.gz for sources...\n" | ||
411 | d=`dirname $srcfile` | ||
412 | ( | ||
413 | cd "$d" | ||
414 | srcfiles=`ls -d *.texinfo *.texi *.txi *.eps $source_extra 2>/dev/null` || true | ||
415 | tar czfh "$abs_outdir/$PACKAGE.texi.tar.gz" $srcfiles | ||
416 | ls -l "$abs_outdir/$PACKAGE.texi.tar.gz" | ||
417 | ) | ||
418 | texi_tgz_size=`calcsize "$outdir/$PACKAGE.texi.tar.gz"` | ||
419 | |||
420 | # | ||
421 | # Do everything again through docbook. | ||
422 | if test -n "$docbook"; then | ||
423 | opt="-o - --docbook $commonarg" | ||
424 | cmd="$SETLANG $MAKEINFO $opt \"$srcfile\" >${srcdir}/$PACKAGE-db.xml" | ||
425 | printf "\nGenerating docbook XML... ($cmd)\n" | ||
426 | eval "$cmd" | ||
427 | docbook_xml_size=`calcsize $PACKAGE-db.xml` | ||
428 | gzip -f -9 -c $PACKAGE-db.xml >"$outdir/$PACKAGE-db.xml.gz" | ||
429 | docbook_xml_gz_size=`calcsize "$outdir/$PACKAGE-db.xml.gz"` | ||
430 | mv $PACKAGE-db.xml "$outdir/" | ||
431 | |||
432 | split_html_db_dir=html_node_db | ||
433 | opt="$commonarg -o $split_html_db_dir" | ||
434 | cmd="$DOCBOOK2HTML $opt \"${outdir}/$PACKAGE-db.xml\"" | ||
435 | printf "\nGenerating docbook HTML... ($cmd)\n" | ||
436 | eval "$cmd" | ||
437 | ( | ||
438 | cd ${split_html_db_dir} || exit 1 | ||
439 | tar -czf "$abs_outdir/${PACKAGE}.html_node_db.tar.gz" -- *.html | ||
440 | ) | ||
441 | html_node_db_tgz_size=`calcsize "$outdir/${PACKAGE}.html_node_db.tar.gz"` | ||
442 | rm -f "$outdir"/html_node_db/*.html | ||
443 | mkdir -p "$outdir/html_node_db" | ||
444 | mv ${split_html_db_dir}/*.html "$outdir/html_node_db/" | ||
445 | rmdir ${split_html_db_dir} | ||
446 | |||
447 | cmd="$DOCBOOK2TXT \"${outdir}/$PACKAGE-db.xml\"" | ||
448 | printf "\nGenerating docbook ASCII... ($cmd)\n" | ||
449 | eval "$cmd" | ||
450 | docbook_ascii_size=`calcsize $PACKAGE-db.txt` | ||
451 | mv $PACKAGE-db.txt "$outdir/" | ||
452 | |||
453 | cmd="$DOCBOOK2PDF \"${outdir}/$PACKAGE-db.xml\"" | ||
454 | printf "\nGenerating docbook PDF... ($cmd)\n" | ||
455 | eval "$cmd" | ||
456 | docbook_pdf_size=`calcsize $PACKAGE-db.pdf` | ||
457 | mv $PACKAGE-db.pdf "$outdir/" | ||
458 | fi | ||
459 | |||
460 | # | ||
461 | printf "\nMaking index.html for $PACKAGE...\n" | ||
462 | if test -z "$use_texi2html"; then | ||
463 | CONDS="/%%IF *HTML_SECTION%%/,/%%ENDIF *HTML_SECTION%%/d;\ | ||
464 | /%%IF *HTML_CHAPTER%%/,/%%ENDIF *HTML_CHAPTER%%/d" | ||
465 | else | ||
466 | # should take account of --split here. | ||
467 | CONDS="/%%ENDIF.*%%/d;/%%IF *HTML_SECTION%%/d;/%%IF *HTML_CHAPTER%%/d" | ||
468 | fi | ||
469 | |||
470 | curdate=`$SETLANG date '+%B %d, %Y'` | ||
471 | sed \ | ||
472 | -e "s!%%TITLE%%!$MANUAL_TITLE!g" \ | ||
473 | -e "s!%%EMAIL%%!$EMAIL!g" \ | ||
474 | -e "s!%%PACKAGE%%!$PACKAGE!g" \ | ||
475 | -e "s!%%DATE%%!$curdate!g" \ | ||
476 | -e "s!%%HTML_MONO_SIZE%%!$html_mono_size!g" \ | ||
477 | -e "s!%%HTML_MONO_GZ_SIZE%%!$html_mono_gz_size!g" \ | ||
478 | -e "s!%%HTML_NODE_TGZ_SIZE%%!$html_node_tgz_size!g" \ | ||
479 | -e "s!%%HTML_SECTION_TGZ_SIZE%%!$html_section_tgz_size!g" \ | ||
480 | -e "s!%%HTML_CHAPTER_TGZ_SIZE%%!$html_chapter_tgz_size!g" \ | ||
481 | -e "s!%%INFO_TGZ_SIZE%%!$info_tgz_size!g" \ | ||
482 | -e "s!%%DVI_GZ_SIZE%%!$dvi_gz_size!g" \ | ||
483 | -e "s!%%PDF_SIZE%%!$pdf_size!g" \ | ||
484 | -e "s!%%ASCII_SIZE%%!$ascii_size!g" \ | ||
485 | -e "s!%%ASCII_GZ_SIZE%%!$ascii_gz_size!g" \ | ||
486 | -e "s!%%TEXI_TGZ_SIZE%%!$texi_tgz_size!g" \ | ||
487 | -e "s!%%DOCBOOK_HTML_NODE_TGZ_SIZE%%!$html_node_db_tgz_size!g" \ | ||
488 | -e "s!%%DOCBOOK_ASCII_SIZE%%!$docbook_ascii_size!g" \ | ||
489 | -e "s!%%DOCBOOK_PDF_SIZE%%!$docbook_pdf_size!g" \ | ||
490 | -e "s!%%DOCBOOK_XML_SIZE%%!$docbook_xml_size!g" \ | ||
491 | -e "s!%%DOCBOOK_XML_GZ_SIZE%%!$docbook_xml_gz_size!g" \ | ||
492 | -e "s,%%SCRIPTURL%%,$scripturl,g" \ | ||
493 | -e "s!%%SCRIPTNAME%%!$prog!g" \ | ||
494 | -e "$CONDS" \ | ||
495 | $GENDOCS_TEMPLATE_DIR/gendocs_template >"$outdir/index.html" | ||
496 | |||
497 | echo "Done, see $outdir/ subdirectory for new files." | ||
498 | |||
499 | # Local variables: | ||
500 | # eval: (add-hook 'write-file-hooks 'time-stamp) | ||
501 | # time-stamp-start: "scriptversion=" | ||
502 | # time-stamp-format: "%:y-%02m-%02d.%02H" | ||
503 | # time-stamp-end: "$" | ||
504 | # End: | ||
diff --git a/doc/gendocs_template b/doc/gendocs_template new file mode 100644 index 0000000..178f6cb --- /dev/null +++ b/doc/gendocs_template | |||
@@ -0,0 +1,91 @@ | |||
1 | <!--#include virtual="/server/header.html" --> | ||
2 | <!-- Parent-Version: 1.77 --> | ||
3 | <title>%%TITLE%% - GNU Project - Free Software Foundation</title> | ||
4 | <!--#include virtual="/server/banner.html" --> | ||
5 | <h2>%%TITLE%%</h2> | ||
6 | |||
7 | <address>Free Software Foundation</address> | ||
8 | <address>last updated %%DATE%%</address> | ||
9 | |||
10 | <p>This manual (%%PACKAGE%%) is available in the following formats:</p> | ||
11 | |||
12 | <ul> | ||
13 | <li><a href="%%PACKAGE%%.html">HTML | ||
14 | (%%HTML_MONO_SIZE%%K bytes)</a> - entirely on one web page.</li> | ||
15 | <li><a href="html_node/index.html">HTML</a> - with one web page per | ||
16 | node.</li> | ||
17 | %%IF HTML_SECTION%% | ||
18 | <li><a href="html_section/index.html">HTML</a> - with one web page per | ||
19 | section.</li> | ||
20 | %%ENDIF HTML_SECTION%% | ||
21 | %%IF HTML_CHAPTER%% | ||
22 | <li><a href="html_chapter/index.html">HTML</a> - with one web page per | ||
23 | chapter.</li> | ||
24 | %%ENDIF HTML_CHAPTER%% | ||
25 | <li><a href="%%PACKAGE%%.html.gz">HTML compressed | ||
26 | (%%HTML_MONO_GZ_SIZE%%K gzipped characters)</a> - entirely on | ||
27 | one web page.</li> | ||
28 | <li><a href="%%PACKAGE%%.html_node.tar.gz">HTML compressed | ||
29 | (%%HTML_NODE_TGZ_SIZE%%K gzipped tar file)</a> - | ||
30 | with one web page per node.</li> | ||
31 | %%IF HTML_SECTION%% | ||
32 | <li><a href="%%PACKAGE%%.html_section.tar.gz">HTML compressed | ||
33 | (%%HTML_SECTION_TGZ_SIZE%%K gzipped tar file)</a> - | ||
34 | with one web page per section.</li> | ||
35 | %%ENDIF HTML_SECTION%% | ||
36 | %%IF HTML_CHAPTER%% | ||
37 | <li><a href="%%PACKAGE%%.html_chapter.tar.gz">HTML compressed | ||
38 | (%%HTML_CHAPTER_TGZ_SIZE%%K gzipped tar file)</a> - | ||
39 | with one web page per chapter.</li> | ||
40 | %%ENDIF HTML_CHAPTER%% | ||
41 | <li><a href="%%PACKAGE%%.info.tar.gz">Info document | ||
42 | (%%INFO_TGZ_SIZE%%K bytes gzipped tar file)</a>.</li> | ||
43 | <li><a href="%%PACKAGE%%.txt">ASCII text | ||
44 | (%%ASCII_SIZE%%K bytes)</a>.</li> | ||
45 | <li><a href="%%PACKAGE%%.txt.gz">ASCII text compressed | ||
46 | (%%ASCII_GZ_SIZE%%K bytes gzipped)</a>.</li> | ||
47 | <li><a href="%%PACKAGE%%.dvi.gz">TeX dvi file | ||
48 | (%%DVI_GZ_SIZE%%K bytes gzipped)</a>.</li> | ||
49 | <li><a href="%%PACKAGE%%.pdf">PDF file | ||
50 | (%%PDF_SIZE%%K bytes)</a>.</li> | ||
51 | <li><a href="%%PACKAGE%%.texi.tar.gz">Texinfo source | ||
52 | (%%TEXI_TGZ_SIZE%%K bytes gzipped tar file).</a></li> | ||
53 | </ul> | ||
54 | |||
55 | <p>You can <a href="http://shop.fsf.org/">buy printed copies of | ||
56 | some manuals</a> (among other items) from the Free Software Foundation; | ||
57 | this helps support FSF activities.</p> | ||
58 | |||
59 | <p>(This page generated by the <a href="%%SCRIPTURL%%">%%SCRIPTNAME%% | ||
60 | script</a>.)</p> | ||
61 | |||
62 | <!-- If needed, change the copyright block at the bottom. In general, | ||
63 | all pages on the GNU web server should have the section about | ||
64 | verbatim copying. Please do NOT remove this without talking | ||
65 | with the webmasters first. | ||
66 | Please make sure the copyright date is consistent with the document | ||
67 | and that it is like this: "2001, 2002", not this: "2001-2002". --> | ||
68 | </div><!-- for id="content", starts in the include above --> | ||
69 | <!--#include virtual="/server/footer.html" --> | ||
70 | <div id="footer"> | ||
71 | <div class="unprintable"> | ||
72 | |||
73 | <p>Please send general FSF & GNU inquiries to | ||
74 | <a href="mailto:gnu@gnu.org"><gnu@gnu.org></a>. | ||
75 | There are also <a href="/contact/">other ways to contact</a> | ||
76 | the FSF. Broken links and other corrections or suggestions can be sent | ||
77 | to <a href="mailto:%%EMAIL%%"><%%EMAIL%%></a>.</p> | ||
78 | </div> | ||
79 | |||
80 | <p>Copyright © 2017 Free Software Foundation, Inc.</p> | ||
81 | |||
82 | <p>This page is licensed under a <a rel="license" | ||
83 | href="http://creativecommons.org/licenses/by-nd/3.0/us/">Creative | ||
84 | Commons Attribution-NoDerivs 3.0 United States License</a>.</p> | ||
85 | |||
86 | <!--#include virtual="/server/bottom-notes.html" --> | ||
87 | |||
88 | </div> | ||
89 | </div> | ||
90 | </body> | ||
91 | </html> | ||
diff --git a/doc/gendocs_template_min b/doc/gendocs_template_min new file mode 100644 index 0000000..112fa3b --- /dev/null +++ b/doc/gendocs_template_min | |||
@@ -0,0 +1,93 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" ?> | ||
2 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" | ||
3 | "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | ||
4 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | ||
5 | |||
6 | <head> | ||
7 | <title>%%TITLE%% - GNU Project - Free Software Foundation</title> | ||
8 | <meta http-equiv="content-type" content='text/html; charset=utf-8' /> | ||
9 | <link rel="stylesheet" type="text/css" href="/gnu.css" /> | ||
10 | </head> | ||
11 | |||
12 | <body> | ||
13 | |||
14 | <h3>%%TITLE%%</h3> | ||
15 | |||
16 | <address>Free Software Foundation</address> | ||
17 | <address>last updated %%DATE%%</address> | ||
18 | <p> | ||
19 | <a href="/graphics/gnu-head.jpg"> | ||
20 | <img src="/graphics/gnu-head-sm.jpg" | ||
21 | alt=" [image of the head of a GNU] " width="129" height="122"/> | ||
22 | </a> | ||
23 | </p> | ||
24 | <hr /> | ||
25 | |||
26 | <p>This manual (%%PACKAGE%%) is available in the following formats:</p> | ||
27 | |||
28 | <ul> | ||
29 | <li><a href="%%PACKAGE%%.html">HTML | ||
30 | (%%HTML_MONO_SIZE%%K bytes)</a> - entirely on one web page.</li> | ||
31 | <li><a href="html_node/index.html">HTML</a> - with one web page per | ||
32 | node.</li> | ||
33 | %%IF HTML_SECTION%% | ||
34 | <li><a href="html_section/index.html">HTML</a> - with one web page per | ||
35 | section.</li> | ||
36 | %%ENDIF HTML_SECTION%% | ||
37 | %%IF HTML_CHAPTER%% | ||
38 | <li><a href="html_chapter/index.html">HTML</a> - with one web page per | ||
39 | chapter.</li> | ||
40 | %%ENDIF HTML_CHAPTER%% | ||
41 | <li><a href="%%PACKAGE%%.html.gz">HTML compressed | ||
42 | (%%HTML_MONO_GZ_SIZE%%K gzipped characters)</a> - entirely on | ||
43 | one web page.</li> | ||
44 | <li><a href="%%PACKAGE%%.html_node.tar.gz">HTML compressed | ||
45 | (%%HTML_NODE_TGZ_SIZE%%K gzipped tar file)</a> - | ||
46 | with one web page per node.</li> | ||
47 | %%IF HTML_SECTION%% | ||
48 | <li><a href="%%PACKAGE%%.html_section.tar.gz">HTML compressed | ||
49 | (%%HTML_SECTION_TGZ_SIZE%%K gzipped tar file)</a> - | ||
50 | with one web page per section.</li> | ||
51 | %%ENDIF HTML_SECTION%% | ||
52 | %%IF HTML_CHAPTER%% | ||
53 | <li><a href="%%PACKAGE%%.html_chapter.tar.gz">HTML compressed | ||
54 | (%%HTML_CHAPTER_TGZ_SIZE%%K gzipped tar file)</a> - | ||
55 | with one web page per chapter.</li> | ||
56 | %%ENDIF HTML_CHAPTER%% | ||
57 | <li><a href="%%PACKAGE%%.info.tar.gz">Info document | ||
58 | (%%INFO_TGZ_SIZE%%K bytes gzipped tar file)</a>.</li> | ||
59 | <li><a href="%%PACKAGE%%.txt">ASCII text | ||
60 | (%%ASCII_SIZE%%K bytes)</a>.</li> | ||
61 | <li><a href="%%PACKAGE%%.txt.gz">ASCII text compressed | ||
62 | (%%ASCII_GZ_SIZE%%K bytes gzipped)</a>.</li> | ||
63 | <li><a href="%%PACKAGE%%.dvi.gz">TeX dvi file | ||
64 | (%%DVI_GZ_SIZE%%K bytes gzipped)</a>.</li> | ||
65 | <li><a href="%%PACKAGE%%.pdf">PDF file | ||
66 | (%%PDF_SIZE%%K bytes)</a>.</li> | ||
67 | <li><a href="%%PACKAGE%%.texi.tar.gz">Texinfo source | ||
68 | (%%TEXI_TGZ_SIZE%%K bytes gzipped tar file).</a></li> | ||
69 | </ul> | ||
70 | |||
71 | <p>(This page generated by the <a href="%%SCRIPTURL%%">%%SCRIPTNAME%% | ||
72 | script</a>.)</p> | ||
73 | |||
74 | <div id="footer" class="copyright"> | ||
75 | |||
76 | <p>Please send general FSF & GNU inquiries to | ||
77 | <a href="mailto:gnu@gnu.org"><gnu@gnu.org></a>. | ||
78 | There are also <a href="/contact/">other ways to contact</a> | ||
79 | the FSF. Broken links and other corrections or suggestions can be sent | ||
80 | to <a href="mailto:%%EMAIL%%"><%%EMAIL%%></a>.</p> | ||
81 | </div> | ||
82 | |||
83 | <p>Copyright © 2017 Free Software Foundation, Inc.</p> | ||
84 | |||
85 | <p>This page is licensed under a <a rel="license" | ||
86 | href="http://creativecommons.org/licenses/by-nd/3.0/us/">Creative | ||
87 | Commons Attribution-NoDerivs 3.0 United States License</a>.</p> | ||
88 | |||
89 | <!--#include virtual="/server/bottom-notes.html" --> | ||
90 | |||
91 | </div> | ||
92 | </body> | ||
93 | </html> | ||
diff --git a/doc/gnunet-guile.texi b/doc/gnunet-guile.texi new file mode 100644 index 0000000..7e18833 --- /dev/null +++ b/doc/gnunet-guile.texi | |||
@@ -0,0 +1,132 @@ | |||
1 | \input texinfo | ||
2 | @c -*-texinfo-*- | ||
3 | |||
4 | @c %**start of header | ||
5 | @setfilename gnunet-guile.info | ||
6 | @documentencoding UTF-8 | ||
7 | @settitle GNUnet Guile Reference Manual | ||
8 | @exampleindent 2 | ||
9 | @urefbreakstyle before | ||
10 | @c %**end of header | ||
11 | |||
12 | @include version.texi | ||
13 | |||
14 | @copying | ||
15 | Copyright @copyright{} 2017 GNUnet e.V. | ||
16 | |||
17 | Permission is granted to copy, distribute and/or modify this document | ||
18 | under the terms of the GNU Free Documentation License, Version 1.3 or | ||
19 | any later version published by the Free Software Foundation; with no | ||
20 | Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A | ||
21 | copy of the license is included in the section entitled ``GNU Free | ||
22 | Documentation License''. | ||
23 | |||
24 | A copy of the license is also available from the Free Software | ||
25 | Foundation Web site at @url{http://www.gnu.org/licenses/fdl.html}. | ||
26 | |||
27 | Alternately, this document is also available under the General | ||
28 | Public License, version 3 or later, as published by the Free Software | ||
29 | Foundation. A copy of the license is included in the section entitled | ||
30 | ``GNU General Public License''. | ||
31 | |||
32 | A copy of the license is also available from the Free Software | ||
33 | Foundation Web site at @url{http://www.gnu.org/licenses/gpl.html}. | ||
34 | @end copying | ||
35 | |||
36 | @dircategory Networking | ||
37 | @direntry | ||
38 | * GNUnet-Guile: (gnunet-guile). Guile bindings for GNUnet | ||
39 | @end direntry | ||
40 | |||
41 | @titlepage | ||
42 | @title GNUnet Guile Reference Manual | ||
43 | @subtitle Guile bindings for GNUnet | ||
44 | @author The GNUnet Developers | ||
45 | |||
46 | @page | ||
47 | @vskip 0pt plus 1filll | ||
48 | Edition @value{EDITION} @* | ||
49 | @value{UPDATED} @* | ||
50 | |||
51 | @insertcopying | ||
52 | @end titlepage | ||
53 | |||
54 | @summarycontents | ||
55 | @contents | ||
56 | |||
57 | @node Top | ||
58 | @top Contributing to GNUnet | ||
59 | |||
60 | |||
61 | This document describes GNUnet Guile version @value{VERSION}. | ||
62 | |||
63 | |||
64 | GNUnet Guile is a maintained as part of the | ||
65 | @uref{https://gnunet.org/, GNUnet} project. | ||
66 | |||
67 | All code contributions must thus be put under the | ||
68 | @uref{https://www.gnu.org/copyleft/gpl.html, GNU Public License (GPL)}. | ||
69 | All documentation should be put under FSF approved licenses | ||
70 | (see @uref{https://www.gnu.org/copyleft/fdl.html, fdl}). | ||
71 | |||
72 | By submitting documentation, translations, comments and other | ||
73 | content to this project you automatically grant the right to publish | ||
74 | code under the GNU Public License (version 3 or later) and | ||
75 | documentation under either or both the GNU Public License or the | ||
76 | GNU Free Documentation License. | ||
77 | When contributing to the GNUnet Guile project, GNU standards and the | ||
78 | @uref{https://www.gnu.org/philosophy/philosophy.html, GNU philosophy} | ||
79 | should be adhered to. | ||
80 | |||
81 | Unlike GNUnet, we require no formal copyright assignments | ||
82 | for contributions to GNUnet Guile. | ||
83 | |||
84 | @menu | ||
85 | |||
86 | * Introduction:: Introduction | ||
87 | * Main:: Main | ||
88 | * GNU Free Documentation License:: The license of this manual. | ||
89 | * GNU General Public License:: The license of this manual. | ||
90 | * Concept Index:: Concepts. | ||
91 | * Programming Index:: Data types, functions, and variables. | ||
92 | |||
93 | @detailmenu | ||
94 | --- The Detailed Node Listing --- | ||
95 | |||
96 | Introduction | ||
97 | |||
98 | Main | ||
99 | |||
100 | @end detailmenu | ||
101 | @end menu | ||
102 | |||
103 | @node Introduction | ||
104 | @chapter Introduction | ||
105 | |||
106 | @node Main | ||
107 | @chapter Main | ||
108 | |||
109 | @c ********************************************************************* | ||
110 | @node GNU Free Documentation License | ||
111 | @appendix GNU Free Documentation License | ||
112 | @cindex license, GNU Free Documentation License | ||
113 | @include fdl-1.3.texi | ||
114 | |||
115 | @c ********************************************************************* | ||
116 | @node GNU General Public License | ||
117 | @appendix GNU General Public License | ||
118 | @cindex license, GNU General Public License | ||
119 | @include gpl-3.0.texi | ||
120 | |||
121 | @c ********************************************************************* | ||
122 | @node Concept Index | ||
123 | @unnumbered Concept Index | ||
124 | @printindex cp | ||
125 | |||
126 | @node Programming Index | ||
127 | @unnumbered Programming Index | ||
128 | @syncodeindex tp fn | ||
129 | @syncodeindex vr fn | ||
130 | @printindex fn | ||
131 | |||
132 | @bye | ||
diff --git a/doc/gpl-3.0.texi b/doc/gpl-3.0.texi new file mode 100644 index 0000000..0e2e212 --- /dev/null +++ b/doc/gpl-3.0.texi | |||
@@ -0,0 +1,717 @@ | |||
1 | @c The GNU General Public License. | ||
2 | @center Version 3, 29 June 2007 | ||
3 | |||
4 | @c This file is intended to be included within another document, | ||
5 | @c hence no sectioning command or @node. | ||
6 | |||
7 | @display | ||
8 | Copyright @copyright{} 2007 Free Software Foundation, Inc. @url{http://fsf.org/} | ||
9 | |||
10 | Everyone is permitted to copy and distribute verbatim copies of this | ||
11 | license document, but changing it is not allowed. | ||
12 | @end display | ||
13 | |||
14 | @heading Preamble | ||
15 | |||
16 | The GNU General Public License is a free, copyleft license for | ||
17 | software and other kinds of works. | ||
18 | |||
19 | The licenses for most software and other practical works are designed | ||
20 | to take away your freedom to share and change the works. By contrast, | ||
21 | the GNU General Public License is intended to guarantee your freedom | ||
22 | to share and change all versions of a program---to make sure it remains | ||
23 | free software for all its users. We, the Free Software Foundation, | ||
24 | use the GNU General Public License for most of our software; it | ||
25 | applies also to any other work released this way by its authors. You | ||
26 | can apply it to your programs, too. | ||
27 | |||
28 | When we speak of free software, we are referring to freedom, not | ||
29 | price. Our General Public Licenses are designed to make sure that you | ||
30 | have the freedom to distribute copies of free software (and charge for | ||
31 | them if you wish), that you receive source code or can get it if you | ||
32 | want it, that you can change the software or use pieces of it in new | ||
33 | free programs, and that you know you can do these things. | ||
34 | |||
35 | To protect your rights, we need to prevent others from denying you | ||
36 | these rights or asking you to surrender the rights. Therefore, you | ||
37 | have certain responsibilities if you distribute copies of the | ||
38 | software, or if you modify it: responsibilities to respect the freedom | ||
39 | of others. | ||
40 | |||
41 | For example, if you distribute copies of such a program, whether | ||
42 | gratis or for a fee, you must pass on to the recipients the same | ||
43 | freedoms that you received. You must make sure that they, too, | ||
44 | receive or can get the source code. And you must show them these | ||
45 | terms so they know their rights. | ||
46 | |||
47 | Developers that use the GNU GPL protect your rights with two steps: | ||
48 | (1) assert copyright on the software, and (2) offer you this License | ||
49 | giving you legal permission to copy, distribute and/or modify it. | ||
50 | |||
51 | For the developers' and authors' protection, the GPL clearly explains | ||
52 | that there is no warranty for this free software. For both users' and | ||
53 | authors' sake, the GPL requires that modified versions be marked as | ||
54 | changed, so that their problems will not be attributed erroneously to | ||
55 | authors of previous versions. | ||
56 | |||
57 | Some devices are designed to deny users access to install or run | ||
58 | modified versions of the software inside them, although the | ||
59 | manufacturer can do so. This is fundamentally incompatible with the | ||
60 | aim of protecting users' freedom to change the software. The | ||
61 | systematic pattern of such abuse occurs in the area of products for | ||
62 | individuals to use, which is precisely where it is most unacceptable. | ||
63 | Therefore, we have designed this version of the GPL to prohibit the | ||
64 | practice for those products. If such problems arise substantially in | ||
65 | other domains, we stand ready to extend this provision to those | ||
66 | domains in future versions of the GPL, as needed to protect the | ||
67 | freedom of users. | ||
68 | |||
69 | Finally, every program is threatened constantly by software patents. | ||
70 | States should not allow patents to restrict development and use of | ||
71 | software on general-purpose computers, but in those that do, we wish | ||
72 | to avoid the special danger that patents applied to a free program | ||
73 | could make it effectively proprietary. To prevent this, the GPL | ||
74 | assures that patents cannot be used to render the program non-free. | ||
75 | |||
76 | The precise terms and conditions for copying, distribution and | ||
77 | modification follow. | ||
78 | |||
79 | @heading TERMS AND CONDITIONS | ||
80 | |||
81 | @enumerate 0 | ||
82 | @item Definitions. | ||
83 | |||
84 | ``This License'' refers to version 3 of the GNU General Public License. | ||
85 | |||
86 | ``Copyright'' also means copyright-like laws that apply to other kinds | ||
87 | of works, such as semiconductor masks. | ||
88 | |||
89 | ``The Program'' refers to any copyrightable work licensed under this | ||
90 | License. Each licensee is addressed as ``you''. ``Licensees'' and | ||
91 | ``recipients'' may be individuals or organizations. | ||
92 | |||
93 | To ``modify'' a work means to copy from or adapt all or part of the work | ||
94 | in a fashion requiring copyright permission, other than the making of | ||
95 | an exact copy. The resulting work is called a ``modified version'' of | ||
96 | the earlier work or a work ``based on'' the earlier work. | ||
97 | |||
98 | A ``covered work'' means either the unmodified Program or a work based | ||
99 | on the Program. | ||
100 | |||
101 | To ``propagate'' a work means to do anything with it that, without | ||
102 | permission, would make you directly or secondarily liable for | ||
103 | infringement under applicable copyright law, except executing it on a | ||
104 | computer or modifying a private copy. Propagation includes copying, | ||
105 | distribution (with or without modification), making available to the | ||
106 | public, and in some countries other activities as well. | ||
107 | |||
108 | To ``convey'' a work means any kind of propagation that enables other | ||
109 | parties to make or receive copies. Mere interaction with a user | ||
110 | through a computer network, with no transfer of a copy, is not | ||
111 | conveying. | ||
112 | |||
113 | An interactive user interface displays ``Appropriate Legal Notices'' to | ||
114 | the extent that it includes a convenient and prominently visible | ||
115 | feature that (1) displays an appropriate copyright notice, and (2) | ||
116 | tells the user that there is no warranty for the work (except to the | ||
117 | extent that warranties are provided), that licensees may convey the | ||
118 | work under this License, and how to view a copy of this License. If | ||
119 | the interface presents a list of user commands or options, such as a | ||
120 | menu, a prominent item in the list meets this criterion. | ||
121 | |||
122 | @item Source Code. | ||
123 | |||
124 | The ``source code'' for a work means the preferred form of the work for | ||
125 | making modifications to it. ``Object code'' means any non-source form | ||
126 | of a work. | ||
127 | |||
128 | A ``Standard Interface'' means an interface that either is an official | ||
129 | standard defined by a recognized standards body, or, in the case of | ||
130 | interfaces specified for a particular programming language, one that | ||
131 | is widely used among developers working in that language. | ||
132 | |||
133 | The ``System Libraries'' of an executable work include anything, other | ||
134 | than the work as a whole, that (a) is included in the normal form of | ||
135 | packaging a Major Component, but which is not part of that Major | ||
136 | Component, and (b) serves only to enable use of the work with that | ||
137 | Major Component, or to implement a Standard Interface for which an | ||
138 | implementation is available to the public in source code form. A | ||
139 | ``Major Component'', in this context, means a major essential component | ||
140 | (kernel, window system, and so on) of the specific operating system | ||
141 | (if any) on which the executable work runs, or a compiler used to | ||
142 | produce the work, or an object code interpreter used to run it. | ||
143 | |||
144 | The ``Corresponding Source'' for a work in object code form means all | ||
145 | the source code needed to generate, install, and (for an executable | ||
146 | work) run the object code and to modify the work, including scripts to | ||
147 | control those activities. However, it does not include the work's | ||
148 | System Libraries, or general-purpose tools or generally available free | ||
149 | programs which are used unmodified in performing those activities but | ||
150 | which are not part of the work. For example, Corresponding Source | ||
151 | includes interface definition files associated with source files for | ||
152 | the work, and the source code for shared libraries and dynamically | ||
153 | linked subprograms that the work is specifically designed to require, | ||
154 | such as by intimate data communication or control flow between those | ||
155 | subprograms and other parts of the work. | ||
156 | |||
157 | The Corresponding Source need not include anything that users can | ||
158 | regenerate automatically from other parts of the Corresponding Source. | ||
159 | |||
160 | The Corresponding Source for a work in source code form is that same | ||
161 | work. | ||
162 | |||
163 | @item Basic Permissions. | ||
164 | |||
165 | All rights granted under this License are granted for the term of | ||
166 | copyright on the Program, and are irrevocable provided the stated | ||
167 | conditions are met. This License explicitly affirms your unlimited | ||
168 | permission to run the unmodified Program. The output from running a | ||
169 | covered work is covered by this License only if the output, given its | ||
170 | content, constitutes a covered work. This License acknowledges your | ||
171 | rights of fair use or other equivalent, as provided by copyright law. | ||
172 | |||
173 | You may make, run and propagate covered works that you do not convey, | ||
174 | without conditions so long as your license otherwise remains in force. | ||
175 | You may convey covered works to others for the sole purpose of having | ||
176 | them make modifications exclusively for you, or provide you with | ||
177 | facilities for running those works, provided that you comply with the | ||
178 | terms of this License in conveying all material for which you do not | ||
179 | control copyright. Those thus making or running the covered works for | ||
180 | you must do so exclusively on your behalf, under your direction and | ||
181 | control, on terms that prohibit them from making any copies of your | ||
182 | copyrighted material outside their relationship with you. | ||
183 | |||
184 | Conveying under any other circumstances is permitted solely under the | ||
185 | conditions stated below. Sublicensing is not allowed; section 10 | ||
186 | makes it unnecessary. | ||
187 | |||
188 | @item Protecting Users' Legal Rights From Anti-Circumvention Law. | ||
189 | |||
190 | No covered work shall be deemed part of an effective technological | ||
191 | measure under any applicable law fulfilling obligations under article | ||
192 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or | ||
193 | similar laws prohibiting or restricting circumvention of such | ||
194 | measures. | ||
195 | |||
196 | When you convey a covered work, you waive any legal power to forbid | ||
197 | circumvention of technological measures to the extent such | ||
198 | circumvention is effected by exercising rights under this License with | ||
199 | respect to the covered work, and you disclaim any intention to limit | ||
200 | operation or modification of the work as a means of enforcing, against | ||
201 | the work's users, your or third parties' legal rights to forbid | ||
202 | circumvention of technological measures. | ||
203 | |||
204 | @item Conveying Verbatim Copies. | ||
205 | |||
206 | You may convey verbatim copies of the Program's source code as you | ||
207 | receive it, in any medium, provided that you conspicuously and | ||
208 | appropriately publish on each copy an appropriate copyright notice; | ||
209 | keep intact all notices stating that this License and any | ||
210 | non-permissive terms added in accord with section 7 apply to the code; | ||
211 | keep intact all notices of the absence of any warranty; and give all | ||
212 | recipients a copy of this License along with the Program. | ||
213 | |||
214 | You may charge any price or no price for each copy that you convey, | ||
215 | and you may offer support or warranty protection for a fee. | ||
216 | |||
217 | @item Conveying Modified Source Versions. | ||
218 | |||
219 | You may convey a work based on the Program, or the modifications to | ||
220 | produce it from the Program, in the form of source code under the | ||
221 | terms of section 4, provided that you also meet all of these | ||
222 | conditions: | ||
223 | |||
224 | @enumerate a | ||
225 | @item | ||
226 | The work must carry prominent notices stating that you modified it, | ||
227 | and giving a relevant date. | ||
228 | |||
229 | @item | ||
230 | The work must carry prominent notices stating that it is released | ||
231 | under this License and any conditions added under section 7. This | ||
232 | requirement modifies the requirement in section 4 to ``keep intact all | ||
233 | notices''. | ||
234 | |||
235 | @item | ||
236 | You must license the entire work, as a whole, under this License to | ||
237 | anyone who comes into possession of a copy. This License will | ||
238 | therefore apply, along with any applicable section 7 additional terms, | ||
239 | to the whole of the work, and all its parts, regardless of how they | ||
240 | are packaged. This License gives no permission to license the work in | ||
241 | any other way, but it does not invalidate such permission if you have | ||
242 | separately received it. | ||
243 | |||
244 | @item | ||
245 | If the work has interactive user interfaces, each must display | ||
246 | Appropriate Legal Notices; however, if the Program has interactive | ||
247 | interfaces that do not display Appropriate Legal Notices, your work | ||
248 | need not make them do so. | ||
249 | @end enumerate | ||
250 | |||
251 | A compilation of a covered work with other separate and independent | ||
252 | works, which are not by their nature extensions of the covered work, | ||
253 | and which are not combined with it such as to form a larger program, | ||
254 | in or on a volume of a storage or distribution medium, is called an | ||
255 | ``aggregate'' if the compilation and its resulting copyright are not | ||
256 | used to limit the access or legal rights of the compilation's users | ||
257 | beyond what the individual works permit. Inclusion of a covered work | ||
258 | in an aggregate does not cause this License to apply to the other | ||
259 | parts of the aggregate. | ||
260 | |||
261 | @item Conveying Non-Source Forms. | ||
262 | |||
263 | You may convey a covered work in object code form under the terms of | ||
264 | sections 4 and 5, provided that you also convey the machine-readable | ||
265 | Corresponding Source under the terms of this License, in one of these | ||
266 | ways: | ||
267 | |||
268 | @enumerate a | ||
269 | @item | ||
270 | Convey the object code in, or embodied in, a physical product | ||
271 | (including a physical distribution medium), accompanied by the | ||
272 | Corresponding Source fixed on a durable physical medium customarily | ||
273 | used for software interchange. | ||
274 | |||
275 | @item | ||
276 | Convey the object code in, or embodied in, a physical product | ||
277 | (including a physical distribution medium), accompanied by a written | ||
278 | offer, valid for at least three years and valid for as long as you | ||
279 | offer spare parts or customer support for that product model, to give | ||
280 | anyone who possesses the object code either (1) a copy of the | ||
281 | Corresponding Source for all the software in the product that is | ||
282 | covered by this License, on a durable physical medium customarily used | ||
283 | for software interchange, for a price no more than your reasonable | ||
284 | cost of physically performing this conveying of source, or (2) access | ||
285 | to copy the Corresponding Source from a network server at no charge. | ||
286 | |||
287 | @item | ||
288 | Convey individual copies of the object code with a copy of the written | ||
289 | offer to provide the Corresponding Source. This alternative is | ||
290 | allowed only occasionally and noncommercially, and only if you | ||
291 | received the object code with such an offer, in accord with subsection | ||
292 | 6b. | ||
293 | |||
294 | @item | ||
295 | Convey the object code by offering access from a designated place | ||
296 | (gratis or for a charge), and offer equivalent access to the | ||
297 | Corresponding Source in the same way through the same place at no | ||
298 | further charge. You need not require recipients to copy the | ||
299 | Corresponding Source along with the object code. If the place to copy | ||
300 | the object code is a network server, the Corresponding Source may be | ||
301 | on a different server (operated by you or a third party) that supports | ||
302 | equivalent copying facilities, provided you maintain clear directions | ||
303 | next to the object code saying where to find the Corresponding Source. | ||
304 | Regardless of what server hosts the Corresponding Source, you remain | ||
305 | obligated to ensure that it is available for as long as needed to | ||
306 | satisfy these requirements. | ||
307 | |||
308 | @item | ||
309 | Convey the object code using peer-to-peer transmission, provided you | ||
310 | inform other peers where the object code and Corresponding Source of | ||
311 | the work are being offered to the general public at no charge under | ||
312 | subsection 6d. | ||
313 | |||
314 | @end enumerate | ||
315 | |||
316 | A separable portion of the object code, whose source code is excluded | ||
317 | from the Corresponding Source as a System Library, need not be | ||
318 | included in conveying the object code work. | ||
319 | |||
320 | A ``User Product'' is either (1) a ``consumer product'', which means any | ||
321 | tangible personal property which is normally used for personal, | ||
322 | family, or household purposes, or (2) anything designed or sold for | ||
323 | incorporation into a dwelling. In determining whether a product is a | ||
324 | consumer product, doubtful cases shall be resolved in favor of | ||
325 | coverage. For a particular product received by a particular user, | ||
326 | ``normally used'' refers to a typical or common use of that class of | ||
327 | product, regardless of the status of the particular user or of the way | ||
328 | in which the particular user actually uses, or expects or is expected | ||
329 | to use, the product. A product is a consumer product regardless of | ||
330 | whether the product has substantial commercial, industrial or | ||
331 | non-consumer uses, unless such uses represent the only significant | ||
332 | mode of use of the product. | ||
333 | |||
334 | ``Installation Information'' for a User Product means any methods, | ||
335 | procedures, authorization keys, or other information required to | ||
336 | install and execute modified versions of a covered work in that User | ||
337 | Product from a modified version of its Corresponding Source. The | ||
338 | information must suffice to ensure that the continued functioning of | ||
339 | the modified object code is in no case prevented or interfered with | ||
340 | solely because modification has been made. | ||
341 | |||
342 | If you convey an object code work under this section in, or with, or | ||
343 | specifically for use in, a User Product, and the conveying occurs as | ||
344 | part of a transaction in which the right of possession and use of the | ||
345 | User Product is transferred to the recipient in perpetuity or for a | ||
346 | fixed term (regardless of how the transaction is characterized), the | ||
347 | Corresponding Source conveyed under this section must be accompanied | ||
348 | by the Installation Information. But this requirement does not apply | ||
349 | if neither you nor any third party retains the ability to install | ||
350 | modified object code on the User Product (for example, the work has | ||
351 | been installed in ROM). | ||
352 | |||
353 | The requirement to provide Installation Information does not include a | ||
354 | requirement to continue to provide support service, warranty, or | ||
355 | updates for a work that has been modified or installed by the | ||
356 | recipient, or for the User Product in which it has been modified or | ||
357 | installed. Access to a network may be denied when the modification | ||
358 | itself materially and adversely affects the operation of the network | ||
359 | or violates the rules and protocols for communication across the | ||
360 | network. | ||
361 | |||
362 | Corresponding Source conveyed, and Installation Information provided, | ||
363 | in accord with this section must be in a format that is publicly | ||
364 | documented (and with an implementation available to the public in | ||
365 | source code form), and must require no special password or key for | ||
366 | unpacking, reading or copying. | ||
367 | |||
368 | @item Additional Terms. | ||
369 | |||
370 | ``Additional permissions'' are terms that supplement the terms of this | ||
371 | License by making exceptions from one or more of its conditions. | ||
372 | Additional permissions that are applicable to the entire Program shall | ||
373 | be treated as though they were included in this License, to the extent | ||
374 | that they are valid under applicable law. If additional permissions | ||
375 | apply only to part of the Program, that part may be used separately | ||
376 | under those permissions, but the entire Program remains governed by | ||
377 | this License without regard to the additional permissions. | ||
378 | |||
379 | When you convey a copy of a covered work, you may at your option | ||
380 | remove any additional permissions from that copy, or from any part of | ||
381 | it. (Additional permissions may be written to require their own | ||
382 | removal in certain cases when you modify the work.) You may place | ||
383 | additional permissions on material, added by you to a covered work, | ||
384 | for which you have or can give appropriate copyright permission. | ||
385 | |||
386 | Notwithstanding any other provision of this License, for material you | ||
387 | add to a covered work, you may (if authorized by the copyright holders | ||
388 | of that material) supplement the terms of this License with terms: | ||
389 | |||
390 | @enumerate a | ||
391 | @item | ||
392 | Disclaiming warranty or limiting liability differently from the terms | ||
393 | of sections 15 and 16 of this License; or | ||
394 | |||
395 | @item | ||
396 | Requiring preservation of specified reasonable legal notices or author | ||
397 | attributions in that material or in the Appropriate Legal Notices | ||
398 | displayed by works containing it; or | ||
399 | |||
400 | @item | ||
401 | Prohibiting misrepresentation of the origin of that material, or | ||
402 | requiring that modified versions of such material be marked in | ||
403 | reasonable ways as different from the original version; or | ||
404 | |||
405 | @item | ||
406 | Limiting the use for publicity purposes of names of licensors or | ||
407 | authors of the material; or | ||
408 | |||
409 | @item | ||
410 | Declining to grant rights under trademark law for use of some trade | ||
411 | names, trademarks, or service marks; or | ||
412 | |||
413 | @item | ||
414 | Requiring indemnification of licensors and authors of that material by | ||
415 | anyone who conveys the material (or modified versions of it) with | ||
416 | contractual assumptions of liability to the recipient, for any | ||
417 | liability that these contractual assumptions directly impose on those | ||
418 | licensors and authors. | ||
419 | @end enumerate | ||
420 | |||
421 | All other non-permissive additional terms are considered ``further | ||
422 | restrictions'' within the meaning of section 10. If the Program as you | ||
423 | received it, or any part of it, contains a notice stating that it is | ||
424 | governed by this License along with a term that is a further | ||
425 | restriction, you may remove that term. If a license document contains | ||
426 | a further restriction but permits relicensing or conveying under this | ||
427 | License, you may add to a covered work material governed by the terms | ||
428 | of that license document, provided that the further restriction does | ||
429 | not survive such relicensing or conveying. | ||
430 | |||
431 | If you add terms to a covered work in accord with this section, you | ||
432 | must place, in the relevant source files, a statement of the | ||
433 | additional terms that apply to those files, or a notice indicating | ||
434 | where to find the applicable terms. | ||
435 | |||
436 | Additional terms, permissive or non-permissive, may be stated in the | ||
437 | form of a separately written license, or stated as exceptions; the | ||
438 | above requirements apply either way. | ||
439 | |||
440 | @item Termination. | ||
441 | |||
442 | You may not propagate or modify a covered work except as expressly | ||
443 | provided under this License. Any attempt otherwise to propagate or | ||
444 | modify it is void, and will automatically terminate your rights under | ||
445 | this License (including any patent licenses granted under the third | ||
446 | paragraph of section 11). | ||
447 | |||
448 | However, if you cease all violation of this License, then your license | ||
449 | from a particular copyright holder is reinstated (a) provisionally, | ||
450 | unless and until the copyright holder explicitly and finally | ||
451 | terminates your license, and (b) permanently, if the copyright holder | ||
452 | fails to notify you of the violation by some reasonable means prior to | ||
453 | 60 days after the cessation. | ||
454 | |||
455 | Moreover, your license from a particular copyright holder is | ||
456 | reinstated permanently if the copyright holder notifies you of the | ||
457 | violation by some reasonable means, this is the first time you have | ||
458 | received notice of violation of this License (for any work) from that | ||
459 | copyright holder, and you cure the violation prior to 30 days after | ||
460 | your receipt of the notice. | ||
461 | |||
462 | Termination of your rights under this section does not terminate the | ||
463 | licenses of parties who have received copies or rights from you under | ||
464 | this License. If your rights have been terminated and not permanently | ||
465 | reinstated, you do not qualify to receive new licenses for the same | ||
466 | material under section 10. | ||
467 | |||
468 | @item Acceptance Not Required for Having Copies. | ||
469 | |||
470 | You are not required to accept this License in order to receive or run | ||
471 | a copy of the Program. Ancillary propagation of a covered work | ||
472 | occurring solely as a consequence of using peer-to-peer transmission | ||
473 | to receive a copy likewise does not require acceptance. However, | ||
474 | nothing other than this License grants you permission to propagate or | ||
475 | modify any covered work. These actions infringe copyright if you do | ||
476 | not accept this License. Therefore, by modifying or propagating a | ||
477 | covered work, you indicate your acceptance of this License to do so. | ||
478 | |||
479 | @item Automatic Licensing of Downstream Recipients. | ||
480 | |||
481 | Each time you convey a covered work, the recipient automatically | ||
482 | receives a license from the original licensors, to run, modify and | ||
483 | propagate that work, subject to this License. You are not responsible | ||
484 | for enforcing compliance by third parties with this License. | ||
485 | |||
486 | An ``entity transaction'' is a transaction transferring control of an | ||
487 | organization, or substantially all assets of one, or subdividing an | ||
488 | organization, or merging organizations. If propagation of a covered | ||
489 | work results from an entity transaction, each party to that | ||
490 | transaction who receives a copy of the work also receives whatever | ||
491 | licenses to the work the party's predecessor in interest had or could | ||
492 | give under the previous paragraph, plus a right to possession of the | ||
493 | Corresponding Source of the work from the predecessor in interest, if | ||
494 | the predecessor has it or can get it with reasonable efforts. | ||
495 | |||
496 | You may not impose any further restrictions on the exercise of the | ||
497 | rights granted or affirmed under this License. For example, you may | ||
498 | not impose a license fee, royalty, or other charge for exercise of | ||
499 | rights granted under this License, and you may not initiate litigation | ||
500 | (including a cross-claim or counterclaim in a lawsuit) alleging that | ||
501 | any patent claim is infringed by making, using, selling, offering for | ||
502 | sale, or importing the Program or any portion of it. | ||
503 | |||
504 | @item Patents. | ||
505 | |||
506 | A ``contributor'' is a copyright holder who authorizes use under this | ||
507 | License of the Program or a work on which the Program is based. The | ||
508 | work thus licensed is called the contributor's ``contributor version''. | ||
509 | |||
510 | A contributor's ``essential patent claims'' are all patent claims owned | ||
511 | or controlled by the contributor, whether already acquired or | ||
512 | hereafter acquired, that would be infringed by some manner, permitted | ||
513 | by this License, of making, using, or selling its contributor version, | ||
514 | but do not include claims that would be infringed only as a | ||
515 | consequence of further modification of the contributor version. For | ||
516 | purposes of this definition, ``control'' includes the right to grant | ||
517 | patent sublicenses in a manner consistent with the requirements of | ||
518 | this License. | ||
519 | |||
520 | Each contributor grants you a non-exclusive, worldwide, royalty-free | ||
521 | patent license under the contributor's essential patent claims, to | ||
522 | make, use, sell, offer for sale, import and otherwise run, modify and | ||
523 | propagate the contents of its contributor version. | ||
524 | |||
525 | In the following three paragraphs, a ``patent license'' is any express | ||
526 | agreement or commitment, however denominated, not to enforce a patent | ||
527 | (such as an express permission to practice a patent or covenant not to | ||
528 | sue for patent infringement). To ``grant'' such a patent license to a | ||
529 | party means to make such an agreement or commitment not to enforce a | ||
530 | patent against the party. | ||
531 | |||
532 | If you convey a covered work, knowingly relying on a patent license, | ||
533 | and the Corresponding Source of the work is not available for anyone | ||
534 | to copy, free of charge and under the terms of this License, through a | ||
535 | publicly available network server or other readily accessible means, | ||
536 | then you must either (1) cause the Corresponding Source to be so | ||
537 | available, or (2) arrange to deprive yourself of the benefit of the | ||
538 | patent license for this particular work, or (3) arrange, in a manner | ||
539 | consistent with the requirements of this License, to extend the patent | ||
540 | license to downstream recipients. ``Knowingly relying'' means you have | ||
541 | actual knowledge that, but for the patent license, your conveying the | ||
542 | covered work in a country, or your recipient's use of the covered work | ||
543 | in a country, would infringe one or more identifiable patents in that | ||
544 | country that you have reason to believe are valid. | ||
545 | |||
546 | If, pursuant to or in connection with a single transaction or | ||
547 | arrangement, you convey, or propagate by procuring conveyance of, a | ||
548 | covered work, and grant a patent license to some of the parties | ||
549 | receiving the covered work authorizing them to use, propagate, modify | ||
550 | or convey a specific copy of the covered work, then the patent license | ||
551 | you grant is automatically extended to all recipients of the covered | ||
552 | work and works based on it. | ||
553 | |||
554 | A patent license is ``discriminatory'' if it does not include within the | ||
555 | scope of its coverage, prohibits the exercise of, or is conditioned on | ||
556 | the non-exercise of one or more of the rights that are specifically | ||
557 | granted under this License. You may not convey a covered work if you | ||
558 | are a party to an arrangement with a third party that is in the | ||
559 | business of distributing software, under which you make payment to the | ||
560 | third party based on the extent of your activity of conveying the | ||
561 | work, and under which the third party grants, to any of the parties | ||
562 | who would receive the covered work from you, a discriminatory patent | ||
563 | license (a) in connection with copies of the covered work conveyed by | ||
564 | you (or copies made from those copies), or (b) primarily for and in | ||
565 | connection with specific products or compilations that contain the | ||
566 | covered work, unless you entered into that arrangement, or that patent | ||
567 | license was granted, prior to 28 March 2007. | ||
568 | |||
569 | Nothing in this License shall be construed as excluding or limiting | ||
570 | any implied license or other defenses to infringement that may | ||
571 | otherwise be available to you under applicable patent law. | ||
572 | |||
573 | @item No Surrender of Others' Freedom. | ||
574 | |||
575 | If conditions are imposed on you (whether by court order, agreement or | ||
576 | otherwise) that contradict the conditions of this License, they do not | ||
577 | excuse you from the conditions of this License. If you cannot convey | ||
578 | a covered work so as to satisfy simultaneously your obligations under | ||
579 | this License and any other pertinent obligations, then as a | ||
580 | consequence you may not convey it at all. For example, if you agree | ||
581 | to terms that obligate you to collect a royalty for further conveying | ||
582 | from those to whom you convey the Program, the only way you could | ||
583 | satisfy both those terms and this License would be to refrain entirely | ||
584 | from conveying the Program. | ||
585 | |||
586 | @item Use with the GNU Affero General Public License. | ||
587 | |||
588 | Notwithstanding any other provision of this License, you have | ||
589 | permission to link or combine any covered work with a work licensed | ||
590 | under version 3 of the GNU Affero General Public License into a single | ||
591 | combined work, and to convey the resulting work. The terms of this | ||
592 | License will continue to apply to the part which is the covered work, | ||
593 | but the special requirements of the GNU Affero General Public License, | ||
594 | section 13, concerning interaction through a network will apply to the | ||
595 | combination as such. | ||
596 | |||
597 | @item Revised Versions of this License. | ||
598 | |||
599 | The Free Software Foundation may publish revised and/or new versions | ||
600 | of the GNU General Public License from time to time. Such new | ||
601 | versions will be similar in spirit to the present version, but may | ||
602 | differ in detail to address new problems or concerns. | ||
603 | |||
604 | Each version is given a distinguishing version number. If the Program | ||
605 | specifies that a certain numbered version of the GNU General Public | ||
606 | License ``or any later version'' applies to it, you have the option of | ||
607 | following the terms and conditions either of that numbered version or | ||
608 | of any later version published by the Free Software Foundation. If | ||
609 | the Program does not specify a version number of the GNU General | ||
610 | Public License, you may choose any version ever published by the Free | ||
611 | Software Foundation. | ||
612 | |||
613 | If the Program specifies that a proxy can decide which future versions | ||
614 | of the GNU General Public License can be used, that proxy's public | ||
615 | statement of acceptance of a version permanently authorizes you to | ||
616 | choose that version for the Program. | ||
617 | |||
618 | Later license versions may give you additional or different | ||
619 | permissions. However, no additional obligations are imposed on any | ||
620 | author or copyright holder as a result of your choosing to follow a | ||
621 | later version. | ||
622 | |||
623 | @item Disclaimer of Warranty. | ||
624 | |||
625 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY | ||
626 | APPLICABLE LAW@. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT | ||
627 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM ``AS IS'' WITHOUT | ||
628 | WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT | ||
629 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||
630 | A PARTICULAR PURPOSE@. THE ENTIRE RISK AS TO THE QUALITY AND | ||
631 | PERFORMANCE OF THE PROGRAM IS WITH YOU@. SHOULD THE PROGRAM PROVE | ||
632 | DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR | ||
633 | CORRECTION. | ||
634 | |||
635 | @item Limitation of Liability. | ||
636 | |||
637 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING | ||
638 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR | ||
639 | CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, | ||
640 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES | ||
641 | ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT | ||
642 | NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR | ||
643 | LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM | ||
644 | TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER | ||
645 | PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. | ||
646 | |||
647 | @item Interpretation of Sections 15 and 16. | ||
648 | |||
649 | If the disclaimer of warranty and limitation of liability provided | ||
650 | above cannot be given local legal effect according to their terms, | ||
651 | reviewing courts shall apply local law that most closely approximates | ||
652 | an absolute waiver of all civil liability in connection with the | ||
653 | Program, unless a warranty or assumption of liability accompanies a | ||
654 | copy of the Program in return for a fee. | ||
655 | |||
656 | @end enumerate | ||
657 | |||
658 | @heading END OF TERMS AND CONDITIONS | ||
659 | |||
660 | @heading How to Apply These Terms to Your New Programs | ||
661 | |||
662 | If you develop a new program, and you want it to be of the greatest | ||
663 | possible use to the public, the best way to achieve this is to make it | ||
664 | free software which everyone can redistribute and change under these | ||
665 | terms. | ||
666 | |||
667 | To do so, attach the following notices to the program. It is safest | ||
668 | to attach them to the start of each source file to most effectively | ||
669 | state the exclusion of warranty; and each file should have at least | ||
670 | the ``copyright'' line and a pointer to where the full notice is found. | ||
671 | |||
672 | @smallexample | ||
673 | @var{one line to give the program's name and a brief idea of what it does.} | ||
674 | Copyright (C) @var{year} @var{name of author} | ||
675 | |||
676 | This program is free software: you can redistribute it and/or modify | ||
677 | it under the terms of the GNU General Public License as published by | ||
678 | the Free Software Foundation, either version 3 of the License, or (at | ||
679 | your option) any later version. | ||
680 | |||
681 | This program is distributed in the hope that it will be useful, but | ||
682 | WITHOUT ANY WARRANTY; without even the implied warranty of | ||
683 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE@. See the GNU | ||
684 | General Public License for more details. | ||
685 | |||
686 | You should have received a copy of the GNU General Public License | ||
687 | along with this program. If not, see @url{http://www.gnu.org/licenses/}. | ||
688 | @end smallexample | ||
689 | |||
690 | Also add information on how to contact you by electronic and paper mail. | ||
691 | |||
692 | If the program does terminal interaction, make it output a short | ||
693 | notice like this when it starts in an interactive mode: | ||
694 | |||
695 | @smallexample | ||
696 | @var{program} Copyright (C) @var{year} @var{name of author} | ||
697 | This program comes with ABSOLUTELY NO WARRANTY; for details type @samp{show w}. | ||
698 | This is free software, and you are welcome to redistribute it | ||
699 | under certain conditions; type @samp{show c} for details. | ||
700 | @end smallexample | ||
701 | |||
702 | The hypothetical commands @samp{show w} and @samp{show c} should show | ||
703 | the appropriate parts of the General Public License. Of course, your | ||
704 | program's commands might be different; for a GUI interface, you would | ||
705 | use an ``about box''. | ||
706 | |||
707 | You should also get your employer (if you work as a programmer) or school, | ||
708 | if any, to sign a ``copyright disclaimer'' for the program, if necessary. | ||
709 | For more information on this, and how to apply and follow the GNU GPL, see | ||
710 | @url{http://www.gnu.org/licenses/}. | ||
711 | |||
712 | The GNU General Public License does not permit incorporating your | ||
713 | program into proprietary programs. If your program is a subroutine | ||
714 | library, you may consider it more useful to permit linking proprietary | ||
715 | applications with the library. If this is what you want to do, use | ||
716 | the GNU Lesser General Public License instead of this License. But | ||
717 | first, please read @url{http://www.gnu.org/philosophy/why-not-lgpl.html}. | ||
diff --git a/doc/htmlxref.cnf b/doc/htmlxref.cnf new file mode 100644 index 0000000..a4928f6 --- /dev/null +++ b/doc/htmlxref.cnf | |||
@@ -0,0 +1,668 @@ | |||
1 | # htmlxref.cnf - reference file for free Texinfo manuals on the web. | ||
2 | # Modified by Ludovic Courtès <ludo@gnu.org> for the GNU Guix manual. | ||
3 | # Modified by ng0 <ng0@gnunet.org> for the GNUnet manual. | ||
4 | |||
5 | htmlxrefversion=2017-10-26.06; # UTC | ||
6 | |||
7 | # Copyright 2010, 2011, 2012, 2013, 2014, 2015 Free Software Foundation, Inc. | ||
8 | # | ||
9 | # Copying and distribution of this file, with or without modification, | ||
10 | # are permitted in any medium without royalty provided the copyright | ||
11 | # notice and this notice are preserved. | ||
12 | # | ||
13 | # The latest version of this file is available at | ||
14 | # http://ftpmirror.gnu.org/texinfo/htmlxref.cnf. | ||
15 | # Email corrections or additions to bug-texinfo@gnu.org. | ||
16 | # The primary goal is to list all relevant GNU manuals; | ||
17 | # other free manuals are also welcome. | ||
18 | # | ||
19 | # To be included in this list, a manual must: | ||
20 | # | ||
21 | # - have a generic url, e.g., no version numbers; | ||
22 | # - have a unique file name (e.g., manual identifier), i.e., be related to the | ||
23 | # package name. Things like "refman" or "tutorial" don't work. | ||
24 | # - follow the naming convention for nodes described at | ||
25 | # http://www.gnu.org/software/texinfo/manual/texinfo/html_node/HTML-Xref.html | ||
26 | # This is what makeinfo and texi2html implement. | ||
27 | # | ||
28 | # Unless the above criteria are met, it's not possible to generate | ||
29 | # reliable cross-manual references. | ||
30 | # | ||
31 | # For information on automatically generating all the useful formats for | ||
32 | # a manual to put on the web, see | ||
33 | # http://www.gnu.org/prep/maintain/html_node/Manuals-on-Web-Pages.html. | ||
34 | |||
35 | # For people editing this file: when a manual named foo is related to a | ||
36 | # package named bar, the url should contain a variable reference ${BAR}. | ||
37 | # Otherwise, the gnumaint scripts have no way of knowing they are | ||
38 | # associated, and thus gnu.org/manual can't include them. | ||
39 | |||
40 | # shorten references to manuals on www.gnu.org. | ||
41 | G = https://www.gnu.org | ||
42 | GS = ${G}/software | ||
43 | |||
44 | 3dldf mono ${GS}/3dldf/manual/user_ref/3DLDF.html | ||
45 | 3dldf node ${GS}/3dldf/manual/user_ref/ | ||
46 | |||
47 | alive mono ${GS}/alive/manual/alive.html | ||
48 | alive node ${GS}/alive/manual/html_node/ | ||
49 | |||
50 | anubis chapter ${GS}/anubis/manual/html_chapter/ | ||
51 | anubis section ${GS}/anubis/manual/html_section/ | ||
52 | anubis node ${GS}/anubis/manual/html_node/ | ||
53 | |||
54 | artanis mono ${GS}/artanis/manual/artanis.html | ||
55 | artanis node ${GS}/artanis/manual/html_node/ | ||
56 | |||
57 | aspell section http://aspell.net/man-html/index.html | ||
58 | |||
59 | auctex mono ${GS}/auctex/manual/auctex.html | ||
60 | auctex node ${GS}/auctex/manual/auctex/ | ||
61 | |||
62 | autoconf mono ${GS}/autoconf/manual/autoconf.html | ||
63 | autoconf node ${GS}/autoconf/manual/html_node/ | ||
64 | |||
65 | autogen mono ${GS}/autogen/manual/html_mono/autogen.html | ||
66 | autogen chapter ${GS}/autogen/manual/html_chapter/ | ||
67 | autogen node ${GS}/autoconf/manual/html_node/ | ||
68 | |||
69 | automake mono ${GS}/automake/manual/automake.html | ||
70 | automake node ${GS}/automake/manual/html_node/ | ||
71 | |||
72 | avl node http://www.stanford.edu/~blp/avl/libavl.html/ | ||
73 | |||
74 | bash mono ${GS}/bash/manual/bash.html | ||
75 | bash node ${GS}/bash/manual/html_node/ | ||
76 | |||
77 | BINUTILS = http://sourceware.org/binutils/docs | ||
78 | binutils node ${BINUTILS}/binutils/ | ||
79 | as node ${BINUTILS}/as/ | ||
80 | bfd node ${BINUTILS}/bfd/ | ||
81 | gprof node ${BINUTILS}/gprof/ | ||
82 | ld node ${BINUTILS}/ld/ | ||
83 | |||
84 | bison mono ${GS}/bison/manual/bison.html | ||
85 | bison node ${GS}/bison/manual/html_node/ | ||
86 | |||
87 | bpel2owfn mono ${GS}/bpel2owfn/manual/2.0.x/bpel2owfn.html | ||
88 | |||
89 | ccd2cue mono ${GS}/ccd2cue/manual/ccd2cue.html | ||
90 | ccd2cue node ${GS}/ccd2cue/manual/html_node/ | ||
91 | |||
92 | cflow mono ${GS}/cflow/manual/cflow.html | ||
93 | cflow node ${GS}/cflow/manual/html_node/ | ||
94 | |||
95 | chess mono ${GS}/chess/manual/gnuchess.html | ||
96 | chess node ${GS}/chess/manual/html_node/ | ||
97 | |||
98 | combine mono ${GS}/combine/manual/combine.html | ||
99 | combine chapter ${GS}/combine/manual/html_chapter/ | ||
100 | combine section ${GS}/combine/manual/html_section/ | ||
101 | combine node ${GS}/combine/manual/html_node/ | ||
102 | |||
103 | complexity mono ${GS}/complexity/manual/complexity.html | ||
104 | complexity node ${GS}/complexity/manual/html_node/ | ||
105 | |||
106 | coreutils mono ${GS}/coreutils/manual/coreutils | ||
107 | coreutils node ${GS}/coreutils/manual/html_node/ | ||
108 | |||
109 | cpio mono ${GS}/cpio/manual/cpio | ||
110 | cpio node ${GS}/cpio/manual/html_node/ | ||
111 | |||
112 | cssc node ${GS}/cssc/manual/ | ||
113 | |||
114 | #cvs cannot be handled here; see http://ximbiot.com/cvs/manual. | ||
115 | |||
116 | ddd mono ${GS}/ddd/manual/html_mono/ddd.html | ||
117 | |||
118 | ddrescue mono ${GS}/ddrescue/manual/ddrescue_manual.html | ||
119 | |||
120 | DICO = http://puszcza.gnu.org.ua/software/dico/manual | ||
121 | dico mono ${DICO}/dico.html | ||
122 | dico chapter ${DICO}/html_chapter/ | ||
123 | dico section ${DICO}/html_section/ | ||
124 | dico node ${DICO}/html_node/ | ||
125 | |||
126 | diffutils mono ${GS}/diffutils/manual/diffutils | ||
127 | diffutils node ${GS}/diffutils/manual/html_node/ | ||
128 | |||
129 | ed mono ${GS}/ed/manual/ed_manual.html | ||
130 | |||
131 | EMACS = ${GS}/emacs/manual | ||
132 | emacs mono ${EMACS}/html_mono/emacs.html | ||
133 | emacs node ${EMACS}/html_node/emacs/ | ||
134 | # | ||
135 | ada-mode mono ${EMACS}/html_mono/ada-mode.html | ||
136 | ada-mode node ${EMACS}/html_node/ada-mode/ | ||
137 | # | ||
138 | autotype mono ${EMACS}/html_mono/autotype.html | ||
139 | autotype node ${EMACS}/html_node/autotype/ | ||
140 | # | ||
141 | ccmode mono ${EMACS}/html_mono/ccmode.html | ||
142 | ccmode node ${EMACS}/html_node/ccmode/ | ||
143 | # | ||
144 | cl mono ${EMACS}/html_mono/cl.html | ||
145 | cl node ${EMACS}/html_node/cl/ | ||
146 | # | ||
147 | ebrowse mono ${EMACS}/html_mono/ebrowse.html | ||
148 | ebrowse node ${EMACS}/html_node/ebrowse/ | ||
149 | # | ||
150 | ediff mono ${EMACS}/html_mono/ediff.html | ||
151 | ediff node ${EMACS}/html_node/ediff/ | ||
152 | # | ||
153 | eieio mono ${EMACS}/html_mono/eieio.html | ||
154 | eieio node ${EMACS}/html_node/eieio/ | ||
155 | # | ||
156 | elisp mono ${EMACS}/html_mono/elisp.html | ||
157 | elisp node ${EMACS}/html_node/elisp/ | ||
158 | # | ||
159 | epa mono ${EMACS}/html_mono/epa.html | ||
160 | epa node ${EMACS}/html_node/epa/ | ||
161 | # | ||
162 | erc mono ${EMACS}/html_mono/erc.html | ||
163 | erc node ${EMACS}/html_node/erc/ | ||
164 | # | ||
165 | dired-x mono ${EMACS}/html_mono/dired-x.html | ||
166 | dired-x node ${EMACS}/html_node/dired-x/ | ||
167 | # | ||
168 | eshell mono ${EMACS}/html_mono/eshell.html | ||
169 | eshell node ${EMACS}/html_node/eshell/ | ||
170 | # | ||
171 | flymake mono ${EMACS}/html_mono/flymake.html | ||
172 | flymake node ${EMACS}/html_node/flymake/ | ||
173 | # | ||
174 | gnus mono ${EMACS}/html_mono/gnus.html | ||
175 | gnus node ${EMACS}/html_node/gnus/ | ||
176 | # | ||
177 | idlwave mono ${EMACS}/html_mono/idlwave.html | ||
178 | idlwave node ${EMACS}/html_node/idlwave/ | ||
179 | # | ||
180 | message mono ${EMACS}/html_mono/message.html | ||
181 | message node ${EMACS}/html_node/message/ | ||
182 | # | ||
183 | mh-e mono ${EMACS}/html_mono/mh-e.html | ||
184 | mh-e node ${EMACS}/html_node/mh-e/ | ||
185 | # | ||
186 | nxml-mode mono ${EMACS}/html_mono/nxml-mode.html | ||
187 | nxml-mode node ${EMACS}/html_node/nxml-mode/ | ||
188 | # | ||
189 | org mono ${EMACS}/html_mono/org.html | ||
190 | org node ${EMACS}/html_node/org/ | ||
191 | # | ||
192 | pcl-cvs mono ${EMACS}/html_mono/pcl-cvs.html | ||
193 | pcl-cvs node ${EMACS}/html_node/pcl-cvs/ | ||
194 | # | ||
195 | rcirc mono ${EMACS}/html_mono/rcirc.html | ||
196 | rcirc node ${EMACS}/html_node/rcirc/ | ||
197 | # | ||
198 | semantic mono ${EMACS}/html_mono/semantic.html | ||
199 | semantic node ${EMACS}/html_node/semantic/ | ||
200 | # | ||
201 | smtp mono ${EMACS}/html_mono/smtpmail.html | ||
202 | smtp node ${EMACS}/html_node/smtpmail/ | ||
203 | # | ||
204 | speedbar mono ${EMACS}/html_mono/speedbar.html | ||
205 | speedbar node ${EMACS}/html_node/speedbar/ | ||
206 | # | ||
207 | tramp mono ${EMACS}/html_mono/tramp.html | ||
208 | tramp node ${EMACS}/html_node/tramp/ | ||
209 | # | ||
210 | vip mono ${EMACS}/html_mono/vip.html | ||
211 | vip node ${EMACS}/html_node/vip/ | ||
212 | # | ||
213 | viper mono ${EMACS}/html_mono/viper.html | ||
214 | viper node ${EMACS}/html_node/viper/ | ||
215 | # | ||
216 | woman mono ${EMACS}/html_mono/woman.html | ||
217 | woman node ${EMACS}/html_node/woman/ | ||
218 | # (end emacs manuals) | ||
219 | |||
220 | easejs mono ${GS}/easejs/manual/easejs.html | ||
221 | easejs node ${GS}/easejs/manual/ | ||
222 | |||
223 | EMACS_GUIX = https://alezost.github.io/guix.el/manual/latest | ||
224 | emacs-guix mono ${EMACS_GUIX}/emacs-guix.html | ||
225 | emacs-guix node ${EMACS_GUIX}/html_node/ | ||
226 | |||
227 | emacs-muse node ${GS}/emacs-muse/manual/muse.html | ||
228 | emacs-muse node ${GS}/emacs-muse/manual/html_node/ | ||
229 | |||
230 | emms node ${GS}/emms/manual/ | ||
231 | |||
232 | # The file is called 'find.info' but the package is 'findutils'. | ||
233 | find mono ${GS}/findutils/manual/html_mono/find.html | ||
234 | find node ${GS}/findutils/manual/html_node/find_html | ||
235 | findutils mono ${GS}/findutils/manual/html_mono/find.html | ||
236 | findutils node ${GS}/findutils/manual/html_node/find_html | ||
237 | |||
238 | FLEX = http://flex.sourceforge.net | ||
239 | flex node ${FLEX}/manual/ | ||
240 | |||
241 | gama mono ${GS}/gama/manual/gama.html | ||
242 | gama node ${GS}/gama/manual/html_node/ | ||
243 | |||
244 | GAWK = ${GS}/gawk/manual | ||
245 | gawk mono ${GAWK}/gawk.html | ||
246 | gawk node ${GAWK}/html_node/ | ||
247 | gawkinet mono ${GAWK}/gawkinet/gawkinet.html | ||
248 | gawkinet node ${GAWK}/gawkinet/html_node/ | ||
249 | |||
250 | gcal mono ${GS}/gcal/manual/gcal.html | ||
251 | gcal node ${GS}/gcal/manual/html_node/ | ||
252 | |||
253 | GCC = http://gcc.gnu.org/onlinedocs | ||
254 | gcc node ${GCC}/gcc/ | ||
255 | cpp node ${GCC}/cpp/ | ||
256 | gcj node ${GCC}/gcj/ | ||
257 | gfortran node ${GCC}/gfortran/ | ||
258 | gnat_rm node ${GCC}/gnat_rm/ | ||
259 | gnat_ugn_unw node ${GCC}/gnat_ugn_unw/ | ||
260 | libgomp node ${GCC}/libgomp/ | ||
261 | libstdc++ node ${GCC}/libstdc++/ | ||
262 | # | ||
263 | gccint node ${GCC}/gccint/ | ||
264 | cppinternals node ${GCC}/cppinternals/ | ||
265 | gfc-internals node ${GCC}/gfc-internals/ | ||
266 | gnat-style node ${GCC}/gnat-style/ | ||
267 | libiberty node ${GCC}/libiberty/ | ||
268 | |||
269 | GDB = http://sourceware.org/gdb/current/onlinedocs | ||
270 | gdb node ${GDB}/gdb/ | ||
271 | stabs node ${GDB}/stabs/ | ||
272 | |||
273 | GDBM = http://www.gnu.org.ua/software/gdbm/manual | ||
274 | gdbm mono ${GDBM}/gdbm.html | ||
275 | gdbm chapter ${GDBM}/html_chapter/ | ||
276 | gdbm section ${GDBM}/html_section/ | ||
277 | gdbm node ${GDBM}/html_node/ | ||
278 | |||
279 | gettext mono ${GS}/gettext/manual/gettext.html | ||
280 | gettext node ${GS}/gettext/manual/html_node/ | ||
281 | |||
282 | gforth node http://www.complang.tuwien.ac.at/forth/gforth/Docs-html/ | ||
283 | |||
284 | global mono ${GS}/global/manual/global.html | ||
285 | |||
286 | gmediaserver node ${GS}/gmediaserver/manual/ | ||
287 | |||
288 | gmp node http://www.gmplib.org/manual/ | ||
289 | |||
290 | gnu-arch node ${GS}/gnu-arch/tutorial/ | ||
291 | |||
292 | gnu-c-manual mono ${GS}/gnu-c-manual/gnu-c-manual.html | ||
293 | |||
294 | gnu-crypto node ${GS}/gnu-crypto/manual/ | ||
295 | |||
296 | gnubg mono ${GS}/gnubg/manual/gnubg.html | ||
297 | gnubg node ${GS}/gnubg/manual/html_node/ | ||
298 | |||
299 | gnubik mono ${GS}/gnubik/manual/gnubik.html | ||
300 | gnubik node ${GS}/gnubik/manual/html_node/ | ||
301 | |||
302 | gnulib mono ${GS}/gnulib/manual/gnulib.html | ||
303 | gnulib node ${GS}/gnulib/manual/html_node/ | ||
304 | |||
305 | GNUN = ${GS}/trans-coord/manual | ||
306 | gnun mono ${GNUN}/gnun/gnun.html | ||
307 | gnun node ${GNUN}/gnun/html_node/ | ||
308 | web-trans mono ${GNUN}/web-trans/web-trans.html | ||
309 | web-trans node ${GNUN}/web-trans/html_node/ | ||
310 | |||
311 | GNUNET = https://docs.gnunet.org/manuals | ||
312 | gnunet node ${GNUNET}/gnunet/ | ||
313 | gnunet-c-tutorial node ${GNUNET}/gnunet-c-tutorial/ | ||
314 | gnunet-java-tutorial node ${GNUNET}/gnunet-java-tutorial/ | ||
315 | |||
316 | GNUPG = http://www.gnupg.org/documentation/manuals | ||
317 | gnupg node ${GNUPG}/gnupg/ | ||
318 | dirmngr node ${GNUPG}/dirmngr/ | ||
319 | gcrypt node ${GNUPG}/gcrypt/ | ||
320 | libgcrypt node ${GNUPG}/gcrypt/ | ||
321 | ksba node ${GNUPG}/ksba/ | ||
322 | assuan node ${GNUPG}/assuan/ | ||
323 | gpgme node ${GNUPG}/gpgme/ | ||
324 | |||
325 | gnuprologjava node ${GS}/gnuprologjava/manual/ | ||
326 | |||
327 | gnuschool mono ${GS}/gnuschool/gnuschool.html | ||
328 | |||
329 | GNUSTANDARDS = ${G}/prep | ||
330 | maintain mono ${GNUSTANDARDS}/maintain/maintain.html | ||
331 | maintain node ${GNUSTANDARDS}/maintain/html_node/ | ||
332 | # | ||
333 | standards mono ${GNUSTANDARDS}/standards/standards.html | ||
334 | standards node ${GNUSTANDARDS}/standards/html_node/ | ||
335 | |||
336 | gnutls mono http://gnutls.org/manual/gnutls.html | ||
337 | gnutls node http://gnutls.org/manual/html_node/ | ||
338 | |||
339 | gnutls-guile mono http://gnutls.org/manual/gnutls-guile.html | ||
340 | gnutls-guile node http://gnutls.org/manual/gnutls-guile/ | ||
341 | |||
342 | gperf mono ${GS}/gperf/manual/gperf.html | ||
343 | gperf node ${GS}/gperf/manual/html_node/ | ||
344 | |||
345 | grep mono ${GS}/grep/manual/grep.html | ||
346 | grep node ${GS}/grep/manual/html_node/ | ||
347 | |||
348 | groff node ${GS}/groff/manual/html_node/ | ||
349 | |||
350 | GRUB = ${GS}/grub/manual | ||
351 | grub mono ${GRUB}/grub.html | ||
352 | grub node ${GRUB}/html_node/ | ||
353 | # | ||
354 | multiboot mono ${GRUB}/multiboot/multiboot.html | ||
355 | multiboot node ${GRUB}/multiboot/html_node/ | ||
356 | |||
357 | gsasl mono ${GS}/gsasl/manual/gsasl.html | ||
358 | gsasl node ${GS}/gsasl/manual/html_node/ | ||
359 | |||
360 | gsl node ${GS}/gsl/manual/html_node/ | ||
361 | |||
362 | gsrc mono ${GS}/gsrc/manual/gsrc.html | ||
363 | gsrc node ${GS}/gsrc/manual/html_node/ | ||
364 | |||
365 | gss mono ${GS}/gss/manual/gss.html | ||
366 | gss node ${GS}/gss/manual/html_node/ | ||
367 | |||
368 | gtypist mono ${GS}/gtypist/doc/ | ||
369 | |||
370 | guile mono ${GS}/guile/manual/guile.html | ||
371 | guile node ${GS}/guile/manual/html_node/ | ||
372 | |||
373 | guile-avahi mono http://nongnu.org/guile-avahi/doc/guile-avahi.html | ||
374 | |||
375 | GUILE_GNOME = ${GS}/guile-gnome/docs | ||
376 | gobject node ${GUILE_GNOME}/gobject/html/ | ||
377 | glib node ${GUILE_GNOME}/glib/html/ | ||
378 | atk node ${GUILE_GNOME}/atk/html/ | ||
379 | pango node ${GUILE_GNOME}/pango/html/ | ||
380 | pangocairo node ${GUILE_GNOME}/pangocairo/html/ | ||
381 | gdk node ${GUILE_GNOME}/gdk/html/ | ||
382 | gtk node ${GUILE_GNOME}/gtk/html/ | ||
383 | libglade node ${GUILE_GNOME}/libglade/html/ | ||
384 | gnome-vfs node ${GUILE_GNOME}/gnome-vfs/html/ | ||
385 | libgnomecanvas node ${GUILE_GNOME}/libgnomecanvas/html/ | ||
386 | gconf node ${GUILE_GNOME}/gconf/html/ | ||
387 | libgnome node ${GUILE_GNOME}/libgnome/html/ | ||
388 | libgnomeui node ${GUILE_GNOME}/libgnomeui/html/ | ||
389 | corba node ${GUILE_GNOME}/corba/html/ | ||
390 | clutter node ${GUILE_GNOME}/clutter/html/ | ||
391 | clutter-glx node ${GUILE_GNOME}/clutter-glx/html/ | ||
392 | |||
393 | guile-gtk node ${GS}/guile-gtk/docs/guile-gtk/ | ||
394 | |||
395 | guile-rpc mono ${GS}/guile-rpc/manual/guile-rpc.html | ||
396 | guile-rpc node ${GS}/guile-rpc/manual/html_node/ | ||
397 | |||
398 | guix mono ${GS}/guix/manual/guix.html | ||
399 | guix node ${GS}/guix/manual/html_node/ | ||
400 | |||
401 | gv mono ${GS}/gv/manual/gv.html | ||
402 | gv node ${GS}/gv/manual/html_node/ | ||
403 | |||
404 | gzip mono ${GS}/gzip/manual/gzip.html | ||
405 | gzip node ${GS}/gzip/manual/html_node/ | ||
406 | |||
407 | hello mono ${GS}/hello/manual/hello.html | ||
408 | hello node ${GS}/hello/manual/html_node/ | ||
409 | |||
410 | help2man mono ${GS}/help2man/help2man.html | ||
411 | |||
412 | idutils mono ${GS}/idutils/manual/idutils.html | ||
413 | idutils node ${GS}/idutils/manual/html_node/ | ||
414 | |||
415 | inetutils mono ${GS}/inetutils/manual/inetutils.html | ||
416 | inetutils node ${GS}/inetutils/manual/html_node/ | ||
417 | |||
418 | jwhois mono ${GS}/jwhois/manual/jwhois.html | ||
419 | jwhois node ${GS}/jwhois/manual/html_node/ | ||
420 | |||
421 | libc mono ${GS}/libc/manual/html_mono/libc.html | ||
422 | libc node ${GS}/libc/manual/html_node/ | ||
423 | |||
424 | LIBCDIO = ${GS}/libcdio | ||
425 | libcdio mono ${LIBCDIO}/libcdio.html | ||
426 | cd-text mono ${LIBCDIO}/cd-text-format.html | ||
427 | |||
428 | libextractor mono ${GS}/libextractor/manual/libextractor.html | ||
429 | libextractor node ${GS}/libextractor/manual/html_node/ | ||
430 | |||
431 | libidn mono ${GS}/libidn/manual/libidn.html | ||
432 | libidn node ${GS}/libidn/manual/html_node/ | ||
433 | |||
434 | librejs mono ${GS}/librejs/manual/librejs.html | ||
435 | librejs node ${GS}/librejs/manual/html_node/ | ||
436 | |||
437 | libmatheval mono ${GS}/libmatheval/manual/libmatheval.html | ||
438 | |||
439 | LIBMICROHTTPD = ${GS}/libmicrohttpd | ||
440 | libmicrohttpd mono ${LIBMICROHTTPD}/manual/libmicrohttpd.html | ||
441 | libmicrohttpd node ${LIBMICROHTTPD}/manual/html_node/ | ||
442 | microhttpd-tutorial mono ${LIBMICROHTTPD}/tutorial.html | ||
443 | |||
444 | libtasn1 mono ${GS}/libtasn1/manual/libtasn1.html | ||
445 | libtasn1 node ${GS}/libtasn1/manual/html_node/ | ||
446 | |||
447 | libtool mono ${GS}/libtool/manual/libtool.html | ||
448 | libtool node ${GS}/libtool/manual/html_node/ | ||
449 | |||
450 | lightning mono ${GS}/lightning/manual/lightning.html | ||
451 | lightning node ${GS}/lightning/manual/html_node/ | ||
452 | |||
453 | # The stable/ url redirects immediately, but that's ok. | ||
454 | # The .html extension is omitted on their web site, but it works if given. | ||
455 | LILYPOND = http://lilypond.org/doc/stable/Documentation | ||
456 | lilypond-internals node ${LILYPOND}/internals/ | ||
457 | lilypond-learning node ${LILYPOND}/learning/ | ||
458 | lilypond-notation node ${LILYPOND}/notation/ | ||
459 | lilypond-snippets node ${LILYPOND}/snippets/ | ||
460 | lilypond-usage node ${LILYPOND}/usage/ | ||
461 | lilypond-web node ${LILYPOND}/web/ | ||
462 | music-glossary node ${LILYPOND}/music-glossary/ | ||
463 | |||
464 | liquidwar6 mono ${GS}/liquidwar6/manual/liquidwar6.html | ||
465 | liquidwar6 node ${GS}/liquidwar6/manual/html_node/ | ||
466 | |||
467 | lispintro mono ${GS}/emacs/emacs-lisp-intro/html_mono/emacs-lisp-intro.html | ||
468 | lispintro node ${GS}/emacs/emacs-lisp-intro/html_node/index.html | ||
469 | |||
470 | LSH = http://www.lysator.liu.se/~nisse/lsh | ||
471 | lsh mono ${LSH}/lsh.html | ||
472 | |||
473 | m4 mono ${GS}/m4/manual/m4.html | ||
474 | m4 node ${GS}/m4/manual/html_node/ | ||
475 | |||
476 | mailutils mono ${GS}/mailutils/manual/mailutils.html | ||
477 | mailutils chapter ${GS}/mailutils/manual/html_chapter/ | ||
478 | mailutils section ${GS}/mailutils/manual/html_section/ | ||
479 | mailutils node ${GS}/mailutils/manual/html_node/ | ||
480 | |||
481 | make mono ${GS}/make/manual/make.html | ||
482 | make node ${GS}/make/manual/html_node/ | ||
483 | |||
484 | mcron mono ${GS}/mcron/manual/mcron.html | ||
485 | mcron node ${GS}/mcron/manual/html_node/ | ||
486 | |||
487 | mdk mono ${GS}/mdk/manual/mdk.html | ||
488 | mdk node ${GS}/mdk/manual/html_node/ | ||
489 | |||
490 | METAEXCHANGE = http://ftp.gwdg.de/pub/gnu2/iwfmdh/doc/texinfo | ||
491 | iwf_mh node ${METAEXCHANGE}/iwf_mh.html | ||
492 | scantest node ${METAEXCHANGE}/scantest.html | ||
493 | |||
494 | MIT_SCHEME = ${GS}/mit-scheme/documentation | ||
495 | mit-scheme-ref node ${MIT_SCHEME}/mit-scheme-ref/ | ||
496 | mit-scheme-user node ${MIT_SCHEME}/mit-scheme-user/ | ||
497 | sos node ${MIT_SCHEME}/mit-scheme-sos/ | ||
498 | mit-scheme-imail node ${MIT_SCHEME}/mit-scheme-imail/ | ||
499 | |||
500 | moe mono ${GS}/moe/manual/moe_manual.html | ||
501 | |||
502 | motti node ${GS}/motti/manual/ | ||
503 | |||
504 | mpc node http://www.multiprecision.org/index.php?prog=mpc&page=html | ||
505 | |||
506 | mpfr mono http://www.mpfr.org/mpfr-current/mpfr.html | ||
507 | |||
508 | mtools mono ${GS}/mtools/manual/mtools.html | ||
509 | |||
510 | myserver node http://www.myserverproject.net/documentation/ | ||
511 | |||
512 | nano mono http://www.nano-editor.org/dist/latest/nano.html | ||
513 | |||
514 | nettle chapter http://www.lysator.liu.se/~nisse/nettle/nettle.html | ||
515 | |||
516 | ocrad mono ${GS}/ocrad/manual/ocrad_manual.html | ||
517 | |||
518 | parted mono ${GS}/parted/manual/parted.html | ||
519 | parted node ${GS}/parted/manual/html_node/ | ||
520 | |||
521 | pascal mono http://www.gnu-pascal.de/gpc/ | ||
522 | |||
523 | # can't use pcb since url's contain dates --30nov10 | ||
524 | |||
525 | perl mono ${GS}/perl/manual/perldoc-all.html | ||
526 | |||
527 | PIES = http://www.gnu.org.ua/software/pies/manual | ||
528 | pies mono ${PIES}/pies.html | ||
529 | pies chapter ${PIES}/html_chapter/ | ||
530 | pies section ${PIES}/html_section/ | ||
531 | pies node ${PIES}/html_node/ | ||
532 | |||
533 | plotutils mono ${GS}/plotutils/manual/en/plotutils.html | ||
534 | plotutils node ${GS}/plotutils/manual/en/html_node/ | ||
535 | |||
536 | proxyknife mono ${GS}/proxyknife/manual/proxyknife.html | ||
537 | proxyknife node ${GS}/proxyknife/manual/html_node/ | ||
538 | |||
539 | pspp mono ${GS}/pspp/manual/pspp.html | ||
540 | pspp node ${GS}/pspp/manual/html_node/ | ||
541 | |||
542 | pyconfigure mono ${GS}/pyconfigure/manual/pyconfigure.html | ||
543 | pyconfigure node ${GS}/pyconfigure/manual/html_node/ | ||
544 | |||
545 | R = http://cran.r-project.org/doc/manuals | ||
546 | R-intro mono ${R}/R-intro.html | ||
547 | R-lang mono ${R}/R-lang.html | ||
548 | R-exts mono ${R}/R-exts.html | ||
549 | R-data mono ${R}/R-data.html | ||
550 | R-admin mono ${R}/R-admin.html | ||
551 | R-ints mono ${R}/R-ints.html | ||
552 | |||
553 | rcs mono ${GS}/rcs/manual/rcs.html | ||
554 | rcs node ${GS}/rcs/manual/html_node/ | ||
555 | |||
556 | READLINE = http://cnswww.cns.cwru.edu/php/chet/readline | ||
557 | readline mono ${READLINE}/readline.html | ||
558 | rluserman mono ${READLINE}/rluserman.html | ||
559 | history mono ${READLINE}/history.html | ||
560 | |||
561 | recode mono http://recode.progiciels-bpi.ca/manual/index.html | ||
562 | |||
563 | recutils mono ${GS}/recutils/manual/recutils.html | ||
564 | recutils node ${GS}/recutils/manual/html_node/ | ||
565 | |||
566 | reftex mono ${GS}/auctex/manual/reftex.html | ||
567 | reftex node ${GS}/auctex/manual/reftex/ | ||
568 | |||
569 | remotecontrol mono ${GS}/remotecontrol/manual/remotecontrol.html | ||
570 | remotecontrol node ${GS}/remotecontrol/manual/html_node/ | ||
571 | |||
572 | rottlog mono ${GS}/rottlog/manual/rottlog.html | ||
573 | rottlog node ${GS}/rottlog/manual/html_node/ | ||
574 | |||
575 | RUSH = http://www.gnu.org.ua/software/rush/manual | ||
576 | rush mono ${RUSH}/rush.html | ||
577 | rush chapter ${RUSH}/html_chapter/ | ||
578 | rush section ${RUSH}/html_section/ | ||
579 | rush node ${RUSH}/html_node/ | ||
580 | |||
581 | screen mono ${GS}/screen/manual/screen.html | ||
582 | screen node ${GS}/screen/manual/html_node/ | ||
583 | |||
584 | sed mono ${GS}/sed/manual/sed.html | ||
585 | sed node ${GS}/sed/manual/html_node/ | ||
586 | |||
587 | sharutils mono ${GS}/sharutils/manual/html_mono/sharutils.html | ||
588 | sharutils chapter ${GS}/sharutils/manual/html_chapter/ | ||
589 | sharutils node ${GS}/sharutils/manual/html_node/ | ||
590 | |||
591 | shepherd mono ${GS}/shepherd/manual/shepherd.html | ||
592 | shepherd node ${GS}/shepherd/manual/html_node/ | ||
593 | |||
594 | # can't use mono files since they have generic names | ||
595 | SMALLTALK = ${GS}/smalltalk | ||
596 | smalltalk node ${SMALLTALK}/manual/html_node/ | ||
597 | smalltalk-base node ${SMALLTALK}/manual-base/html_node/ | ||
598 | smalltalk-libs node ${SMALLTALK}/manual-libs/html_node/ | ||
599 | |||
600 | sourceinstall mono ${GS}/sourceinstall/manual/sourceinstall.html | ||
601 | sourceinstall node ${GS}/sourceinstall/manual/html_node/ | ||
602 | |||
603 | sqltutor mono ${GS}/sqltutor/manual/sqltutor.html | ||
604 | sqltutor node ${GS}/sqltutor/manual/html_node/ | ||
605 | |||
606 | src-highlite mono ${GS}/src-highlite/source-highlight.html | ||
607 | |||
608 | swbis mono ${GS}/swbis/manual.html | ||
609 | |||
610 | tar mono ${GS}/tar/manual/tar.html | ||
611 | tar chapter ${GS}/tar/manual/html_chapter/ | ||
612 | tar section ${GS}/tar/manual/html_section/ | ||
613 | tar node ${GS}/autoconf/manual/html_node/ | ||
614 | |||
615 | teseq mono ${GS}/teseq/teseq.html | ||
616 | teseq node ${GS}/teseq/html_node/ | ||
617 | |||
618 | TEXINFO = ${GS}/texinfo/manual | ||
619 | texinfo mono ${TEXINFO}/texinfo/texinfo.html | ||
620 | texinfo node ${TEXINFO}/texinfo/html_node/ | ||
621 | # | ||
622 | info mono ${TEXINFO}/info/info.html | ||
623 | info node ${TEXINFO}/info/html_node/ | ||
624 | # | ||
625 | info-stnd mono ${TEXINFO}/info-stnd/info-stnd.html | ||
626 | info-stnd node ${TEXINFO}/info-stnd/html_node/ | ||
627 | |||
628 | thales node ${GS}/thales/manual/ | ||
629 | |||
630 | units mono ${GS}/units/manual/units.html | ||
631 | units node ${GS}/units/manual/html_node/ | ||
632 | |||
633 | vc-dwim mono ${GS}/vc-dwim/manual/vc-dwim.html | ||
634 | vc-dwim node ${GS}/vc-dwim/manual/html_node/ | ||
635 | |||
636 | wdiff mono ${GS}/wdiff/manual/wdiff.html | ||
637 | wdiff node ${GS}/wdiff/manual/html_node/ | ||
638 | |||
639 | websocket4j mono ${GS}/websocket4j/manual/websocket4j.html | ||
640 | websocket4j node ${GS}/websocket4j/manual/html_node/ | ||
641 | |||
642 | wget mono ${GS}/wget/manual/wget.html | ||
643 | wget node ${GS}/wget/manual/html_node/ | ||
644 | |||
645 | xboard mono ${GS}/xboard/manual/xboard.html | ||
646 | xboard node ${GS}/xboard/manual/html_node/ | ||
647 | |||
648 | # emacs-page | ||
649 | # Free TeX-related Texinfo manuals on tug.org. | ||
650 | |||
651 | T = http://tug.org/texinfohtml | ||
652 | |||
653 | dvipng mono ${T}/dvipng.html | ||
654 | dvips mono ${T}/dvips.html | ||
655 | eplain mono ${T}/eplain.html | ||
656 | kpathsea mono ${T}/kpathsea.html | ||
657 | latex2e mono ${T}/latex2e.html | ||
658 | tlbuild mono ${T}/tlbuild.html | ||
659 | web2c mono ${T}/web2c.html | ||
660 | |||
661 | |||
662 | # Local Variables: | ||
663 | # eval: (add-hook 'write-file-hooks 'time-stamp) | ||
664 | # time-stamp-start: "htmlxrefversion=" | ||
665 | # time-stamp-format: "%:y-%02m-%02d.%02H" | ||
666 | # time-stamp-time-zone: "UTC" | ||
667 | # time-stamp-end: "; # UTC" | ||
668 | # End: | ||
diff --git a/doc/index.html b/doc/index.html new file mode 100644 index 0000000..dced30b --- /dev/null +++ b/doc/index.html | |||
@@ -0,0 +1,34 @@ | |||
1 | <title>GNUnet - GNUnet Manuals and Handbooks</title> | ||
2 | <h2>GNUnet - GNUnet Manuals and Handbooks</h2> | ||
3 | |||
4 | <address>GNUnet e.V.</address> | ||
5 | <address>Fakultät für Informatik -- I8</address> | ||
6 | <address>Technische Universität München</address> | ||
7 | <address>Boltzmannstraße 3</address> | ||
8 | <address>85748 Garching</address> | ||
9 | <address>GERMANY</address> | ||
10 | |||
11 | <p>The following handbooks and manuals are available:</p> | ||
12 | |||
13 | <ul> | ||
14 | <li><a href="gnunet-guile/index.html">GNUnet Guile Reference Manual</li> | ||
15 | </ul> | ||
16 | |||
17 | <div id="footer"> | ||
18 | <div class="unprintable"> | ||
19 | |||
20 | <p>Please send general FSF & GNU inquiries to | ||
21 | <a href="mailto:gnu@gnu.org"><gnu@gnu.org></a>. | ||
22 | There are also <a href="/contact/">other ways to contact</a> | ||
23 | the FSF. Broken links and other corrections or suggestions can be sent | ||
24 | to <a href="mailto:gnunet-developers@gnu.org"><gnunet-developers@gnu.org></a>.</p> | ||
25 | </div> | ||
26 | |||
27 | <p>Copyright © 2001 - 2017 GNUnet e.V.</p> | ||
28 | |||
29 | <p>This page is licensed under a FIXME License.</p> | ||
30 | |||
31 | </div> | ||
32 | </div> | ||
33 | </body> | ||
34 | </html> | ||
diff --git a/doc/run-gendocs.sh b/doc/run-gendocs.sh new file mode 100755 index 0000000..e4976bd --- /dev/null +++ b/doc/run-gendocs.sh | |||
@@ -0,0 +1,6 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | make version.texi | ||
4 | ./gendocs.sh --email gnunet-developers@gnu.org gnunet-guile "GNUnet Guile Reference Manual" -o "manual/gnunet-guile" | ||
5 | cp "index.html" manual/ | ||
6 | printf "Success" | ||
diff --git a/download.scm b/download.scm new file mode 100644 index 0000000..6870463 --- /dev/null +++ b/download.scm | |||
@@ -0,0 +1,21 @@ | |||
1 | (define-module (download)) | ||
2 | |||
3 | (use-modules ((gnunet))) | ||
4 | |||
5 | |||
6 | (define %configuration (configuration-create)) | ||
7 | (configuration-load! %configuration "~/src/c/gnunet/p2/p2.conf") | ||
8 | |||
9 | (define %fs-handle #f) | ||
10 | (define %fs-download #f) | ||
11 | |||
12 | (define (progress info) | ||
13 | (pk (fs-progress-info-status info))) | ||
14 | |||
15 | (scheduler-run | ||
16 | (lambda () | ||
17 | (set! %fs-handle (fs-start %configuration "guile-gnunet" progress)) | ||
18 | (set! %fs-download (fs-download-start %fs-handle | ||
19 | (string->uri "gnunet://fs/chk/VEY0C80H6F1PSCNYBS0WSBVN95RXBV85SV2TNJP6V4A660YRNEGCCVZWCJV575R62M9P3W8DBNNZ5HST1DWNA1SSF01BB4JGK064438.A4X3ME6MQ10Q5YVX248GM9SXQYT36B0M241R0CBCR2SW44ZHX3BJ4NPXMN297R3H00VEEQZ04JVBAB236RXJB7JA1FZFNJ89A9GJQRG.42957") | ||
20 | 0 | ||
21 | #:filename "/tmp/out.jpg")))) | ||
diff --git a/gnunet.scm b/gnunet.scm new file mode 100644 index 0000000..1c09ad6 --- /dev/null +++ b/gnunet.scm | |||
@@ -0,0 +1,480 @@ | |||
1 | ;;;; -*- mode: Scheme; indent-tabs-mode: nil; fill-column: 80; -*- | ||
2 | ;;;; | ||
3 | ;;;; Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net> | ||
4 | ;;;; | ||
5 | ;;;; This program is free software: you can redistribute it and/or modify | ||
6 | ;;;; it under the terms of the GNU General Public License as published by | ||
7 | ;;;; the Free Software Foundation, either version 3 of the License, or | ||
8 | ;;;; (at your option) any later version. | ||
9 | ;;;; | ||
10 | ;;;; This program is distributed in the hope that it will be useful, | ||
11 | ;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | ;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | ;;;; GNU General Public License for more details. | ||
14 | ;;;; | ||
15 | ;;;; You should have received a copy of the GNU General Public License | ||
16 | ;;;; along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
17 | (define-module (gnunet)) | ||
18 | |||
19 | (use-modules ((system foreign) #:prefix ffi:)) | ||
20 | (use-modules ((bytestructures guile))) | ||
21 | |||
22 | (use-modules (gnunet config)) | ||
23 | |||
24 | |||
25 | (define* (dynamic-link* #:optional library-name) | ||
26 | (let ((shared-object (if library-name (dynamic-link library-name) (dynamic-link)))) | ||
27 | (lambda (return-value function-name . arguments) | ||
28 | (let ((function (dynamic-func function-name shared-object))) | ||
29 | (ffi:pointer->procedure return-value function arguments))))) | ||
30 | |||
31 | ;; FIXME: this MUST NOT be public, expose exceptions instead | ||
32 | (define-public %gnunet-ok 1) | ||
33 | (define-public %gnunet-system-error -1) | ||
34 | (define-public %gnunet-yes 1) | ||
35 | (define-public %gnunet-no 0) | ||
36 | |||
37 | (define (check value . message) | ||
38 | "Throw a 'gnunet-error if value is not %gnunet-ok aka. 1" | ||
39 | (unless (eq? value %gnunet-ok) | ||
40 | (throw 'gnunet-error message))) | ||
41 | |||
42 | (define (check2 value . message) | ||
43 | "If value is a %null-pointer throw a 'gnunet-error. Return the value | ||
44 | otherwise" | ||
45 | (if (eq? value ffi:%null-pointer) | ||
46 | (throw 'gnunet-error message) | ||
47 | value)) | ||
48 | |||
49 | ;; bytestructures helper | ||
50 | |||
51 | (define (pointer->bytestructure desc pointer) | ||
52 | (let ((size (bytestructure-descriptor-size desc))) | ||
53 | (let ((bv (ffi:pointer->bytevector pointer size))) | ||
54 | (make-bytestructure bv 0 desc)))) | ||
55 | |||
56 | ;;; gnunet-util bindings, gnunet_util_lib.h | ||
57 | |||
58 | (define util (dynamic-link* %libgnunet-util)) | ||
59 | |||
60 | ;; common | ||
61 | |||
62 | (define-public %scheduler-priority-keep 0) | ||
63 | (define-public %scheduler-priority-idle 1) | ||
64 | (define-public %scheduler-priority-background 2) | ||
65 | (define-public %scheduler-priority-default 3) | ||
66 | (define-public %scheduler-priority-high 4) | ||
67 | (define-public %scheduler-priority-ui 5) | ||
68 | (define-public %scheduler-priority-urgent 6) | ||
69 | (define-public %scheduler-priority-shutdown 7) | ||
70 | ;; (define-public %scheduler-priority-count 8) | ||
71 | |||
72 | ;; configuration | ||
73 | |||
74 | (define-public configuration-create | ||
75 | (let ((func (util '* "GNUNET_CONFIGURATION_create"))) | ||
76 | (lambda () | ||
77 | "Create a new configuration object" | ||
78 | (func)))) | ||
79 | |||
80 | (define-public configuration-destroy! | ||
81 | (let ((func (util ffi:void "GNUNET_CONFIGURATION_destroy" '*))) | ||
82 | (lambda (configuration) | ||
83 | "Destroy configuration object" | ||
84 | (func configuration)))) | ||
85 | |||
86 | (define-public configuration-load! | ||
87 | (let ((func (util ffi:int "GNUNET_CONFIGURATION_load" '* '*))) | ||
88 | (lambda (configuration filename) | ||
89 | "Load configuration. This function will first parse the defaults | ||
90 | and then parse the specific configuration file to overwrite the | ||
91 | defaults." | ||
92 | (check (func configuration (ffi:string->pointer filename)) | ||
93 | (format #f "Impossible to load configuration at ~a" filename))))) | ||
94 | |||
95 | ;; crypto, gnunet_crypto_lib.h | ||
96 | |||
97 | (define %crypto-ecdsa-public-key (bs:struct `((q-y ,(bs:vector (/ 256 8) uint8))))) | ||
98 | |||
99 | ;; scheduler | ||
100 | |||
101 | (define-public %scheduler-reason-none 0) | ||
102 | (define-public %scheduler-reason-startup 1) | ||
103 | (define-public %scheduler-reason-shutdown 2) | ||
104 | (define-public %scheduler-reason-timeout 4) | ||
105 | (define-public %scheduler-reason-read-ready 8) | ||
106 | (define-public %scheduler-reason-write-ready 16) | ||
107 | (define-public %scheduler-reason-prereq-done 32) | ||
108 | |||
109 | (define-public %scheduler-event-type-none 0) | ||
110 | (define-public %scheduler-event-type-in 1) | ||
111 | (define-public %scheduler-event-type-out 2) | ||
112 | (define-public %scheduler-event-type-hup 4) | ||
113 | (define-public %scheduler-event-type-error 8) | ||
114 | (define-public %scheduler-event-type-priority 16) | ||
115 | (define-public %scheduler-event-type-nval 32) | ||
116 | |||
117 | (define-public scheduler-run | ||
118 | (let ((func (util ffi:void "GNUNET_SCHEDULER_run" '* '*))) | ||
119 | (lambda (thunk) | ||
120 | "Initialize and run scheduler. This procedure will return when | ||
121 | all tasks have completed. On systems with signals, receiving a | ||
122 | SIGTERM (and other similar signals) will cause | ||
123 | #GNUNET_SCHEDULER_shutdown to be run after the active task is | ||
124 | complete. As a result, SIGTERM causes all shutdown tasks to be | ||
125 | scheduled with reason #GNUNET_SCHEDULER_REASON_SHUTDOWN. (However, | ||
126 | tasks added afterwards will execute normally!). Note that any | ||
127 | particular signal will only shut down one scheduler; applications | ||
128 | should always only create a single scheduler. | ||
129 | |||
130 | THUNK is task to run first (and immediately)" | ||
131 | (func (ffi:procedure->pointer ffi:void thunk '()) ffi:%null-pointer)))) | ||
132 | |||
133 | (define-public scheduler-add-with-reason-and-priority | ||
134 | (let ((func (util ffi:void | ||
135 | "GNUNET_SCHEDULER_add_with_reason_and_priority" | ||
136 | '* | ||
137 | '* | ||
138 | ffi:int | ||
139 | ffi:int))) | ||
140 | (lambda (thunk reason priority) | ||
141 | "Continue the current execution with the given function." | ||
142 | (func (ffi:procedure->pointer ffi:void thunk '()) | ||
143 | ffi:%null-pointer | ||
144 | reason | ||
145 | priority)))) | ||
146 | |||
147 | (define-public scheduler-add-shutdown | ||
148 | (let ((func (util '* "GNUNET_SCHEDULER_shutdown" '* '*))) | ||
149 | (lambda (thunk) | ||
150 | "Schedule a new task to be run on shutdown, that is when a | ||
151 | CTRL-C signal is received, or when #GNUNET_SCHEDULER_shutdown() is | ||
152 | being invoked. | ||
153 | |||
154 | Return unique task identifier for the job, valid until THUNK is | ||
155 | started." | ||
156 | (func (ffi:procedure->pointer ffi:void thunk '()))))) | ||
157 | |||
158 | ;; time | ||
159 | |||
160 | (define %time-absolute (bs:struct `((abs-value-us ,uint64)))) | ||
161 | |||
162 | (define %time-relative (bs:struct `((rel-value-us ,uint64)))) | ||
163 | |||
164 | (define-public time-absolute-get | ||
165 | (let ((func (util ffi:uint64 "GNUNET_TIME_absolute_get"))) | ||
166 | (lambda () | ||
167 | "Return the current time in microseconds" | ||
168 | (func)))) | ||
169 | |||
170 | ;;; gnunet-fs bindings | ||
171 | |||
172 | (define fs (dynamic-link* %libgnunet-fs)) | ||
173 | |||
174 | ;; uri | ||
175 | |||
176 | (define-public string->uri | ||
177 | (let ((func (fs '* "GNUNET_FS_uri_parse" '* '*))) | ||
178 | (lambda (string) | ||
179 | (func (ffi:string->pointer string) ffi:%null-pointer)))) | ||
180 | |||
181 | (define-public uri-destroy | ||
182 | (let ((func (fs ffi:void "GNUNET_FS_uri_destroy" '*))) | ||
183 | (lambda (uri) | ||
184 | "Destroy uri" | ||
185 | (func uri)))) | ||
186 | |||
187 | (define-public uri-chk-get-file-size | ||
188 | (let ((func (fs ffi:uint64 "GNUNET_FS_uri_chk_get_file_size" '*))) | ||
189 | (lambda (uri) | ||
190 | "Size of file URI refers to" | ||
191 | (func uri)))) | ||
192 | |||
193 | ;; other fs stuff | ||
194 | |||
195 | (define %fs-options-end 0) | ||
196 | (define %fs-options-download-parallelism 1) | ||
197 | (define %fs-options-request-parallelism 2) | ||
198 | |||
199 | (define-public %fs-flags-none 0) | ||
200 | (define-public %fs-flags-persistence 1) | ||
201 | (define-public %fs-flags-do-probes 2) | ||
202 | |||
203 | (define-public %fs-status-publish-start 0) | ||
204 | (define-public %fs-status-publish-resume 1) | ||
205 | (define-public %fs-status-publish-suspend 2) | ||
206 | (define-public %fs-status-publish-progress 3) | ||
207 | (define-public %fs-status-publish-error 4) | ||
208 | (define-public %fs-status-publish-completed 5) | ||
209 | (define-public %fs-status-publish-stopped 6) | ||
210 | (define-public %fs-status-download-start 7) | ||
211 | (define-public %fs-status-download-resume 8) | ||
212 | (define-public %fs-status-download-suspend 9) | ||
213 | (define-public %fs-status-download-progress 10) | ||
214 | (define-public %fs-status-download-error 11) | ||
215 | (define-public %fs-status-download-completed 12) | ||
216 | (define-public %fs-status-download-stopped 13) | ||
217 | (define-public %fs-status-download-active 14) | ||
218 | (define-public %fs-status-download-inactive 15) | ||
219 | (define-public %fs-status-download-lost-parent 16) | ||
220 | (define-public %fs-status-search-start 17) | ||
221 | (define-public %fs-status-search-resume 18) | ||
222 | (define-public %fs-status-search-resume-result 19) | ||
223 | (define-public %fs-status-search-suspend 20) | ||
224 | (define-public %fs-status-search-result 21) | ||
225 | (define-public %fs-status-search-result-namespace 22) | ||
226 | (define-public %fs-status-search-update 23) | ||
227 | (define-public %fs-status-search-error 24) | ||
228 | (define-public %fs-status-search-pause 25) | ||
229 | (define-public %fs-status-search-continued 26) | ||
230 | (define-public %fs-status-search-result-stopped 27) | ||
231 | (define-public %fs-status-search-result-suspend 28) | ||
232 | (define-public %fs-status-search-stopped 29) | ||
233 | (define-public %fs-status-unindex-start 30) | ||
234 | (define-public %fs-status-unindex-resume 31) | ||
235 | (define-public %fs-status-unindex-suspend 32) | ||
236 | (define-public %fs-status-unindex-progress 33) | ||
237 | (define-public %fs-status-unindex-error 34) | ||
238 | (define-public %fs-status-unindex-completed 35) | ||
239 | (define-public %fs-status-unindex-stopped 36) | ||
240 | (define-public %fs-status-publish-progress-directory 37) | ||
241 | |||
242 | ; progress info struct | ||
243 | |||
244 | (define %fs-progress-info-publish | ||
245 | (bs:struct | ||
246 | `((publish-context ,uintptr_t) | ||
247 | (file-information ,uintptr_t) | ||
248 | (client-context ,uintptr_t) | ||
249 | (parent-context ,uintptr_t) | ||
250 | (filename ,uintptr_t) | ||
251 | (size ,uint64) | ||
252 | (eta ,%time-relative) | ||
253 | (duration ,%time-relative) | ||
254 | (completed ,uint64) | ||
255 | (anonymity ,uint32) | ||
256 | (specifics | ||
257 | ,(bs:union `((progress | ||
258 | ,(bs:struct `((data ,uintptr_t) | ||
259 | (offset ,uint64) | ||
260 | (data-length ,uint64) | ||
261 | (depth ,unsigned-int)))) | ||
262 | (progress-directory | ||
263 | ,(bs:struct `((completed ,uint64) | ||
264 | (total ,uint64) | ||
265 | (eta ,%time-relative)))) | ||
266 | (resume | ||
267 | ,(bs:struct `((message ,uintptr_t) | ||
268 | (chk-uri ,uintptr_t) | ||
269 | (sks-uri ,uintptr_t)))) | ||
270 | (completed | ||
271 | ,(bs:struct `((chk-uri ,uintptr_t) | ||
272 | (sks-uri ,uintptr_t)))) | ||
273 | (error | ||
274 | ,(bs:struct `((message ,uintptr_t)))))))))) | ||
275 | |||
276 | (define %fs-progress-info-download | ||
277 | (bs:struct | ||
278 | `((download-context ,uintptr_t) | ||
279 | (client-context ,uintptr_t) | ||
280 | (parent-context ,uintptr_t) | ||
281 | (search-context ,uintptr_t) | ||
282 | (uri ,uintptr_t) | ||
283 | (filename ,uintptr_t) | ||
284 | (size ,uint64) | ||
285 | (eta ,%time-relative) | ||
286 | (duration ,%time-relative) | ||
287 | (completed ,uint64) | ||
288 | (anonymity ,uint32) | ||
289 | (active? ,int) | ||
290 | (specifics | ||
291 | ,(bs:union `((progress | ||
292 | ,(bs:struct `((data ,uintptr_t) | ||
293 | (offset ,uint64) | ||
294 | (data-length ,uint64) | ||
295 | (block-download-duration ,%time-relative) | ||
296 | (depth ,unsigned-int) | ||
297 | (respect-offered ,uint32) | ||
298 | (number-of-transmissions ,uint32)))) | ||
299 | (start | ||
300 | ,(bs:struct `((meta ,uintptr_t)))) | ||
301 | (resume | ||
302 | ,(bs:struct `((meta ,uintptr_t) | ||
303 | (message ,uintptr_t)))) | ||
304 | (error | ||
305 | ,(bs:struct `((message ,uintptr_t)))))))))) | ||
306 | |||
307 | (define %fs-progress-info-search | ||
308 | (bs:struct | ||
309 | `((search-context ,uintptr_t) | ||
310 | (client-context ,uintptr_t) | ||
311 | (parent-context ,uintptr_t) | ||
312 | (query ,uintptr_t) | ||
313 | (duration ,%time-relative) | ||
314 | (anonymity ,uint32) | ||
315 | (specifics | ||
316 | ,(bs:union `((result | ||
317 | ,(bs:struct `((meta ,uintptr_t) | ||
318 | (uri ,uintptr_t) | ||
319 | (result ,uintptr_t) | ||
320 | (applicability-rank ,uint32)))) | ||
321 | (resume-result | ||
322 | ,(bs:struct `((meta ,uintptr_t) | ||
323 | (uri ,uintptr_t) | ||
324 | (result ,uintptr_t) | ||
325 | (availability-rank ,int32) | ||
326 | (availability-certainty ,uint32) | ||
327 | (applicability-rank ,uint32)))) | ||
328 | (update | ||
329 | ,(bs:struct `((client-context ,uintptr_t) | ||
330 | (meta ,uintptr_t) | ||
331 | (uri ,uintptr_t) | ||
332 | (availability-rank ,int32) | ||
333 | (availability-certainty ,uint32) | ||
334 | (applicability-rank ,uint32) | ||
335 | (current-probe-time ,%time-relative)))) | ||
336 | (result-suspend | ||
337 | ,(bs:struct `((client-context ,uintptr_t) | ||
338 | (meta ,uintptr_t) | ||
339 | (uri ,uintptr_t)))) | ||
340 | (result-stopped | ||
341 | ,(bs:struct `((client-context ,uintptr_t) | ||
342 | (meta ,uintptr_t) | ||
343 | (uri ,uintptr_t)))) | ||
344 | (resume | ||
345 | ,(bs:struct `((message ,uintptr_t) | ||
346 | (paused? ,int)))) | ||
347 | (error | ||
348 | ,(bs:struct `((message ,uintptr_t)))) | ||
349 | (result-namespace | ||
350 | ,(bs:struct `((name ,uintptr_t) | ||
351 | (root ,uintptr_t) | ||
352 | (meta ,uintptr_t) | ||
353 | (pseudonym ,%crypto-ecdsa-public-key)))))))))) | ||
354 | |||
355 | (define %fs-progress-info-unindex | ||
356 | (bs:struct | ||
357 | `((unindex-context ,uintptr_t) | ||
358 | (client-context ,uintptr_t) | ||
359 | (filename ,uintptr_t) | ||
360 | (size ,uint64) | ||
361 | (eta ,%time-relative) | ||
362 | (duration ,%time-relative) | ||
363 | (completed ,uint64) | ||
364 | (specifics | ||
365 | ,(bs:union `((progress | ||
366 | ,(bs:struct `((data ,uintptr_t) | ||
367 | (offset ,uint64) | ||
368 | (data-length ,uint64) | ||
369 | (depth ,unsigned-int)))) | ||
370 | (resume | ||
371 | ,(bs:struct `((message ,uintptr_t)))) | ||
372 | (error | ||
373 | ,(bs:struct `((message ,uintptr_t)))))))))) | ||
374 | |||
375 | (define-public %fs-progress-info | ||
376 | (bs:struct | ||
377 | `((value | ||
378 | ,(bs:union `((publish ,%fs-progress-info-publish) | ||
379 | (download ,%fs-progress-info-download) | ||
380 | (search ,%fs-progress-info-search) | ||
381 | (unindex ,%fs-progress-info-unindex)))) | ||
382 | (status ,int) | ||
383 | (handle ,uintptr_t)))) | ||
384 | |||
385 | (define-public (fs-progress-info-status info) | ||
386 | (bytestructure-ref info 'status)) | ||
387 | |||
388 | (define (progress-callback-wrapper callback) | ||
389 | (lambda (_ info) | ||
390 | (callback (pointer->bytestructure %fs-progress-info info)))) | ||
391 | |||
392 | (define (procedure->progress-callback callback) | ||
393 | (ffi:procedure->pointer ffi:void (progress-callback-wrapper callback) '(* *))) | ||
394 | |||
395 | (define-public fs-start | ||
396 | (let ((func (fs '* | ||
397 | "GNUNET_FS_start" | ||
398 | '* '* '* '* ffi:int ffi:int ffi:unsigned-int ffi:int ffi:unsigned-int ffi:int))) | ||
399 | (lambda* (configuration | ||
400 | client-name | ||
401 | progress-callback | ||
402 | #:key | ||
403 | (flags %fs-flags-none) | ||
404 | (download-parallelism 16) | ||
405 | (request-parallelism (* 10 1024))) | ||
406 | "Setup a connection to the file-sharing service. | ||
407 | |||
408 | Return a handle to the file-sharing service" | ||
409 | (let ((handle | ||
410 | (func configuration | ||
411 | (ffi:string->pointer client-name) | ||
412 | (procedure->progress-callback progress-callback) | ||
413 | ffi:%null-pointer ;; callback closure is null | ||
414 | ;; because guile can do it | ||
415 | flags | ||
416 | %fs-options-download-parallelism | ||
417 | download-parallelism | ||
418 | %fs-options-request-parallelism | ||
419 | request-parallelism | ||
420 | %fs-options-end | ||
421 | ))) | ||
422 | (check2 handle "Impossible to connect to file-sharing service."))))) | ||
423 | |||
424 | |||
425 | (define-public fs-stop | ||
426 | (let ((func (fs ffi:void "GNUNET_FS_stop" '*))) | ||
427 | (lambda (handle) | ||
428 | (func handle)))) | ||
429 | |||
430 | (define-public %fs-download-option-none 0) | ||
431 | (define-public %fs-download-option-loopback-only 1) | ||
432 | (define-public %fs-download-option-recursive 2) | ||
433 | (define-public %fs-download-no-temporaries 4) | ||
434 | (define-public %fs-download-is-probe (ash 1 31)) | ||
435 | |||
436 | (define-public fs-download-start | ||
437 | (let ((func (fs '* | ||
438 | "GNUNET_FS_download_start" | ||
439 | '* '* '* '* '* ffi:uint64 ffi:uint64 ffi:uint32 ffi:unsigned-int '* '*))) | ||
440 | (lambda* (handle | ||
441 | uri | ||
442 | anonymity | ||
443 | #:key | ||
444 | (meta #f) | ||
445 | (filename #f) | ||
446 | (tempname #f) | ||
447 | (offset 0) | ||
448 | (length (uri-chk-get-file-size uri)) | ||
449 | (options %fs-download-option-none) | ||
450 | (client-context #f) | ||
451 | (parent #f)) | ||
452 | "Download parts of a file. Note that this will store | ||
453 | the blocks at the respective offset in the given file. Also, the | ||
454 | download is still using the blocking of the underlying FS | ||
455 | encoding. As a result, the download may *write* outside of the | ||
456 | given boundaries (if offset and length do not match the 32k FS | ||
457 | block boundaries). | ||
458 | |||
459 | The given range can be used to focus a download towards a | ||
460 | particular portion of the file (optimization), not to strictly | ||
461 | limit the download to exactly those bytes. | ||
462 | |||
463 | HANDLE is the handle the file-sharing service. URI is the URI of the | ||
464 | file (determines what to download); CHK or LOC URI. ANONYMITY defines | ||
465 | the level of anonymity for the download." | ||
466 | (func handle | ||
467 | uri | ||
468 | (or meta ffi:%null-pointer) | ||
469 | (or (and filename (ffi:string->pointer filename)) ffi:%null-pointer) | ||
470 | (or (and tempname (ffi:string->pointer tempname)) ffi:%null-pointer) | ||
471 | offset | ||
472 | length | ||
473 | anonymity | ||
474 | options | ||
475 | (or client-context ffi:%null-pointer) | ||
476 | (or parent ffi:%null-pointer))))) | ||
477 | |||
478 | ;; gnunet-identity bindings | ||
479 | |||
480 | (define identity (dynamic-link* %libgnunet-identity)) | ||
diff --git a/gnunet/config.scm.in b/gnunet/config.scm.in new file mode 100644 index 0000000..791eba1 --- /dev/null +++ b/gnunet/config.scm.in | |||
@@ -0,0 +1,25 @@ | |||
1 | ;;;; -*- mode: Scheme; indent-tabs-mode: nil; fill-column: 80; -*- | ||
2 | ;;;; | ||
3 | ;;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> | ||
4 | ;;;; Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net> | ||
5 | ;;;; | ||
6 | ;;;; This program is free software: you can redistribute it and/or modify | ||
7 | ;;;; it under the terms of the GNU General Public License as published by | ||
8 | ;;;; the Free Software Foundation, either version 3 of the License, or | ||
9 | ;;;; (at your option) any later version. | ||
10 | ;;;; | ||
11 | ;;;; This program is distributed in the hope that it will be useful, | ||
12 | ;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | ;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | ;;;; GNU General Public License for more details. | ||
15 | ;;;; | ||
16 | ;;;; You should have received a copy of the GNU General Public License | ||
17 | ;;;; along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
18 | |||
19 | (define-module (gnunet config)) | ||
20 | |||
21 | (define-public %libgnunet-util "@GNUNETUTIL_LIBDIR@/libgnunetutil") | ||
22 | |||
23 | (define-public %libgnunet-fs "@GNUNETFS_LIBDIR@/libgnunetfs") | ||
24 | |||
25 | (define-public %libgnunet-identity "@GNUNETIDENTITY_LIBDIR@/libgnunetidentity") | ||
diff --git a/guix.scm b/guix.scm new file mode 100644 index 0000000..8d03f71 --- /dev/null +++ b/guix.scm | |||
@@ -0,0 +1,165 @@ | |||
1 | ;;; GNUnet-Guile --- Guile bindings for GNUnet. | ||
2 | ;;; Copyright @ 2017, 2018 ng0 <ng0@n0.is> | ||
3 | ;;; Copyright @ 2018 Amriouche Boubekki <amirouche@hypermove.net> | ||
4 | ;;; | ||
5 | ;;; This file is part of GNUnet-Guile. | ||
6 | ;;; | ||
7 | ;;; GNUnet-Guile is free software; you can redistribute it and/or modify it | ||
8 | ;;; under the terms of the GNU General Public License as published by | ||
9 | ;;; the Free Software Foundation; either version 3 of the License, or (at | ||
10 | ;;; your option) any later version. | ||
11 | ;;; | ||
12 | ;;; GNUnet-Guile is distributed in the hope that it will be useful, but | ||
13 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | ;;; GNU General Public License for more details. | ||
16 | ;;; | ||
17 | ;;; You should have received a copy of the GNU General Public License | ||
18 | ;;; along with GNUnet-Guile. If not, see <http://www.gnu.org/licenses/>. | ||
19 | |||
20 | (use-modules | ||
21 | (ice-9 popen) | ||
22 | (ice-9 match) | ||
23 | (ice-9 rdelim) | ||
24 | (guix packages) | ||
25 | (guix build-system gnu) | ||
26 | (guix gexp) | ||
27 | ((guix build utils) #:select (with-directory-excursion)) | ||
28 | (guix git-download) | ||
29 | (guix utils) ; current-source-directory | ||
30 | ;;(gnunet packages gnunet) ; the GUIX_PACKAGE_PATH in gnunet.git | ||
31 | (gnu packages) | ||
32 | (gnu packages aidc) | ||
33 | (gnu packages autotools) | ||
34 | (gnu packages backup) | ||
35 | (gnu packages base) | ||
36 | (gnu packages compression) | ||
37 | (gnu packages curl) | ||
38 | (gnu packages databases) | ||
39 | (gnu packages file) | ||
40 | (gnu packages gettext) | ||
41 | (gnu packages glib) | ||
42 | (gnu packages gnome) | ||
43 | (gnu packages gnunet) | ||
44 | (gnu packages gnupg) | ||
45 | (gnu packages gnuzilla) | ||
46 | (gnu packages groff) | ||
47 | (gnu packages gstreamer) | ||
48 | (gnu packages gtk) | ||
49 | (gnu packages guile) | ||
50 | (gnu packages image) | ||
51 | (gnu packages image-viewers) | ||
52 | (gnu packages libidn) | ||
53 | (gnu packages libunistring) | ||
54 | (gnu packages linux) | ||
55 | (gnu packages maths) | ||
56 | (gnu packages multiprecision) | ||
57 | (gnu packages ncurses) | ||
58 | (gnu packages perl) | ||
59 | (gnu packages pkg-config) | ||
60 | (gnu packages pulseaudio) | ||
61 | (gnu packages python) | ||
62 | (gnu packages tex) | ||
63 | (gnu packages texinfo) | ||
64 | (gnu packages tex) | ||
65 | (gnu packages tls) | ||
66 | (gnu packages upnp) | ||
67 | (gnu packages video) | ||
68 | (gnu packages web) | ||
69 | (gnu packages xiph) | ||
70 | ((guix licenses) #:prefix license:)) | ||
71 | |||
72 | ;; FIXME: Load this from GUIX_PACKAGE_PATH in gnunet.git -> HOW? | ||
73 | ;; Just the way it is commented throws an error. | ||
74 | ;; (define gnunetg-for-guile-gnunet | ||
75 | ;; (package | ||
76 | ;; (inherit gnunetg) | ||
77 | ;; (name "gnunetg-for-guile-gnunet"))) | ||
78 | |||
79 | ;; TEMP FIX until we have the problem fixed above. | ||
80 | ;; XXX: Bump this when gnunetg in gnunet.git is bumped! | ||
81 | (define gnunet-git | ||
82 | (let* ((commit "477e0dec4d6e9a51af2258611f45adea319ff6ae") | ||
83 | (revision "2")) | ||
84 | (package | ||
85 | (inherit gnunet) | ||
86 | (name "gnunet-git") | ||
87 | ;; TODO: use git-version | ||
88 | (version (string-append "0.10.1" "-" revision | ||
89 | "." (string-take commit 7))) | ||
90 | (source | ||
91 | (origin | ||
92 | (method git-fetch) | ||
93 | (uri (git-reference | ||
94 | (url "https://gnunet.org/git/gnunet.git") | ||
95 | (commit commit))) | ||
96 | (file-name (string-append name "-" version "-checkout")) | ||
97 | (sha256 | ||
98 | (base32 | ||
99 | "07p9j0z1ghd50m9g1x1fv94w4x2khli6wn8n2cbjcvycand4fpv5")))) | ||
100 | (build-system gnu-build-system) | ||
101 | (inputs | ||
102 | `(("glpk" ,glpk) | ||
103 | ("gnurl" ,gnurl) | ||
104 | ("gstreamer" ,gstreamer) | ||
105 | ("gst-plugins-base" ,gst-plugins-base) | ||
106 | ("gnutls/dane" ,gnutls/dane) ;Change to gnutls/dane once it is merged. | ||
107 | ("libextractor" ,libextractor) | ||
108 | ("libgcrypt" ,libgcrypt) | ||
109 | ("libidn" ,libidn) | ||
110 | ("libmicrohttpd" ,libmicrohttpd) | ||
111 | ("libltdl" ,libltdl) | ||
112 | ("libunistring" ,libunistring) | ||
113 | ("openssl" ,openssl) | ||
114 | ("opus" ,opus) | ||
115 | ("pulseaudio" ,pulseaudio) | ||
116 | ("sqlite" ,sqlite) | ||
117 | ("postgresql" ,postgresql) | ||
118 | ("mysql" ,mysql) | ||
119 | ("zlib" ,zlib) | ||
120 | ("perl" ,perl) | ||
121 | ("python-2" ,python-2) ; tests and gnunet-qr | ||
122 | ("jansson" ,jansson) | ||
123 | ("nss" ,nss) | ||
124 | ("glib" ,glib "bin") | ||
125 | ("gmp" ,gmp) | ||
126 | ("bluez" ,bluez) ; for optional bluetooth feature | ||
127 | ("glib" ,glib) | ||
128 | ;; TODO: figure out the right texlive parts. | ||
129 | ;;("texlive-minimal" ,texlive-minimal) | ||
130 | ("texlive" ,texlive) | ||
131 | ("miniupnpc" ,miniupnpc) | ||
132 | ("libogg" ,libogg))) | ||
133 | (native-inputs | ||
134 | `(("pkg-config" ,pkg-config) | ||
135 | ("autoconf" ,autoconf) | ||
136 | ("automake" ,automake) | ||
137 | ("gnu-gettext" ,gnu-gettext) | ||
138 | ("which" ,which) | ||
139 | ("texinfo" ,texinfo-5) ; Debian stable: 5.2 | ||
140 | ("libtool" ,libtool))) | ||
141 | (outputs '("out" "debug")) | ||
142 | (arguments | ||
143 | `(#:configure-flags | ||
144 | (list (string-append "--with-nssdir=" %output "/lib")) | ||
145 | ;; AFAIK not necessary, will also regulary lead to broken | ||
146 | ;; GNUnet builds (experimental is what it says) | ||
147 | ;; "--enable-experimental") | ||
148 | #:parallel-tests? #f ; parallel building is not functional | ||
149 | #:tests? #f ; FAIL: test_gnunet_statistics.py | ||
150 | #:phases | ||
151 | ;; swap check and install phases and set paths to installed bin | ||
152 | (modify-phases %standard-phases | ||
153 | (add-after 'unpack 'patch-bin-sh | ||
154 | (lambda _ | ||
155 | (substitute* "bootstrap" | ||
156 | (("contrib/pogen.sh") "sh contrib/pogen.sh")) | ||
157 | (for-each (lambda (f) (chmod f #o755)) | ||
158 | (find-files "po" "")) | ||
159 | #t)) | ||
160 | (add-after 'patch-bin-sh 'bootstrap | ||
161 | (lambda _ | ||
162 | (zero? (system* "sh" "bootstrap")))) | ||
163 | (delete 'check))))))) | ||
164 | |||
165 | gnunet-git | ||
diff --git a/pre-inst-env.in b/pre-inst-env.in new file mode 100644 index 0000000..20e77c5 --- /dev/null +++ b/pre-inst-env.in | |||
@@ -0,0 +1,39 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | # GNUnet-Guile --- Guile bindings for GNUnet. | ||
4 | # Copyright © 2015 Ludovic Courtès <ludo@gnu.org> | ||
5 | # | ||
6 | # This file is part of GNUnet-Guile. | ||
7 | # | ||
8 | # GNUnet-Guile is free software; you can redistribute it and/or modify it | ||
9 | # under the terms of the GNU General Public License as published by | ||
10 | # the Free Software Foundation; either version 3 of the License, or (at | ||
11 | # your option) any later version. | ||
12 | # | ||
13 | # GNUnet-Guile is distributed in the hope that it will be useful, but | ||
14 | # WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
16 | # GNU General Public License for more details. | ||
17 | # | ||
18 | # You should have received a copy of the GNU General Public License | ||
19 | # along with GNUnet-Guile. If not, see <http://www.gnu.org/licenses/>. | ||
20 | |||
21 | # Usage: ./pre-inst-env COMMAND ARG... | ||
22 | # | ||
23 | # Run COMMAND in a pre-installation environment. Typical use is | ||
24 | # "./pre-inst-env guile". | ||
25 | |||
26 | # By default we may end up with absolute directory names that contain '..', | ||
27 | # which get into $GUILE_LOAD_PATH, leading to '..' in the module file names | ||
28 | # recorded by Guile. To avoid that, make sure we get a real absolute | ||
29 | # directory name. Additionally, use '-P' to get the canonical directory name | ||
30 | # so that Guile's 'relative' %file-port-name-canonicalization can actually | ||
31 | # work (see <http://bugs.gnu.org/17935>.) | ||
32 | abs_top_srcdir="`cd "@abs_top_srcdir@" > /dev/null; pwd -P`" | ||
33 | abs_top_builddir="`cd "@abs_top_builddir@" > /dev/null; pwd -P`" | ||
34 | |||
35 | GUILE_LOAD_COMPILED_PATH="$abs_top_builddir${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH" | ||
36 | GUILE_LOAD_PATH="$abs_top_builddir:$abs_top_srcdir${GUILE_LOAD_PATH:+:}$GUILE_LOAD_PATH" | ||
37 | export GUILE_LOAD_COMPILED_PATH GUILE_LOAD_PATH | ||
38 | |||
39 | exec "$@" | ||