diff options
author | ng0 <ng0@infotropique.org> | 2017-10-21 15:45:29 +0000 |
---|---|---|
committer | ng0 <ng0@infotropique.org> | 2017-10-21 15:45:29 +0000 |
commit | f40c4ab2de20ec6a070b3c07a082633be10be80f (patch) | |
tree | 8f696b30743f4cf065f59e766a5f78bf564719ca | |
parent | f454f1fc042c42ee1dc87c7837b655a45ef327b5 (diff) | |
download | gnunet-f40c4ab2de20ec6a070b3c07a082633be10be80f.tar.gz gnunet-f40c4ab2de20ec6a070b3c07a082633be10be80f.zip |
doc changes
modified: contrib/packages/guix/gnunet-doc.scm
adapt to the changes in this mixed commit
modified: doc/.gitignore
add new files
modified: doc/Makefile.am
make use of canonical, included, rules
generate html output with docstyle.css from taler exchange.
modified: doc/chapters/installation.texi
new file: doc/chapters/vocabulary.texi
modified: doc/gnunet-c-tutorial.texi
modified: doc/gnunet.texi
new file: doc/docstyle.css
not really in use yet, but collected for later:
doc/gendocs.sh , doc/hacks.el
-rw-r--r-- | contrib/packages/guix/gnunet-doc.scm | 5 | ||||
-rw-r--r-- | doc/.gitignore | 8 | ||||
-rw-r--r-- | doc/Makefile.am | 81 | ||||
-rw-r--r-- | doc/chapters/installation.texi | 53 | ||||
-rw-r--r-- | doc/chapters/vocabulary.texi | 47 | ||||
-rw-r--r-- | doc/docstyle.css | 76 | ||||
-rw-r--r-- | doc/gendocs.sh | 504 | ||||
-rw-r--r-- | doc/gnunet-c-tutorial.texi | 53 | ||||
-rw-r--r-- | doc/gnunet.texi | 80 | ||||
-rw-r--r-- | doc/hacks.el | 17 |
10 files changed, 790 insertions, 134 deletions
diff --git a/contrib/packages/guix/gnunet-doc.scm b/contrib/packages/guix/gnunet-doc.scm index da714077f..98ab0ede7 100644 --- a/contrib/packages/guix/gnunet-doc.scm +++ b/contrib/packages/guix/gnunet-doc.scm | |||
@@ -144,7 +144,10 @@ | |||
144 | (replace 'build | 144 | (replace 'build |
145 | (lambda _ | 145 | (lambda _ |
146 | (chdir "doc") | 146 | (chdir "doc") |
147 | (zero? (system* "make" "doc-all-give-me-the-noise")))) | 147 | (zero? (system* "make" "pdf")) |
148 | (zero? (system* "make" "html")) | ||
149 | (zero? (system* "make" "info")))) | ||
150 | ;;(zero? (system* "make" "doc-all-give-me-the-noise")))) | ||
148 | (replace 'install | 151 | (replace 'install |
149 | (lambda _ | 152 | (lambda _ |
150 | (zero? (system* "make" "doc-all-install"))))))) | 153 | (zero? (system* "make" "doc-all-install"))))))) |
diff --git a/doc/.gitignore b/doc/.gitignore index 25617d1b0..f46d61e70 100644 --- a/doc/.gitignore +++ b/doc/.gitignore | |||
@@ -8,11 +8,13 @@ | |||
8 | *.html | 8 | *.html |
9 | *~ | 9 | *~ |
10 | *.info | 10 | *.info |
11 | *.info-1 | ||
12 | *.info-2 | ||
13 | *.info-3 | ||
11 | \#*\# | 14 | \#*\# |
12 | version.texi | 15 | version.texi |
13 | gnunet.info-1 | ||
14 | gnunet.info-2 | ||
15 | gnunet.info-3 | ||
16 | mdate-sh | 16 | mdate-sh |
17 | stamp-vti | 17 | stamp-vti |
18 | texinfo.tex | 18 | texinfo.tex |
19 | gnunet.t2p/ | ||
20 | gnunet-c-tutorial.t2p/ \ No newline at end of file | ||
diff --git a/doc/Makefile.am b/doc/Makefile.am index 74b1300b4..bb0c5e0bf 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am | |||
@@ -11,6 +11,8 @@ infoimagedir = $(infodir)/images | |||
11 | # $(DOT_FILES:%.dot=%.eps) \ | 11 | # $(DOT_FILES:%.dot=%.eps) \ |
12 | # $(DOT_FILES:%.dot=%.pdf) | 12 | # $(DOT_FILES:%.dot=%.pdf) |
13 | 13 | ||
14 | AM_MAKEINFOHTMLFLAGS = --no-split --css-ref=docstyle.css | ||
15 | |||
14 | dist_infoimage_DATA = \ | 16 | dist_infoimage_DATA = \ |
15 | images/gnunet-gtk-0-10-gns-a-done.png \ | 17 | images/gnunet-gtk-0-10-gns-a-done.png \ |
16 | images/gnunet-gtk-0-10-gns-a.png \ | 18 | images/gnunet-gtk-0-10-gns-a.png \ |
@@ -106,7 +108,7 @@ gnunet_tutorial_examples = \ | |||
106 | 026.c | 108 | 026.c |
107 | 109 | ||
108 | info_TEXINFOS = \ | 110 | info_TEXINFOS = \ |
109 | gnunet.texi \ | 111 | gnunet.texi \ |
110 | gnunet-c-tutorial.texi | 112 | gnunet-c-tutorial.texi |
111 | 113 | ||
112 | gnunet_TEXINFOS = \ | 114 | gnunet_TEXINFOS = \ |
@@ -114,6 +116,7 @@ gnunet_TEXINFOS = \ | |||
114 | chapters/installation.texi \ | 116 | chapters/installation.texi \ |
115 | chapters/philosophy.texi \ | 117 | chapters/philosophy.texi \ |
116 | chapters/user.texi \ | 118 | chapters/user.texi \ |
119 | chapters/vocabulary.texi \ | ||
117 | fdl-1.3.texi \ | 120 | fdl-1.3.texi \ |
118 | gpl-3.0.texi | 121 | gpl-3.0.texi |
119 | 122 | ||
@@ -122,7 +125,8 @@ EXTRA_DIST = \ | |||
122 | outdated-and-old-installation-instructions.txt \ | 125 | outdated-and-old-installation-instructions.txt \ |
123 | gnunet-c-tutorial-v1.pdf \ | 126 | gnunet-c-tutorial-v1.pdf \ |
124 | $(gnunet_tutorial_examples) \ | 127 | $(gnunet_tutorial_examples) \ |
125 | README.txt | 128 | README.txt \ |
129 | docstyle.css | ||
126 | 130 | ||
127 | 131 | ||
128 | # $(DOT_FILES) \ | 132 | # $(DOT_FILES) \ |
@@ -152,11 +156,11 @@ lego_stack.png: images/lego_stack.svg | |||
152 | pngcrush images/lego_stack.png images/lego_stack.png | 156 | pngcrush images/lego_stack.png images/lego_stack.png |
153 | 157 | ||
154 | # FIXME: The usage of 'date' strings causes a warning. | 158 | # FIXME: The usage of 'date' strings causes a warning. |
155 | version.texi: | 159 | # version.texi: |
156 | echo "@set UPDATED $(date +'%d %B %Y')" > $@ | 160 | # echo "@set UPDATED $(date +'%d %B %Y')" > $@ |
157 | echo "@set UPDATED-MONTH $(date +'%B %Y')" >> $@ | 161 | # echo "@set UPDATED-MONTH $(date +'%B %Y')" >> $@ |
158 | echo "@set EDITION $(PACKAGE_VERSION)" >> $@ | 162 | # echo "@set EDITION $(PACKAGE_VERSION)" >> $@ |
159 | echo "@set VERSION $(PACKAGE_VERSION)" >> $@ | 163 | # echo "@set VERSION $(PACKAGE_VERSION)" >> $@ |
160 | 164 | ||
161 | # Workaround for makeinfo error. Whcih in turn introduces more | 165 | # Workaround for makeinfo error. Whcih in turn introduces more |
162 | # date-related 'warnings'. Well. | 166 | # date-related 'warnings'. Well. |
@@ -166,45 +170,11 @@ version2.texi: | |||
166 | echo "@set EDITION $(PACKAGE_VERSION)" >> $@ | 170 | echo "@set EDITION $(PACKAGE_VERSION)" >> $@ |
167 | echo "@set VERSION $(PACKAGE_VERSION)" >> $@ | 171 | echo "@set VERSION $(PACKAGE_VERSION)" >> $@ |
168 | 172 | ||
169 | doc-pdf: version.texi | ||
170 | @makeinfo --pdf --quiet gnunet.texi | ||
171 | doc-pdf-tutorial: version.texi version2.texi | ||
172 | @makeinfo --pdf --quiet gnunet-c-tutorial.texi | ||
173 | |||
174 | doc-html: version.texi | ||
175 | @makeinfo --html gnunet.texi | ||
176 | doc-html-tutorial: version.texi version2.texi | ||
177 | @makeinfo --html gnunet-c-tutorial.texi | ||
178 | |||
179 | doc-info: version.texi | ||
180 | @makeinfo --no-split gnunet.texi | ||
181 | doc-info-tutorial: version.texi version2.texi | ||
182 | @makeinfo --no-split gnunet-c-tutorial.texi | ||
183 | |||
184 | # FIXME: rm *.html and *.pdf | 173 | # FIXME: rm *.html and *.pdf |
185 | doc-clean: | 174 | #doc-clean: |
186 | @rm *.aux *.log *.toc *.cp *.cps | 175 | # @rm *.aux *.log *.toc *.cp *.cps |
187 | |||
188 | doc-all: doc-pdf doc-html doc-info doc-pdf-tutorial doc-html-tutorial doc-info-tutorial | ||
189 | |||
190 | doc-pdf-noise: version.texi | ||
191 | @makeinfo --pdf gnunet.texi | ||
192 | doc-pdf-tutorial-noise: version.texi version2.texi | ||
193 | @makeinfo --pdf gnunet-c-tutorial.texi | ||
194 | |||
195 | doc-html-noise: version.texi | ||
196 | @makeinfo --html gnunet.texi | ||
197 | doc-html-tutorial-noise: version.texi version2.texi | ||
198 | @makeinfo --html gnunet-c-tutorial.texi | ||
199 | |||
200 | doc-info-noise: version.texi | ||
201 | @makeinfo --no-split gnunet.texi | ||
202 | doc-info-tutorial-noise: version.texi version2.texi | ||
203 | @makeinfo --no-split gnunet-c-tutorial.texi | ||
204 | |||
205 | doc-all-give-me-the-noise: doc-pdf-noise doc-html-noise doc-info-noise doc-pdf-tutorial-noise doc-html-tutorial-noise doc-info-tutorial-noise | ||
206 | 176 | ||
207 | doc-all-install: doc-all-give-me-the-noise | 177 | doc-all-install: |
208 | @mkdir -p $(DESTDIR)/$(docdir) | 178 | @mkdir -p $(DESTDIR)/$(docdir) |
209 | @mkdir -p $(DESTDIR)/$(infoimagedir) | 179 | @mkdir -p $(DESTDIR)/$(infoimagedir) |
210 | @mkdir -p $(DESTDIR)/$(infodir) | 180 | @mkdir -p $(DESTDIR)/$(infodir) |
@@ -212,17 +182,24 @@ doc-all-install: doc-all-give-me-the-noise | |||
212 | @install -m 0755 gnunet-c-tutorial.pdf $(DESTDIR)/$(docdir) | 182 | @install -m 0755 gnunet-c-tutorial.pdf $(DESTDIR)/$(docdir) |
213 | @install -m 0755 gnunet-c-tutorial.info $(DESTDIR)/$(infodir) | 183 | @install -m 0755 gnunet-c-tutorial.info $(DESTDIR)/$(infodir) |
214 | @install -m 0755 gnunet.info $(DESTDIR)/$(infodir) | 184 | @install -m 0755 gnunet.info $(DESTDIR)/$(infodir) |
215 | @cp -r gnunet $(DESTDIR)/$(docdir) | 185 | @install gnunet.html $(DESTDIR)/$(docdir) |
216 | @cp -r gnunet-c-tutorial $(DESTDIR)/$(docdir) | 186 | @install gnunet-c-tutorial.html $(DESTDIR)/$(docdir) |
217 | 187 | ||
218 | # @cp -r images $(DESTDIR)/$(infoimagedir) | 188 | # @cp -r images $(DESTDIR)/$(infoimagedir) |
219 | 189 | ||
220 | # TODO: Add more to clean. | 190 | # TODO: Add more to clean. |
221 | # clean: | 191 | clean: |
222 | # @rm gnunet.pdf | 192 | @rm gnunet.pdf |
223 | # @rm gnunet-c-tutorial.pdf | 193 | @rm gnunet.html |
224 | # @rm gnunet.info | 194 | @rm gnunet.info |
225 | # @rm gnunet-c-tutorial.info | 195 | @rm gnunet.info-1 |
196 | @rm gnunet.info-2 | ||
197 | @rm gnunet.info-3 | ||
198 | @rm gnunet-c-tutorial.pdf | ||
199 | @rm gnunet-c-tutorial.info | ||
200 | @rm gnunet-c-tutorial.html | ||
201 | @rm -r gnunet.t2p | ||
202 | @rm -r gnunet-c-tutorial.t2p | ||
226 | 203 | ||
227 | # CLEANFILES = \ | 204 | # CLEANFILES = \ |
228 | # gnunet.log \ | 205 | # gnunet.log \ |
@@ -232,7 +209,7 @@ doc-all-install: doc-all-give-me-the-noise | |||
232 | # $(wildcard *.cp) \ | 209 | # $(wildcard *.cp) \ |
233 | # $(wildcard *.cps) | 210 | # $(wildcard *.cps) |
234 | 211 | ||
235 | .PHONY: version.texi | 212 | #.PHONY: version.texi |
236 | # if HAVE_EXTENDED_DOCUMENTATION_BUILDING_PDF | 213 | # if HAVE_EXTENDED_DOCUMENTATION_BUILDING_PDF |
237 | 214 | ||
238 | # if HAVE_EXTENDED_DOCUMENTATION_BUILDING_HTML | 215 | # if HAVE_EXTENDED_DOCUMENTATION_BUILDING_HTML |
diff --git a/doc/chapters/installation.texi b/doc/chapters/installation.texi index c7f15f335..63ab98e6d 100644 --- a/doc/chapters/installation.texi +++ b/doc/chapters/installation.texi | |||
@@ -9,8 +9,6 @@ to interact with the network. | |||
9 | This manual is far from complete, and we welcome informed contributions, | 9 | This manual is far from complete, and we welcome informed contributions, |
10 | be it in the form of new chapters or insightful comments. | 10 | be it in the form of new chapters or insightful comments. |
11 | 11 | ||
12 | |||
13 | |||
14 | @menu | 12 | @menu |
15 | * Dependencies:: | 13 | * Dependencies:: |
16 | * Pre-installation notes:: | 14 | * Pre-installation notes:: |
@@ -34,8 +32,6 @@ This section lists the various known dependencies for | |||
34 | GNUnet @value{EDITION}. | 32 | GNUnet @value{EDITION}. |
35 | Suggestions for missing dependencies or wrong version numbers are welcome. | 33 | Suggestions for missing dependencies or wrong version numbers are welcome. |
36 | 34 | ||
37 | |||
38 | |||
39 | @menu | 35 | @menu |
40 | * External dependencies:: | 36 | * External dependencies:: |
41 | * Fixing libgnurl build issues:: | 37 | * Fixing libgnurl build issues:: |
@@ -51,17 +47,32 @@ These packages must be installed before a typical GNUnet installation | |||
51 | can be performed: | 47 | can be performed: |
52 | 48 | ||
53 | @itemize @bullet | 49 | @itemize @bullet |
54 | @item GNU libmicrohttpd 0.9.30 or higher@footnote{We recommend to build it | 50 | @item autoconf |
51 | @item automake | ||
52 | @item pkg-config | ||
53 | @item libltdl | ||
54 | @item gstreamer | ||
55 | @item gst-plugins-base | ||
56 | @item perl | ||
57 | @item python (only 2.7 supported)@footnote{tests and gnunet-qr} | ||
58 | @item jansson | ||
59 | @item nss | ||
60 | @item glib | ||
61 | @item gmp | ||
62 | @item bluez | ||
63 | @item miniupnpc | ||
64 | @item gettext | ||
65 | @item which | ||
66 | @item texinfo | ||
67 | @item GNU libmicrohttpd @geq{} 0.9.30 @footnote{We recommend to build it | ||
55 | with a GnuTLS version that was configured with libunbound ("DANE support")} | 68 | with a GnuTLS version that was configured with libunbound ("DANE support")} |
56 | @item GNU libextractor 1.0 or higher | 69 | @item GNU libextractor @geq{} 1.0 |
57 | @item GNU libtool 2.2 or higher | 70 | @item GNU libtool @geq{} 2.2 |
58 | @item GNU libunistring 0.9.1.1 or higher | 71 | @item GNU libunistring @geq{} 0.9.1.1 |
59 | @item GNU libidn 1.0.0 or higher | 72 | @item GNU libidn @geq{} 1.0.0 |
60 | @item @uref{https://gnupg.org/software/libgcrypt/, GNU libgcrypt} | 73 | @item @uref{https://gnupg.org/software/libgcrypt/, GNU libgcrypt} @geq{} |
61 | @uref{https://gnupg.org/ftp/gcrypt/libgcrypt/, 1.6.0} or higher | 74 | @uref{https://gnupg.org/ftp/gcrypt/libgcrypt/, 1.6.0} |
62 | @item @uref{https://gnutls.org/, GnuTLS}@footnote{We recommend to use a | 75 | @item @uref{https://gnutls.org/, GnuTLS} @geq{} 3.2.7 |
63 | GnuTLS version that was configured with libunbound ("DANE support")} | ||
64 | @uref{https://www.gnupg.org/ftp/gcrypt/gnutls/v3.2/, 3.2.7} or higher | ||
65 | @footnote{We recommend to compile with libunbound for DANE support; | 76 | @footnote{We recommend to compile with libunbound for DANE support; |
66 | GnuTLS also requires GNU nettle 2.7 (update: GnuTLS 3.2.7 appears NOT | 77 | GnuTLS also requires GNU nettle 2.7 (update: GnuTLS 3.2.7 appears NOT |
67 | to work against GNU nettle > 2.7, due to some API updatings done by | 78 | to work against GNU nettle > 2.7, due to some API updatings done by |
@@ -70,13 +81,13 @@ and, in case you get some error on the reference to `rpl_strerror' being | |||
70 | undefined, follow the instructions on | 81 | undefined, follow the instructions on |
71 | @uref{http://lists.gnupg.org/pipermail/gnutls-devel/2013-November/006588.html, this} | 82 | @uref{http://lists.gnupg.org/pipermail/gnutls-devel/2013-November/006588.html, this} |
72 | post (and the link inside it)).} | 83 | post (and the link inside it)).} |
73 | @item @uref{https://gnunet.org/gnurl, gnURL} libgnurl 7.34.0 or | 84 | @item @uref{https://gnunet.org/gnurl, gnURL} libgnurl @geq{} 7.34.0 |
74 | higher@footnote{must be compiled after @code{GnuTLS}} | 85 | @footnote{must be compiled after @code{GnuTLS}} |
75 | @item libglpk 4.45 or higher | 86 | @item libglpk @geq{} 4.45 |
76 | @item @uref{http://www.openssl.org/, OpenSSL} (binary) 1.0 or higher | 87 | @item @uref{http://www.openssl.org/, OpenSSL} @geq{} 1.0 |
77 | @item TeX Live 2012 or higher, optional (for gnunet-bcd) | 88 | @item TeX Live @geq{} 2012, optional (for gnunet-bcd) |
78 | @item Texinfo 5.2 or higher (for documentation) | 89 | @item Texinfo @geq{} 5.2 (for documentation) |
79 | @item libsqlite 3.8.0 or higher @footnote{(note that the code will | 90 | @item libsqlite @geq{} 3.8.0 @footnote{(note that the code will |
80 | compile and often work with lower version numbers, but you may get subtle | 91 | compile and often work with lower version numbers, but you may get subtle |
81 | bugs with respect to quota management in certain rare cases); | 92 | bugs with respect to quota management in certain rare cases); |
82 | alternatively, MySQL or Postgres can also be installed, but those | 93 | alternatively, MySQL or Postgres can also be installed, but those |
diff --git a/doc/chapters/vocabulary.texi b/doc/chapters/vocabulary.texi new file mode 100644 index 000000000..8b6cbe35a --- /dev/null +++ b/doc/chapters/vocabulary.texi | |||
@@ -0,0 +1,47 @@ | |||
1 | @node Vocabulary | ||
2 | @chapter Vocabulary | ||
3 | |||
4 | @menu | ||
5 | * Words and characters:: | ||
6 | * Technical Assumptions:: | ||
7 | @end menu | ||
8 | |||
9 | @node Words and characters | ||
10 | @section Words and characters | ||
11 | |||
12 | Throughout this document we use certain words and characters. | ||
13 | |||
14 | @enumerate | ||
15 | @item | ||
16 | ``@command{#}'' in example code blocks describes commands, ie comments. | ||
17 | |||
18 | @example | ||
19 | # Do the foobar thing: | ||
20 | $ make foobar | ||
21 | @end example | ||
22 | |||
23 | @item | ||
24 | Dollarsign ``@command{$}'' in example code blocks describes commands you | ||
25 | execute as unprivileged users. | ||
26 | |||
27 | @example | ||
28 | $ cd foo; ./configure --example-switch | ||
29 | @end example | ||
30 | |||
31 | @item | ||
32 | Backslash ``@command{\}'' describes linebreaks. | ||
33 | |||
34 | @example | ||
35 | ./configure --foo --bar --baz \ | ||
36 | --short-loop | ||
37 | @end example | ||
38 | |||
39 | ...expands to @code{./configure --foo --bar --baz --short-loop} | ||
40 | |||
41 | @end enumerate | ||
42 | |||
43 | @node Technical Assumptions | ||
44 | @section Technical Assumptions | ||
45 | |||
46 | @c Is it really assuming Bash (ie Bash extensions of POSIX being used)? | ||
47 | The shell on GNU systems is assumed to be Bash. | ||
diff --git a/doc/docstyle.css b/doc/docstyle.css new file mode 100644 index 000000000..8719248d0 --- /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/gendocs.sh b/doc/gendocs.sh new file mode 100644 index 000000000..3b71b36a2 --- /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/gnunet-c-tutorial.texi b/doc/gnunet-c-tutorial.texi index 87ae71e1e..69a4c6478 100644 --- a/doc/gnunet-c-tutorial.texi +++ b/doc/gnunet-c-tutorial.texi | |||
@@ -3,6 +3,7 @@ | |||
3 | @setfilename gnunet-c-tutorial.info | 3 | @setfilename gnunet-c-tutorial.info |
4 | @documentencoding UTF-8 | 4 | @documentencoding UTF-8 |
5 | @settitle GNUnet C Tutorial | 5 | @settitle GNUnet C Tutorial |
6 | @exampleindent 2 | ||
6 | @c %**end of header | 7 | @c %**end of header |
7 | 8 | ||
8 | @c including 'version.texi' makes makeinfo throw errors. | 9 | @c including 'version.texi' makes makeinfo throw errors. |
@@ -73,7 +74,6 @@ team: @uref{https://gnunet.org/contact_information} | |||
73 | 74 | ||
74 | @menu | 75 | @menu |
75 | 76 | ||
76 | * Vocabulary:: Vocabulary used throughout this document | ||
77 | * Installing GNUnet:: Installing GNUnet | 77 | * Installing GNUnet:: Installing GNUnet |
78 | * Introduction to GNUnet Architecture:: Introduction to GNUnet Architecture | 78 | * Introduction to GNUnet Architecture:: Introduction to GNUnet Architecture |
79 | * First Steps with GNUnet:: First Steps with GNUnet | 79 | * First Steps with GNUnet:: First Steps with GNUnet |
@@ -82,8 +82,6 @@ team: @uref{https://gnunet.org/contact_information} | |||
82 | @detailmenu | 82 | @detailmenu |
83 | --- The Detailed Node Listing --- | 83 | --- The Detailed Node Listing --- |
84 | 84 | ||
85 | Vocabulary | ||
86 | |||
87 | Installing GNUnet | 85 | Installing GNUnet |
88 | 86 | ||
89 | * Obtaining a stable version:: | 87 | * Obtaining a stable version:: |
@@ -116,55 +114,6 @@ Developing Applications | |||
116 | @end detailmenu | 114 | @end detailmenu |
117 | @end menu | 115 | @end menu |
118 | 116 | ||
119 | @node Vocabulary | ||
120 | @chapter Vocabulary | ||
121 | |||
122 | @menu | ||
123 | * Words and characters:: | ||
124 | * Technical Assumptions:: | ||
125 | @end menu | ||
126 | |||
127 | @node Words and characters | ||
128 | @section Words and characters | ||
129 | |||
130 | Throughout this document we use certain words and characters. | ||
131 | |||
132 | @enumerate | ||
133 | @item | ||
134 | @c ``@command{#}'' in example code blocks describes commands you execute as root. | ||
135 | ``@command{#}'' in example code blocks describes commands, ie comments. | ||
136 | |||
137 | @example | ||
138 | # Do the foobar thing: | ||
139 | $ make foobar | ||
140 | @end example | ||
141 | |||
142 | @item | ||
143 | Dollarsign ``@command{$}'' in example code blocks describes commands you execute as | ||
144 | unprivileged users. | ||
145 | |||
146 | @example | ||
147 | $ cd foo; ./configure --example-switch | ||
148 | @end example | ||
149 | |||
150 | @item | ||
151 | Backslash ``@command{\}'' describes linebreaks. | ||
152 | |||
153 | @example | ||
154 | ./configure --foo --bar --baz \ | ||
155 | --short-loop | ||
156 | @end example | ||
157 | |||
158 | ...expands to @code{./configure --foo --bar --baz --short-loop} | ||
159 | |||
160 | @end enumerate | ||
161 | |||
162 | @node Technical Assumptions | ||
163 | @section Technical Assumptions | ||
164 | |||
165 | @c Is it really assuming Bash (ie Bash extensions of POSIX being used)? | ||
166 | The shell on GNU systems is assumed to be Bash. | ||
167 | |||
168 | @node Installing GNUnet | 117 | @node Installing GNUnet |
169 | @chapter Installing GNUnet | 118 | @chapter Installing GNUnet |
170 | 119 | ||
diff --git a/doc/gnunet.texi b/doc/gnunet.texi index 035ade80e..cbceccbb3 100644 --- a/doc/gnunet.texi +++ b/doc/gnunet.texi | |||
@@ -5,6 +5,7 @@ | |||
5 | @setfilename gnunet.info | 5 | @setfilename gnunet.info |
6 | @documentencoding UTF-8 | 6 | @documentencoding UTF-8 |
7 | @settitle GNUnet Reference Manual | 7 | @settitle GNUnet Reference Manual |
8 | @exampleindent 2 | ||
8 | @c %**end of header | 9 | @c %**end of header |
9 | 10 | ||
10 | @include version.texi | 11 | @include version.texi |
@@ -58,11 +59,12 @@ Edition @value{EDITION} @* | |||
58 | @insertcopying | 59 | @insertcopying |
59 | @end titlepage | 60 | @end titlepage |
60 | 61 | ||
62 | @summarycontents | ||
61 | @contents | 63 | @contents |
62 | @c ********************************************************************* | 64 | |
63 | @node Top | 65 | @node Top |
64 | @top Contributing to GNUnet | 66 | @top Contributing to GNUnet |
65 | @c ********************************************************************* | 67 | |
66 | 68 | ||
67 | This document describes GNUnet version @value{VERSION}. | 69 | This document describes GNUnet version @value{VERSION}. |
68 | 70 | ||
@@ -105,6 +107,7 @@ in the respective authors file or section, please do let us know. | |||
105 | @menu | 107 | @menu |
106 | 108 | ||
107 | * Philosophy:: About GNUnet | 109 | * Philosophy:: About GNUnet |
110 | * Vocabulary:: Vocabulary | ||
108 | * GNUnet Installation Handbook:: How to install GNUnet | 111 | * GNUnet Installation Handbook:: How to install GNUnet |
109 | * Using GNUnet:: Using GNUnet | 112 | * Using GNUnet:: Using GNUnet |
110 | * GNUnet Developer Handbook:: Developing GNUnet | 113 | * GNUnet Developer Handbook:: Developing GNUnet |
@@ -134,10 +137,75 @@ Philosophy | |||
134 | * Backup of Identities and Egos:: | 137 | * Backup of Identities and Egos:: |
135 | * Revocation:: | 138 | * Revocation:: |
136 | 139 | ||
137 | Installation | 140 | Vocabulary |
141 | |||
142 | * Words and characters:: | ||
143 | * Technical Assumptions:: | ||
144 | |||
145 | GNUnet Installation Handbook | ||
138 | 146 | ||
139 | * Dependencies:: | 147 | * Dependencies:: |
140 | * External dependencies:: | 148 | * Pre-installation notes:: |
149 | * Generic installation instructions:: | ||
150 | * Build instructions for Ubuntu 12.04 using Git:: | ||
151 | * Build Instructions for Microsoft Windows Platforms:: | ||
152 | * Build instructions for Debian 7.5:: | ||
153 | * Installing GNUnet from Git on Ubuntu 14.4:: | ||
154 | * Build instructions for Debian 8:: | ||
155 | * Outdated build instructions for previous revisions:: | ||
156 | * Portable GNUnet:: | ||
157 | * The graphical configuration interface:: | ||
158 | * How to start and stop a GNUnet peer:: | ||
159 | |||
160 | Using GNUnet | ||
161 | |||
162 | * Checking the Installation:: | ||
163 | * First steps - File-sharing:: | ||
164 | * First steps - Using the GNU Name System:: | ||
165 | * First steps - Using GNUnet Conversation:: | ||
166 | * First steps - Using the GNUnet VPN:: | ||
167 | * File-sharing:: | ||
168 | * The GNU Name System:: | ||
169 | * Using the Virtual Public Network:: | ||
170 | |||
171 | GNUnet Developer Handbook | ||
172 | |||
173 | * Developer Introduction:: | ||
174 | * Code overview:: | ||
175 | * System Architecture:: | ||
176 | * Subsystem stability:: | ||
177 | * Naming conventions and coding style guide:: | ||
178 | * Build-system:: | ||
179 | * Developing extensions for GNUnet using the gnunet-ext template:: | ||
180 | * Writing testcases:: | ||
181 | * GNUnet's TESTING library:: | ||
182 | * Performance regression analysis with Gauger:: | ||
183 | * GNUnet's TESTBED Subsystem:: | ||
184 | * libgnunetutil:: | ||
185 | * The Automatic Restart Manager (ARM):: | ||
186 | * GNUnet's TRANSPORT Subsystem:: | ||
187 | * NAT library:: | ||
188 | * Distance-Vector plugin:: | ||
189 | * SMTP plugin:: | ||
190 | * Bluetooth plugin:: | ||
191 | * WLAN plugin:: | ||
192 | * The ATS Subsystem:: | ||
193 | * GNUnet's CORE Subsystem:: | ||
194 | * GNUnet's CADET subsystem:: | ||
195 | * GNUnet's NSE subsystem:: | ||
196 | * GNUnet's HOSTLIST subsystem:: | ||
197 | * GNUnet's IDENTITY subsystem:: | ||
198 | * GNUnet's NAMESTORE Subsystem:: | ||
199 | * GNUnet's PEERINFO subsystem:: | ||
200 | * GNUnet's PEERSTORE subsystem:: | ||
201 | * GNUnet's SET Subsystem:: | ||
202 | * GNUnet's STATISTICS subsystem:: | ||
203 | * GNUnet's Distributed Hash Table (DHT):: | ||
204 | * The GNU Name System (GNS):: | ||
205 | * The GNS Namecache:: | ||
206 | * The REVOCATION Subsystem:: | ||
207 | * GNUnet's File-sharing (FS) Subsystem:: | ||
208 | * GNUnet's REGEX Subsystem:: | ||
141 | 209 | ||
142 | @end detailmenu | 210 | @end detailmenu |
143 | @end menu | 211 | @end menu |
@@ -146,6 +214,8 @@ Installation | |||
146 | @include chapters/philosophy.texi | 214 | @include chapters/philosophy.texi |
147 | @c ********************************************************************* | 215 | @c ********************************************************************* |
148 | 216 | ||
217 | @include chapters/vocabulary.texi | ||
218 | |||
149 | @c ********************************************************************* | 219 | @c ********************************************************************* |
150 | @include chapters/installation.texi | 220 | @include chapters/installation.texi |
151 | @c ********************************************************************* | 221 | @c ********************************************************************* |
@@ -156,9 +226,9 @@ Installation | |||
156 | 226 | ||
157 | @c ********************************************************************* | 227 | @c ********************************************************************* |
158 | @include chapters/developer.texi | 228 | @include chapters/developer.texi |
229 | @c @include gnunet-c-tutorial.texi | ||
159 | @c ********************************************************************* | 230 | @c ********************************************************************* |
160 | 231 | ||
161 | |||
162 | @c ********************************************************************* | 232 | @c ********************************************************************* |
163 | @node GNU Free Documentation License | 233 | @node GNU Free Documentation License |
164 | @appendix GNU Free Documentation License | 234 | @appendix GNU Free Documentation License |
diff --git a/doc/hacks.el b/doc/hacks.el new file mode 100644 index 000000000..9f271b3af --- /dev/null +++ b/doc/hacks.el | |||
@@ -0,0 +1,17 @@ | |||
1 | ;;;; hacks.el --- a few functions to help me work on the manual | ||
2 | ;;;; Jim Blandy <jimb@red-bean.com> --- October 1998 | ||
3 | ;;;; -- imported from https://git.savannah.gnu.org/cgit/guile.git/tree/doc/hacks.el | ||
4 | |||
5 | (defun jh-exemplify-region (start end) | ||
6 | (interactive "r") | ||
7 | (save-excursion | ||
8 | (save-restriction | ||
9 | (narrow-to-region start end) | ||
10 | |||
11 | ;; Texinfo doesn't handle tabs well. | ||
12 | (untabify (point-min) (point-max)) | ||
13 | |||
14 | ;; Quote any characters special to texinfo. | ||
15 | (goto-char (point-min)) | ||
16 | (while (re-search-forward "[{}@]" nil t) | ||
17 | (replace-match "@\\&"))))) | ||