aboutsummaryrefslogtreecommitdiffstats
path: root/docbook/edg_src/EDG_chapter_libraries.xml
blob: af9d95b6690416637346fac2663949e629338700 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
<!-- EDG Chapter Libraries -->
<!-- $Id$ -->

<chapter id="ChapterLibraries">
  <title>Libraries</title>
  
  <section id="ChLibIntro">
	<title>Introduction</title>
	<para>
	Several libraries are needed to build / run Ethereal. Most of the
	libraries are splitted into three packages:
	<orderedlist>
	<listitem>
	<para>
	Runtime package: binaries (e.g. win32 DLL's) and alike
	</para>
	</listitem>
	<listitem>
	<para>
	Developer package: documentation, header files and alike
	</para>
	</listitem>
	<listitem>
	<para>
	Source package: library sources, usually not required to
	build ethereal
	</para>
	</listitem>
	</orderedlist>
	<tip><title>Tip!</title>
	<para>
	Win32: All required libraries for the MSVC
	generation are available at: 
	<ulink	url="http://www.ethereal.com/distribution/win32/development/"/>,
	but see <xref linkend="ChLibsSetup"/> for an easier way to install the 
	libraries.
	</para>
	</tip>
	</para>
  </section>
	
  <section id="ChLibsFormat">
    <title>Binary library formats</title>
	<para>
	Binary libraries are available in different formats, depending on the C 
	compiler (see <xref linkend="ChToolsCompiler"/>) used to build it and of 
	course the platform they were build for.
	</para>
	
	<section id="ChLibsFormatUnix">
	<title>Unix</title>
	<para>
	If you have installed unix binary libraries on your system, they will 
	match the C compiler. If not already installed, the libraries should be
	available as a package from the platform installer, or you can download
	and compile the source and install that binaries then.
	</para>
	</section>

	<section id="ChLibsFormatWin32MSVC6">
	<title>Win32: MSVC V6</title>
	<para>
	Recommended for current Win32 Ethereal releases.
	Most of the Win32 binary libraries you will find on the web are in this
	format. You will recognize MSVC libraries by the .lib/.dll file extension.
	</para>
	</section>

	<section id="ChLibsFormatWin32MSVC2003">
	<title>Win32: MSVC 2003</title>
	<para>
	Currently not widely available, but the first libraries in that format can 
	be seen on the web. These libraries have the same .lib/.dll file 
	extension, but unfortunately they are not completely compatible as they 
	are linked with different dependant libraries, see <xref 
	linkend="ChToolsCompiler"/> for some further explanations.
	</para>
	</section>

	<section id="ChLibsFormatWin32Cygwin">
	<title>Win32: cygwin gcc</title>
	<para>
	Cygwin provides most of the required libraries (with file extension .a/.lib) 
	for Wireshark suitable for cygwin's gcc compiler.
	</para>
	</section>
  </section>
	
  <section id="ChLibsSetup">
	<title>Win32: Automated library download</title>
	<para>
	You can download/install all required libraries by using the setup target 
	of the <filename>Makefile.nmake</filename> from the source package.
	</para>
	<tip><title>Tip!</title>
	<para>
	It's a really good idea to use the Win32 automated library download to 
	install the required libraries as it makes this download very easy.
	</para>
	</tip>
	<note><title>Note!</title>
	<para>
	Before you start the download, you must have installed both
	the required tools (see <xref linkend="ChapterTools"/>) and also the 
	Ethereal sources (see <xref linkend="ChSrcObtain"/>).
	</para>
	</note>
	<para>
	By default the libraries will be downloaded and installed into 
	<filename>C:\ethereal-win32-libs</filename>.
	You can change this to any other location by editing the file
	<filename>config.nmake</filename> and changing the line containing 
	the WIRESHARK_LIBS setting to your favourite place (use an absolute path 
	here).
	</para>
	<para>
	Then enter at the command line:
	</para>
	<para>
	<prompt>&gt;</prompt> <userinput>nmake -f Makefile.nmake setup</userinput>
	</para>
	<para>
	This will first check for all the various tools needed to build Ethereal,
	as described already in <xref linkend="ChToolsWin32Verify"/>.
	</para>
	<para>
	Then it will download the zipped libraries into the directory specified by 
	WIRESHARK_LIBS and install (unzip) all required library files there.
	</para>
	<para>
	If you have problems downloading the library files, see the wget proxy 
	comment in <xref linkend="ChToolsWget"/>.
	</para>

	<section id="ChLibsSetupUpdate">
	<title>Update of a previous download</title>
	<para>
	As new versions of the libraries become available, maybe with bugfixes or
	some new functionality, your libraries get outdated.
	</para>
	<para>
	You could simply remove everything in the WIRESHARK_LIBS dir and call the 
	setup target again, but that would require to download every file again 
	(currently about 33MB), which isn't necessary.
	</para>
	<para>
	The following will bring your libraries up to date:
	</para>
	<itemizedlist>
	<listitem>
	<para>
	Update your Ethereal sources to the latest SVN files (see <xref 
	linkend="ChSrcObtain"/>), so the zip filenames in the setup target 
	of Makefile.nmake is in sync with the library zip files on the server.
	</para>
	</listitem>
	<listitem>
	<para>	
	Remove all files previously unzipped from the downloaded files in your 
	WIRESHARK_LIBS library path (all the subdirs, e.g. 
	<filename>c:\ethereal_libs\gtk+</filename>), 
	except for the zip files located at the toplevel, which are the files 
	downloaded the last time(s). You could do this, be entering at the command line:
	</para>
	<para>
	<prompt>&gt;</prompt> <userinput>nmake -f Makefile.nmake clean_setup</userinput>
	</para>
	</listitem>
	<listitem>
	<para>
	Start the setup target described above. As wget will download only the 
	missing files, existing zip files in the WIRESHARK_LIBS dir won't be 
	downloaded again. Remaining (outdated) zip files shouldn't do any harm.
	</para>
	</listitem>
	</itemizedlist>
	</section>
	
  </section>

  <section id="ChLibsGtk">
	<title>GTK+ / GLib / GDK / Pango / ATK / GNU gettext / GNU libiconv</title>
	<para>
	The Glib library is used as a basic platform abstraction library, it's 
	not related to graphical user interface (GUI) things. For a detailed 
	description about GLib, see <xref linkend="ChCodeGLib"/>.
	</para>
	<para>
	The GTK and it's dependant libraries are used to build Ethereal's GUI. 
	For a detailed description of the GTK libraries, see <xref 
	linkend="ChUIGTK"/>.
	</para>
	<para>
	All other libraries are dependant on the two libraries mentioned above, 
	you will typically not come in touch with these while doing Ethereal 
	development. 
	</para>
	<para>
	As the requirements for the GLib/GTK libraries increased in the past, it 
	depends on the GLib/GTK versions you have, which additional libraries are 
	required. The 1.x versions only needed GLib/GDK/GTK+, while the 2.x 
	versions require all mentioned libs.
	</para>

	<section id="ChLibsUnixGTK">
	<title>Unix</title>
	<para>
	The GLib/GTK+ libraries are available for many unix-like platforms and 
	cygwin.
	</para>
	<para>
	If these libraries aren't already installed and also not available as a 
	package for your platform, you can get them at: 
	<ulink url="http://www.gtk.org"/>.
	</para>
	</section>

	<section id="ChLibsWin32GTK">
	<title>Win32 MSVC</title>
	<para>
	You can get the latest version at: 
	<ulink url="http://www.gimp.org/%7Etml/gimp/win32/downloads.html"/>.
	</para>
	</section>
  </section>
  
  <section id="ChLibsSNMP">
	<title>Net SNMP (previously known as "ucd-snmp")</title>
	<para>
	"Various tools relating to the Simple Network Management Protocol"
	</para>
	
	<section id="ChLibsUnixSNMP">
	<title>Unix</title>
	<para>
	If this library isn't already installed and also not available as a 
	package for your platform, you can get it at: 
	<ulink url="http://sourceforge.net/projects/net-snmp/"/>.
	</para>
	</section>

	<section id="ChLibsWin32SNMP">
	<title>Win32 MSVC</title>
	<para>
	Ethereal uses the source Net-SNMP distribution at 
	<ulink url="http://sourceforge.net/projects/net-snmp/"/>.
	Then libsnmp is compiled with the "libsnmp - Win32 Release" project 
	using MSVC++ 6.0. A file called "README.ethereal" has been placed in the 
	net-snmp zip archive at <ulink 
	url="http://anonsvn.ethereal.com/ethereal-win32-libs/trunk/packages/"/>
	describing the changes in more detail.
	</para>
	</section>
		
  </section>
  

  <section id="ChLibsADNS">
	<title>GNU ADNS (optional)</title>
	<para>
	"Advanced, easy to use, asynchronous-capable DNS client library and
utilities."
	</para>
	
	<section id="ChLibsUnixADNS">
	<title>Unix</title>
	<para>
	If this library isn't already installed and also not available as a 
	package for your platform, you can get it at: 
	<ulink url="http://www.gnu.org/software/adns/"/>.
	</para>
	</section>

	<section id="ChLibsWin32ADNS">
	<title>Win32 MSVC</title>
	<para>
	You can get the latest version at: 
	<ulink url="http://adns.jgaa.com/"/>
	</para>
	</section>
	
  </section>
  

  <section id="ChLibsPCRE">
	<title>PCRE(optional)</title>
	<para>
	"Perl compatible regular expressions"
	</para>
	
	<section id="ChLibsUnixPCRE">
	<title>Unix</title>
	<para>
	If this library isn't already installed and also not available as a 
	package for your platform, you can get it at: 
	<ulink url="http://www.pcre.org/"/>.
	</para>
	</section>

	<section id="ChLibsWin32PCRE">
	<title>Win32 MSVC</title>
	<para>
	You can get the latest version at: 
	<ulink url="http://gnuwin32.sourceforge.net/packages/pcre.htm"/>
	</para>
	</section>
		
  </section>
  
  
  <section id="ChLibsZlib">
	<title>zlib (optional)</title>
	<para>
	"zlib is designed to be a 
	<ulink url="http://www.gzip.org/zlib/zlib_license.html">free</ulink>,
	general-purpose, legally unencumbered -- that is, not covered by any
	patents -- lossless data-compression library for use on virtually any computer
	hardware and operating system."
	</para>

	<section id="ChLibsUnixZlib">
	<title>Unix</title>
	<para>
	If this library isn't already installed and also not available as a 
	package for your platform, you can get it at: 
	<ulink url="http://www.gzip.org/zlib/"/>.
	</para>
	</section>

	<section id="ChLibsWin32Zlib">
	<title>Win32 MSVC</title>
	<para>
	You can get the latest version at: 
	<ulink url="http://gnuwin32.sourceforge.net/packages/zlib.htm"/>
	</para>
	<para>
	(A version for the MSVC2003 compiler can be found at:
	<ulink url="http://www.winimage.com/zLibDll/"/>)
	</para>
	</section>

  </section>
  
  
  <section id="ChLibsPcap">
	<title>libpcap/WinPcap (optional)</title>
	<para>
	"packet capture library"
	</para>
	
	<section id="ChLibsLibpcap">
	<title>Unix: libpcap</title>
	<para>
	If this library isn't already installed and also not available as a 
	package for your platform, you can get it at: 
	<ulink url="http://www.tcpdump.org/"/>.
	</para>
	</section>

	<section id="ChLibsWinpPcap">
	<title>Win32 MSVC: WinPcap</title>
	<para>
	You can get the "Windows packet capture library" at:
	<ulink url="http://www.winpcap.org/install/default.htm"/>
	</para>
	</section>

  </section>


  <section id="ChLibsWimp">
	<title>Win32: GTK WIMP (optional) for GTK 2.x only</title>
	<para>
	"GTK-Wimp ("Windows impersonator") is a GTK theme that blends well into
	the Windows desktop environment."
	</para>
	<para>
	Wimp is only available for the GTK2.x versions at: 
	<ulink url="http://gtk-wimp.sourceforge.net/"/>.
	</para>

  </section>

  
</chapter>
<!-- End of EDG Chapter Libraries -->