aboutsummaryrefslogtreecommitdiffstats
path: root/docbook/wsdg_src/WSDG_chapter_libraries.xml
blob: c5565c351e798bbcca3de089f7fae297dac47a6a (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
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
<!-- WSDG Chapter Libraries -->
<!-- $Id$ -->

<chapter id="ChapterLibraries">
  <title>Library Reference</title>
  
  <section id="ChLibIntro">
	<title>Introduction</title>
	<para>
	Several libraries are needed to build / run Wireshark. Most of the
	libraries are split 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 Wireshark
	</para>
	</listitem>
	</orderedlist>
	<tip><title>Tip!</title>
	<para>
	Win32: All required libraries for the MSVC
	generation are available at: 
	<ulink	url="http://anonsvn.wireshark.org/wireshark-win32-libs/trunk/packages/"/>,
	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 used to build it and of course the platform they were built 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 then install the binaries.
	</para>
	</section>

	<section id="ChLibsFormatWin32">
	<title>Win32: MSVC</title>
	<para>
	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="ChLibsFormatWin32Cygwin">
	<title>Win32: cygwin gcc</title>
	<para>
	Cygwin provides most of the required libraries (with file extension .a or .lib) 
	for Wireshark suitable for cygwin's gcc compiler.
	</para>
	</section>
  </section>
	
  <section id="ChLibsSetup">
	<title>Win32: Automated library download</title>
	<section id="ChLibsSetupInitial">
	<title>Initial 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 
	Wireshark sources (see <xref linkend="ChSrcObtain"/>).
	</para>
	</note>
	<para>
	By default the libraries will be downloaded and installed into 
	<filename>C:\wireshark-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 Wireshark,
	as described already in <xref linkend="ChToolsWin32Verify"/>.
	</para>
	<para>
	Then it will download the zipped libraries (together around 30MB!) from 
	the server location at: <ulink 
	url="http://anonsvn.wireshark.org/wireshark-win32-libs/trunk/packages/"/> 
	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, you might be connected 
	to the internet through a proxy/firewall. 
	In this case see the wget proxy comment in <xref linkend="ChToolsWget"/>.
	</para>
        </section>
	<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 
	<userinput>setup</userinput> target again, but that would require a download of every file again, 
	which isn't necessary.
	</para>
	<para>
	The following will bring your libraries up to date:
	</para>
	<itemizedlist>
	<listitem>
	<para>
	Update your Wireshark sources to the latest SVN files (see <xref 
	linkend="ChSrcObtain"/>), so the zip filenames in the setup target 
	of Makefile.nmake are in sync with the library zip files on the server.
	</para>
        </listitem>
	<listitem>
          <para>
            Execute the library setup command as described above.
	  </para>
          <para>
	<prompt>&gt;</prompt> <userinput>nmake -f Makefile.nmake setup</userinput>
	</para>
	<para>	
	Note that this command will automatically do a <userinput>clean-setup</userinput> which will
        remove all files previously unzipped from the downloaded files in your 
	WIRESHARK_LIBS library path (all the subdirs, e.g. 
	<filename>c:\wireshark-win32-libs\gtk+</filename>), 
	except for the zip files located at the toplevel, which are the files 
	downloaded the last time(s).
	</para>
	<para>
	Also note that as wget will download only the 
	missing (updated) 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 its dependent libraries are used to build Wireshark's GUI. 
	For a detailed description of the GTK libraries, see <xref 
	linkend="ChUIGTK"/>.
	</para>
	<para>
	All other libraries are dependent on the two libraries mentioned above, 
	you will typically not come in touch with these while doing Wireshark 
	development. 
	</para>
	<para>
	As the requirements for the GLib/GTK libraries have increased in the past, 
        the required additional libraries depend on the GLib/GTK versions you have. 
	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 aren't 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="ChLibsSMI">
	<title>SMI (optional)</title>
	<para>
	"Various tools relating to the SMI MIB Information"
	</para>
	
	<section id="ChLibsUnixSMI">
	<title>Unix</title>
	<para>
	If this library isn't already installed or available as a 
	package for your platform, you can get it at: 
	<ulink url="http://www.ibr.cs.tu-bs.de/projects/libsmi/"/>.
	</para>
	</section>

	<section id="ChLibsWin32SMI">
	<title>Win32 MSVC</title>
	<para>
	Wireshark uses the source libSMI distribution at 
	<ulink url="http://www.ibr.cs.tu-bs.de/projects/libsmi/"/>.
	libSMI is compiled using MSVC++ 6.0. It's stored in the libsmi zip archive at
	<ulink url="http://anonsvn.wireshark.org/wireshark-win32-libs/trunk/packages/"/>
	</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 or 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 or 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 or 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 or 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="ChLibsGNUTLS">
	<title>GnuTLS (optional)</title>
	<para>
	The "GNU Transport Layer Security Library" is used to dissect SSL and TLS 
	protocols (aka: HTTPS).
	</para>
	
	<section id="ChLibsUnixGNUTLS">
	<title>Unix</title>
	<para>
	If this library isn't already installed or available as a 
	package for your platform, you can get it at: 
	<ulink url="http://www.gnu.org/software/gnutls/download.html"/>.
	</para>
	</section>

	<section id="ChLibsWin32GNUTLS">
	<title>Win32 MSVC</title>
	<para>
	We roll our own version using: 
	<ulink url="http://josefsson.org/gnutls4win/"/>
	</para>
	</section>

  </section>

  <section id="ChLibsGcrypt">
	<title>Gcrypt (optional)</title>
	<para>
	The "Gcrypt Library" is Low-level encryption library and provides 
	support for many ciphers, such as DES, 3DES, AES, Blowfish, and others..
	</para>
	
	<section id="ChLibsUnixGcrypt">
	<title>Unix</title>
	<para>
	If this library isn't already installed or available as a 
	package for your platform, you can get it at: 
	<ulink url="http://directory.fsf.org/security/libgcrypt.html"/>.
	</para>
	</section>

	<section id="ChLibsWin32Gcrypt">
	<title>Win32 MSVC</title>
	<para>
	Part of our homemade GnuTLS package.
	</para>
	</section>

  </section>

  <section id="ChLibsKerberos">
	<title>Kerberos (optional)</title>
	<para>
	The Kerberos library is used to dissect Kerberos, sealed DCERPC and 
	secureLDAP protocols.
	</para>
	
	<section id="ChLibsUnixKerberos">
	<title>Unix</title>
	<para>
	If this library isn't already installed or available as a 
	package for your platform, you can get it at: 
	<ulink url="http://web.mit.edu/Kerberos/dist/"/>.
	</para>
	<para>
	XXX - Is it supported on *NIX at all?
	</para>
	</section>

	<section id="ChLibsWin32Kerberos">
	<title>Win32 MSVC</title>
	<para>
	You can get the latest version of KfW "Kerberos for Windows" at: 
	<ulink url="http://web.mit.edu/Kerberos/dist/"/>
	</para>
	</section>

  </section>

  <section id="ChLibsLua">
	<title>LUA (optional)</title>
	<para>
	The LUA library is used to add scripting support to Wireshark.
	</para>
	
	<section id="ChLibsUnixLua">
	<title>Unix</title>
	<para>
	If this library isn't already installed or available as a 
	package for your platform, you can get it at: 
	<ulink url="http://www.lua.org/download.html"/>.
	</para>
	</section>

	<section id="ChLibsWin32Lua">
	<title>Win32 MSVC</title>
	<para>
	You can get the latest version at: 
	<ulink url="http://luaforge.net/frs/?group_id=110"/>
	</para>
	</section>

  </section>

  <section id="ChLibsPortAudio">
	<title>PortAudio (optional)</title>
	<para>
	The PortAudio library enables audio output for RTP streams.
	</para>
	
	<section id="ChLibsUnixPortAudio">
	<title>Unix</title>
	<para>
	If this library isn't already installed or available as a 
	package for your platform, you can get it at: 
	<ulink url="http://www.portaudio.com/download.html"/>.
	</para>
	</section>

	<section id="ChLibsWin32PortAudio">
	<title>Win32 MSVC</title>
	<para>
	You can get the latest version at: 
	<ulink url="http://www.portaudio.com/download.html"/>
	</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>
	GTK-Wimp can be used to get a native Look-and-Feel on WinXP machines, 
	especially with the "coloured" WinXP theme. It will only take effect
	together with the GTK2 version of Wireshark. 
	</para>
	<para>
	No changes to the Wireshark sources are needed, GTK-Wimp simply changes 
	the way GTK2 displays the widgets (by changing the GTK2 default theme).
	</para>
	<para>
	Wimp is available at: 
	<ulink url="http://gtk-wimp.sourceforge.net/"/>.
	</para>
	<para>
	Since GTK version 2.8 the GTK Wimp is included in the GTK releases where 
	it's called "GTK MS Windows Engine" now, so no need to download/install 
	it separately if these versions used.
	</para>

  </section>

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