Commit Graph

927 Commits

Author SHA1 Message Date
Gerald Combs 50b4ff6db8 CMake: Create directories one at a time.
Older versions of CMake don't support passing multiple arguments to `-E
make_directory`.

Change-Id: I62f76753a0ec1a96849de3a1131869f08303dbfc
Reviewed-on: https://code.wireshark.org/review/25458
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2018-01-24 21:05:44 +00:00
Gerald Combs 7e37a7db55 CMake: Compile and link flag updates.
Add /guard:cf and /Qspectre to the Visual C++ 2015 compile and link flags.

Don't bother trying to pass -Wl,--as-needed or -pie to Visual C++.

Remove some unneeded quotes.

Change-Id: I4d89d61ce9dd579e7cfbcd49df6116810bfb0178
Reviewed-on: https://code.wireshark.org/review/25356
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-01-24 11:43:56 +00:00
Gerald Combs 99b7776d5f CMake: Copy multiple data files at a time.
Copy the DTD, DIAMETER, RADIUS, and profile files all at once instead of
individually.

Change-Id: I7c75c4a784956b998a82fd627dd17843820096ff
Reviewed-on: https://code.wireshark.org/review/25439
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-01-24 05:08:27 +00:00
Gerald Combs 064bec8797 CMake: File copy updates.
Switch from `xcopy`-ing single files to `cmake -E copy_if_different`-ing
multiple files on Windows. Add a comment about using copy_if_different
for our data files.

Switch from `cmake -E copy` to `cmake -E copy_if_different` in a couple
of other places.

Change-Id: I6bf72f02a66c46a4440280305479f41ffb4e987a
Reviewed-on: https://code.wireshark.org/review/25402
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Michael Mann <mmann78@netscape.net>
2018-01-21 13:14:52 +00:00
Jaap Keuter 2f759ce7a7 Update paths after dissector plugin move.
With the change in paths of the dissector plugins in the repository some
other paths require adjustment. These are the obvious changes remaining.

Change-Id: Id49ac6aaf1a29d9eb37f4c32226a4597d5e32edd
Signed-off-by: Jaap Keuter <jaap.keuter@xs4all.nl>
Reviewed-on: https://code.wireshark.org/review/25343
Reviewed-by: João Valverde <j@v6e.pt>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2018-01-16 19:02:28 +00:00
João Valverde 5352ef42f9 plugins: Add source tree subfolder for plugin library
This allows some simplification and makes things more consistent,
particularly for loading plugins from the build dir.

Also fixes the issue reported here:

https://www.wireshark.org/lists/wireshark-dev/201801/msg00061.html

Change-Id: I0d8a000ee679172bccad546a3b0c47a79486f44d
Reviewed-on: https://code.wireshark.org/review/25329
Petri-Dish: João Valverde <j@v6e.pt>
Reviewed-by: João Valverde <j@v6e.pt>
2018-01-16 08:51:37 +00:00
Gerald Combs 777932efc6 make-dissectors depends on copy_cli_dlls.
Have the make-dissectors CMake target explicitly depend on copy_cli_dlls,
otherwise we might try to create dissectors.c before libglib-2.0-0.dll
has been copied into place. It looks like this is what's been causing
our random Windows PD failures.

Change-Id: Ia2445f17abd2c73113ab269ba6c606f48e724d93
Reviewed-on: https://code.wireshark.org/review/25292
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2018-01-13 00:47:48 +00:00
Dario Lombardo e80b40adbe extcap: remove conditional compilation.
Change-Id: Ia54bba388755cf27a343fe6d69d244bf1ab897f9
Reviewed-on: https://code.wireshark.org/review/25186
Petri-Dish: Dario Lombardo <lomato@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Roland Knall <rknall@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-01-08 05:50:15 +00:00
Peter Wu f8b67cb931 Rename dissectors.c.in and fix CMake on removals
"dissectors.c.in" is an input file for "make-dissectors" which outputs
"dissectors.c", but does not contain C code. Rename it to
"dissectors.in.txt" instead.

When a dissector is removed from the list, the dissectors.c file was not
properly generated even if CMake was re-run. Fix this by adding an
additional dependency on the input file. autotools likely suffers from
the same problem with removed files, I have not tried to fix that.

Restore's João's original approach using file(GENERATE) to avoid using
configure_file, this requires CMake 2.8.12.

Change-Id: Id07cd8ef502186a90d41b3bb77ed0d9c94845af9
Fixes: v2.5.0rc0-1763-gfe0c2b0485 ("Rewrite make-dissector-reg.py in C")
Reviewed-on: https://code.wireshark.org/review/24659
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot
Reviewed-by: João Valverde <j@v6e.pt>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-12-24 13:30:06 +00:00
Stig Bjørlykke 91f63908df cmake: Remove -Wcomma for C++ when using Qt >= 5.10
The Qt team introduced a lot of "Possible misuse of comma operator here"
warnings in qstring.h and qstringview.h in version 5.10.  Now we need to
fix the Qt source again.

Change-Id: I948ba5a224d4dca1ebb6a758100c064d501c1d4a
Reviewed-on: https://code.wireshark.org/review/24779
Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
2017-12-12 14:39:44 +00:00
João Valverde 5fc43fe63a Rewrite make-tap-reg.py in C
Change-Id: Ief5b1fffecc9712c01ff10292c403b7c84a5908a
Reviewed-on: https://code.wireshark.org/review/24756
Reviewed-by: João Valverde <j@v6e.pt>
2017-12-11 02:52:28 +00:00
Guy Harris 797d2f6a87 Move the frame_set stuff back into the capture_file structure.
libwireshark now expects an epan_t to be created with a pointer to a
"packet provider" structure; that structure is opaque within
libwireshark, and a pointer to it is passed to the callbacks that
provide interface names, interface, descriptions, user comments, and
packet time stamps, and that set user comments.  The code that calls
epan_new() is expected to provide those callbacks, and to define the
structure, which can be used by the providers.  If none of the callbacks
need that extra information, the "packet provider" structure can be
null.

Have a "file" packet provider for all the programs that provide packets
from a file.

Change-Id: I4b5709a3dd7b098ebd7d2a7d95bcdd7b5903c1a0
Reviewed-on: https://code.wireshark.org/review/24731
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-12-08 03:32:25 +00:00
Jakub Zawadzki 038aa2a616 Add fuzzshark to cmake/autotools.
Add fuzzshark target to make sure that oss-fuzzshark always build.

Change-Id: I802b679c18023daa1475a54bae722b5e90c72a59
Reviewed-on: https://code.wireshark.org/review/24716
Petri-Dish: Jakub Zawadzki <darkjames-ws@darkjames.pl>
Tested-by: Petri Dish Buildbot
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2017-12-07 23:26:52 +00:00
Peter Wu 3c6cb2f856 cmake: match include directories with autotools
Match closer the behavior of autotools which does not include epan in
its include paths by default.

Change-Id: I885bc7942490a5674c6ac75f9a8ea221555e3784
Reviewed-on: https://code.wireshark.org/review/24639
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot
Reviewed-by: Roland Knall <rknall@gmail.com>
2017-11-29 06:58:22 +00:00
João Valverde 7540ac6938 Move the protocol registration routines back into libwireshark
Follow-up to b695b3e2f7.

Change-Id: I7e36519f2c3806c1205d05437671325080974257
Reviewed-on: https://code.wireshark.org/review/24524
Petri-Dish: João Valverde <j@v6e.pt>
Tested-by: Petri Dish Buildbot
Reviewed-by: João Valverde <j@v6e.pt>
2017-11-21 20:21:50 +00:00
Gerald Combs 0b2ecccd86 Add ThreadSanitizer configure-time options.
Add ENABLE_TSAN and enable-tsan options to CMake and Autotools
respectively which enable ThreadSanitizer, similar to AddressSanitizer
and UndefinedBehaviorSanitizer.

Change-Id: I79adf5c1516b0938f140bbf501c181bf14d7619b
Reviewed-on: https://code.wireshark.org/review/24515
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2017-11-21 16:55:18 +00:00
João Valverde 5968fc1cae Rename UseMakeDissectorReg.cmake
Change-Id: I2723e7f0309dbe21f23b65818fbea3a7eadf13d4
Reviewed-on: https://code.wireshark.org/review/24514
Petri-Dish: João Valverde <j@v6e.pt>
Tested-by: Petri Dish Buildbot
Reviewed-by: João Valverde <j@v6e.pt>
2017-11-20 21:31:38 +00:00
João Valverde 262a84c384 Fix (and chop) static build option
This sets the scope of the static build option to Wireshark support
libraries only.

Before the patch:

Static plugins don't work with CMake and autotools.

autotools static build is broken, and most likely will always be, as
building Wireshark all-static is difficult and time-consuming.

After the patch:

For CMake Wireshark will be built with static or shared libraries and
dynamic plugins. Everything just works. CMake apparently doesn't want
you building static and shared libraries at the same time.

For autotools Wireshark will be built with shared libraries by default.
--disable-shared and --enable-static options work as usual. Dlopened
plugins are not built if --disable-shared is given to configure (to
disable shared libraries). This is a limitations imposed by libtool.

Tested on Linux. This removes broken support for building plugins
statically.

Change-Id: Ib8e8176976f136eea93a2ce8f9857b6cf9bec64c
Reviewed-on: https://code.wireshark.org/review/24241
Petri-Dish: João Valverde <j@v6e.pt>
Tested-by: Petri Dish Buildbot
Reviewed-by: João Valverde <j@v6e.pt>
2017-11-19 20:16:50 +00:00
Graham Bloice bab9abfb7d CMake: Clean up Windows build
Remove options that aren't supported on Windows
Don't use pkgconfig on Windows

Change-Id: I79718a1c43f56a9ec88f690490931b80b727dd68
Reviewed-on: https://code.wireshark.org/review/24481
Reviewed-by: Graham Bloice <graham.bloice@trihedral.com>
Petri-Dish: Graham Bloice <graham.bloice@trihedral.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-11-18 20:58:31 +00:00
João Valverde b695b3e2f7 Begin cleanup of make-dissector-reg.py
Move registration code to a new register.c file so it is readable.
Dissector load points are stored in a generated function pointer
array instead.

Simplify python script somewhat by not interleaving the plugin and
dissector logic.

Change-Id: I5ec21270f4e1550a5c911efa7f0dc4fc7fcb13a5
Reviewed-on: https://code.wireshark.org/review/24474
Reviewed-by: João Valverde <j@v6e.pt>
Petri-Dish: João Valverde <j@v6e.pt>
Tested-by: Petri Dish Buildbot
Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-11-18 14:43:10 +00:00
Graham Bloice c43c58c434 CMake: Make Qt5 packages required if building Qt version
This stops folks failing when they don't have Qt
but are still attempting to build the Qt version.

Change-Id: I31eb9433b25ca9a717cd10bc165f3820ae31687e
Reviewed-on: https://code.wireshark.org/review/24406
Petri-Dish: Graham Bloice <graham.bloice@trihedral.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Graham Bloice <graham.bloice@trihedral.com>
2017-11-14 16:46:07 +00:00
Guy Harris e38c89d3a7 Link with ZLIB_LIBRARIES if you link with wiretap.
Wiretap may use zlib; if it does, ZLIB_LIBRARIES is set to refer to
zlib.  On UN*X, you may be able to get away with linking a
dynamically-linked shared library with other dynamically-linked shared
libraries and not linking programs linked *with* that shared library
with those other shared libraries, but that may not work on Windows.

We link most programs that use wiretap with ZLIB_LIBRARIES; do so with
androiddump and randpktdump as well.

Bug: 14207
Change-Id: I8e94197e06f5fd0ff8c95aa509dbcc2ff2a44cd4
Reviewed-on: https://code.wireshark.org/review/24389
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-11-12 18:56:33 +00:00
João Valverde 62f705e844 autotools: Try to be clearer about --with-ssl and remove cruft
Change-Id: Iaf8c8a83ead1d6671bb9cadb6add56481ed98aaa
Reviewed-on: https://code.wireshark.org/review/24242
Petri-Dish: João Valverde <j@v6e.pt>
Tested-by: Petri Dish Buildbot
Reviewed-by: João Valverde <j@v6e.pt>
2017-11-05 10:39:38 +00:00
Guy Harris a0973d0f94 Move the compiler version tests to ws_compiler_tests.h and use them elsewhere.
While we're at it, sort some header file lists, and clean up white
space.

Change-Id: If737dda45334fedf1df7295d8719ad9381daf7a1
Reviewed-on: https://code.wireshark.org/review/24089
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-10-26 22:01:16 +00:00
Gerald Combs 0d9b8eaf08 Warn the developer if we're building with GTK+.
Move The Slowest Migration In The History Of Ever a little further
along.

Change-Id: Ib8b49708e7036dd412a7ffc8660ded9f681374c0
Reviewed-on: https://code.wireshark.org/review/24006
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-10-21 08:23:45 +00:00
Peter Wu f19a2c0b8c CMake: increase minimum required version to 2.8.11
Due to the use of target_include_directories (when sshdump or ciscodump
are enabled), the minimum required version is 2.8.11. The supported OS
versions do not change, but Debian Wheezy users must enable backports.

Change-Id: I883c81e5e81425ca1869f442686faf1e66a638f3
Reviewed-on: https://code.wireshark.org/review/23955
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-10-17 03:56:21 +00:00
Peter Wu a3ba3ba943 CMake: fix Qt build with CMake 2.8.12 and before
The Qt5Widgets_EXECUTABLE_COMPILE_FLAGS option is only needed for CMake
before 2.8.12 and before as documented by Qt, so this ugly piece can be
restricted to older CMake versions. That also helps avoiding exposing
the Qt 5.5.0 in Windows since that requires a much newer CMake version.

For those older versions, use COMPILE_FLAGS such that -fPIC is added
after -fPIE (the latter is enabled by CMAKE_POSITION_INDEPENDENT_CODE).

Tested with CMake 2.8.11, 2.8.12.2, 3.0.2 and 3.9.4 using Qt 5.9.2 and
GCC 7.2.0.

Change-Id: I4962f7f5a087ee5b8c79905dd3b2cce17c731bdf
Fixes: v2.1.0rc0-566-gd66d379ac8 ("Try retroactively applying the Qt folks' fix for QTBUG-47942.")
Reviewed-on: https://code.wireshark.org/review/23954
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-10-17 03:37:25 +00:00
Peter Wu d3f636ece0 cmake: fix CMP0026 deprecation warning in CMake 3.9
Since CMake 3.9, all policies before CMP0036 emit a warning. Fix the
warning by not relying on the old behavior (existence of the LOCATION
property).

Tested with Ninja, the cmake output, rules.ninja and build.ninja output
is identical (minus the deprecation warning).

Change-Id: I058699380b01a9c02d9b98fd485ce6ded427abe3
Reviewed-on: https://code.wireshark.org/review/23915
Petri-Dish: João Valverde <j@v6e.pt>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-10-16 04:31:57 +00:00
Peter Wu 2cb717ec78 cmake: remove and reorder unused cmake policies
Current minimum CMake version has everything up to CMP0017 enabled by
default, remove older policies. CMP0011 had not effect, our
link_directories are already absolute paths.

Change-Id: I3af08ca75700de4a860fb4afd664824031e2c5f5
Reviewed-on: https://code.wireshark.org/review/23914
Reviewed-by: João Valverde <j@v6e.pt>
Petri-Dish: João Valverde <j@v6e.pt>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-10-16 04:24:34 +00:00
João Valverde 9bba3866ff CMake: Allow user build flags to override default build flags
Autotools has the very useful feature by design of allowing the user
to override the default build flags (you break it you keep it).

Apparently CMake applies COMPILE_OPTIONS target property after
CMAKE_{C,CXX}_FLAGS so that doesn't work here. Prepend our flags to those
variables instead to make it work then.

Specific target flag overrides can still be added with COMPILER_OPTIONS
(e.g: generated files with -Wno-warning) but this is less effective and
then we're back at the point where this overrides user flags. It's less
of a concern though.

Change-Id: I44761a79be4289238e02d4e781fef0099628817b
Reviewed-on: https://code.wireshark.org/review/23675
Petri-Dish: João Valverde <j@v6e.pt>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: João Valverde <j@v6e.pt>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-10-13 21:32:18 +00:00
Gerald Combs 6172627534 Make osx-app.sh a configured file and remove Autotools targets.
Rename osx-app.sh to osx-app.sh.in and add the version to the plugin
path at configure time.

Instead up updating Autotools accordingly just remove the macOS
packaging targets. gf61c381b5a removed support for Autotools in
osx-app.sh and if anyone wants to build macOS packages I'd prefer that
they use the same toolchain as the buildbot.

Change-Id: Ide5205265bf8859a85b1afab68fa8f8285952bd3
Reviewed-on: https://code.wireshark.org/review/23839
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-10-06 04:33:55 +00:00
João Valverde 2777003e12 Add version check for plugin compatibility
Only plugins built for the same feature release (X.Y) are assured binary
compatibility. Make sure we don't try to run unsuitable code and, if so,
warn the user. This might happen for example if the user manually copies
a binary plugin to the wrong folder, intentionally or by accident.

I'm using "release version" to loosely mean not a patch release
(i.e: a feature release).

Change-Id: I896e9cbbd2d3843623fff6af8ef51002ec06f1f8
Reviewed-on: https://code.wireshark.org/review/23807
Petri-Dish: João Valverde <j@v6e.pt>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: João Valverde <j@v6e.pt>
2017-10-03 10:09:24 +00:00
João Valverde b7107bdf9d CMake: Fix extcap plugin directory
Fixes a338f87f33.

Change-Id: Ib1d36a43828bd5896b327e49693485288a536342
Reviewed-on: https://code.wireshark.org/review/23805
Reviewed-by: João Valverde <j@v6e.pt>
2017-10-01 21:13:28 +00:00
João Valverde 6e24d5f690 Unsplit "m2m" plugin (wimax mac-to-mac encapsulation)
... not to be confused with "machine-to-machine".

M2M seems to be a simple Wimax encapsulation protocol developed by Intel.
It's not documented publicly anywhere that I can find. The boilerplate to
code ratio is huge and it even includes a complete source file from the Wimax
dissector (yuck). Put it in the Wimax plugin instead.

Minor version number bump for wimax plugin.

Change-Id: I2694339dfe89be334093b257a5b34d1577f4dc20
Reviewed-on: https://code.wireshark.org/review/23790
Petri-Dish: João Valverde <j@v6e.pt>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-10-01 16:05:05 +00:00
João Valverde f0e12f0fd3 Remove TPG plugin and dependencies
It doesn't build with autotools and CMake.

Under-documented and unmaintained. Seems to be a work-in-progress
that stalled.

Introduces spurious CMake dependency on yapp.

Change-Id: I0dca1ccbdfd683586c05765437d4b7804ab5cc70
Reviewed-on: https://code.wireshark.org/review/23758
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-09-28 12:26:01 +00:00
João Valverde a269ae1b6a Rename "ws_version_info.h", also .c
It's not installed so like most other files it doesn't need or benefit
from the prefix.

Change-Id: I01517e06f12b3101fee21b68cba3bc6842bbef5c
Reviewed-on: https://code.wireshark.org/review/23751
Petri-Dish: João Valverde <j@v6e.pt>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: João Valverde <j@v6e.pt>
2017-09-26 17:32:08 +00:00
João Valverde 69bfcbc67e CMake: Print build flags just before feature summary
Change-Id: I79cc1df1eb04c5ed9bed722f07fdea7db2adcede
Reviewed-on: https://code.wireshark.org/review/23674
Petri-Dish: João Valverde <j@v6e.pt>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: João Valverde <j@v6e.pt>
2017-09-24 12:27:28 +00:00
João Valverde cf4abe1376 CMake: Pretty print PACKAGELIST
Change-Id: Ib87e0d4111f466e660435acf871036c0f1bb1555
Reviewed-on: https://code.wireshark.org/review/23673
Reviewed-by: João Valverde <j@v6e.pt>
2017-09-24 11:40:17 +00:00
João Valverde fd4dc6f115 plugins: Fixups for g9260461f4f
Put plugins in CMake build dir with a version subdir. This avoids some
weird special cases, however running with autotools from build dir
displays the wrong global folder in about->folders. Unfortunately
the hack to run from the autotools build dir is troublesome.

Various fixes for Windows builds.

Try to fix also build dir issue loading plugins on macOS with
ENABLE_APPLICATION_BUNDLE (blind).

Change-Id: Ic3c7c21f5850c12a53844202d61fa0592b45739c
Reviewed-on: https://code.wireshark.org/review/23657
Petri-Dish: João Valverde <j@v6e.pt>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
Reviewed-by: João Valverde <j@v6e.pt>
2017-09-23 17:49:08 +00:00
Gerald Combs 3c8750dfb3 Revert "CMake: Print a warning if CCACHE_CPP2 is unset."
CCACHE_CPP2 / run_second_cpp is enabled by default in ccache 3.3 and later. (Unfortunately our builders have 3.2.4 installed.)

This reverts commit ed1ecfb39c.

Change-Id: I3cc88fa70bb04db5ae254bc9b878ce379e47527d
Reviewed-on: https://code.wireshark.org/review/23658
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2017-09-22 22:08:41 +00:00
Gerald Combs ed1ecfb39c CMake: Print a warning if CCACHE_CPP2 is unset.
If we're compiling with clang and ccache, print a warning if CCACHE_CPP2
is unset. Doing so avoids generating a bunch of unwanted output when
warnings are enabled.

Change-Id: I6a796e8b910074ffa028ea45bc639b9461e1629e
Reviewed-on: https://code.wireshark.org/review/23646
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-09-22 04:50:31 +00:00
Michael Mann 5f667694d3 Add Flow Graph functionality to TShark
Add flow graph functionality to tshark through -z option.
Output is same as ASCII format saved from GUI.

Change-Id: Iee0bfea7215858e6488b4728581be28287e9ea1a
Reviewed-on: https://code.wireshark.org/review/23652
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-09-22 04:49:48 +00:00
Peter Wu ed15895221 cmake: look for Qt5 from Homebrew on macOS
When Qt5 is installed using Homebrew on macOS, Qt5 is not available in
the default prefix. Remove the hack from macos-setup-brew.sh and adjust
the search path instead. Note that is needed for development, "brew
install" has already set this option in the environment.

See https://github.com/Homebrew/homebrew-core/issues/8392

Change-Id: I57ea09b649a94c9a4cb18b1b2d334808e47ec27e
Reviewed-on: https://code.wireshark.org/review/23232
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-09-21 00:49:01 +00:00
Martin Kaiser ded1d1089a CMake: fix extcaps dependency list
When compiling the list of dependencies for the extcaps target, add only
those targets that we're actually building. If we skip an extcap, e.g.
because we're missing libraries to build it, don't add this extcap to
the dependency list.

This issue was observed on a Debian box that had no libssh-gcrypt-dev
package installed. Running cmake would create a warning about
non-existent dependencies of the extcaps target.

-- Configuring done
CMake Warning (dev) at CMakeLists.txt:3217 (add_dependencies):
  Policy CMP0046 is not set: Error on non-existent dependency in
  add_dependencies.  Run "cmake --help-policy CMP0046" for policy details.
  Use the cmake_policy command to set the policy and suppress this warning.

  The dependency target "ciscodump" of target "extcaps" does not exist.
This warning is for project developers.  Use -Wno-dev to suppress it.

Change-Id: I7335173fce9833423b0e9443589143cc1a122ac0
Reviewed-on: https://code.wireshark.org/review/23321
Reviewed-by: Martin Kaiser <wireshark@kaiser.cx>
Petri-Dish: Martin Kaiser <wireshark@kaiser.cx>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Reviewed-by: Dario Lombardo <lomato@gmail.com>
Reviewed-by: Roland Knall <rknall@gmail.com>
2017-09-20 08:39:54 +00:00
Stig Bjørlykke 17651065a5 cmake: Add option to disable -Wframe-larger-than
In some editors (like Xcode) it's possible to turn on and off
ASAN and UBSAN independent of the settings in CMake.

This option will disable the -Wframe-larger-than= flag even if
ASAN or UBSAN are not turned on in CMake.

Change-Id: I70b1ae544fe87093d0f5ce7ceb191f33399191ea
Reviewed-on: https://code.wireshark.org/review/23567
Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
2017-09-17 17:20:34 +00:00
João Valverde 9260461f4f plugins: Use minor version number for plugin install path
Wireshark patch releases (X.Y.Z) are binary compatible so reflect
that in the plugin installation path.

By installing to $pkglibdir/plugins/X.Y out-of-tree plugins don't
need to be reinstalled with every patch release.

Change-Id: I9d1728e6fb12bcb51d2a723af22c750cb7a966cf
Reviewed-on: https://code.wireshark.org/review/23497
Petri-Dish: João Valverde <j@v6e.pt>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: João Valverde <j@v6e.pt>
2017-09-17 16:55:51 +00:00
João Valverde 978f6b4e1a plugins: Fix paths to match WSUG
The Wireshark User Guide seems to say:

Global lua plugins are in $pkglibdir/plugins
Personal lua plugins are in XDG_CONFIG_HOME/plugins

Global binary plugins are in $pkglibdir/plugins/$version
Personal binary plugins are in XDG_CONFIG_HOME/plugins/$version

Fix code to match that. This is a backward-incompatible change
for global lua plugins and personal binary plugins.

Adds a version subfolder to the personal plugin folder for binary plugins.

This allows for safe upgrades and side-by-side installations
with different prefixes (they no longer use the same personal dir).

Change-Id: Ie0f039113628a257625a9a9fb2cb30e532f5dd47
Reviewed-on: https://code.wireshark.org/review/23516
Petri-Dish: João Valverde <j@v6e.pt>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: João Valverde <j@v6e.pt>
2017-09-17 16:54:52 +00:00
João Valverde 21d2158a0b CMake: Initial work to install headers for the benefit of plugins
To be continued incrementally to fix gaps and omissions.

If we are willing to reorganize the source tree to have one or two header
include folders this could be simplified considerably.

It would also force developers to give more consideration to API issues,
which is a good thing.

See also e7ef19efc0.

Bug: 14062
Change-Id: I0759da2f9793cfb5cf92c9e231457bba43df4353
Reviewed-on: https://code.wireshark.org/review/23548
Petri-Dish: João Valverde <j@v6e.pt>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: João Valverde <j@v6e.pt>
2017-09-17 07:22:16 +00:00
Stig Bjørlykke 800c179dfa cmake: Add -Wcomma as a warning flag.
Change-Id: I90827ac2cd2277a969d25996392ad1627fc6c530
Reviewed-on: https://code.wireshark.org/review/23566
Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-09-16 11:13:23 +00:00
João Valverde 83aabe5500 CMake: Fix RPATH after ga338f87f33
GNUInstallDirs uses lib64 on x86_64.

Change-Id: I4e124a6b501bf2166e7270abbff53d52c9115f45
Reviewed-on: https://code.wireshark.org/review/23496
Petri-Dish: João Valverde <j@v6e.pt>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: João Valverde <j@v6e.pt>
2017-09-11 19:11:50 +00:00
Guy Harris df21aa9025 Use cmake_push_check_state() and cmake_pop_check_state().
Change-Id: I70528d5f54f62a51bf6f438669cd70d5f0296ae5
Reviewed-on: https://code.wireshark.org/review/23435
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-09-08 11:34:29 +00:00
João Valverde c1ef4693de CMake: Make plugin installation path use PLUGIN_INSTALL_LIBDIR
Change-Id: I47f248f6ef56aba400054fa3ade2bf4d29eeb895
Reviewed-on: https://code.wireshark.org/review/23411
Petri-Dish: João Valverde <j@v6e.pt>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: João Valverde <j@v6e.pt>
2017-09-06 17:26:46 +00:00
João Valverde c6f99aea46 CMake: Move CPACK remnants and remove stale comment
Move required variables for better context.

Remove TODO comment. "To do" is "everything" to re-implement CPack because
(incomplete) support was dropped in g0831becc1a.

Change-Id: Ie21001940794e264527f35b5d4638830de02d97e
Reviewed-on: https://code.wireshark.org/review/23410
Reviewed-by: João Valverde <j@v6e.pt>
2017-09-06 17:26:39 +00:00
João Valverde d0a91b27f2 plugins: config.h must not be included by public headers
For a sane plugin build environment. Include config.h as the first
header in the .c file instead.

Fix by moving required compiler attribute macros to a new
"ws_attributes.h" API header.

Change-Id: I34f58a927f68c1a0e59686c14d214825149749e1
Reviewed-on: https://code.wireshark.org/review/23400
Petri-Dish: João Valverde <j@v6e.pt>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: João Valverde <j@v6e.pt>
2017-09-06 08:10:56 +00:00
João Valverde a338f87f33 CMake: Use GNUInstallDirs module instead of our own
Change-Id: I42f62824f226b091ff9bb86ce5c222333f98d783
Reviewed-on: https://code.wireshark.org/review/23379
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: João Valverde <j@v6e.pt>
2017-09-03 20:13:44 +00:00
Peter Wu 1ef3866719 CMake: prevent unnecessary rebuilds due to version.h
Ninja (but not Unix Makefiles or others) require an explicit BYPRODUCTS
command to ensure that the target is executed before evaluating others.

Change-Id: Iccbeb2516f7bf22ffdb444f3261ca58d22897891
Reviewed-on: https://code.wireshark.org/review/23342
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-09-01 23:17:24 +00:00
Alexis La Goutte dc64d73800 Revert "Add -Wused-but-marked-unused as an extra warning flag."
This reverts commit 1aaa904622.

Change-Id: I6c783ffa40e5df9a3174cf768906e6d89ad909ef
Reviewed-on: https://code.wireshark.org/review/23303
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
2017-08-30 09:51:34 +00:00
Gerald Combs f8d0a7f003 CMake: We no longer support Visual C++ 2005 or 2008.
Change-Id: Ide3688366aa3c38d48ff29224dbfc0fdb7bf1b7a
Reviewed-on: https://code.wireshark.org/review/23277
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-08-29 01:55:00 +00:00
Peter Wu 26de091d1b cmake: add ENABLE_NGHTTP2 option
Allow nghttp2 to be disabled, similar to --without-nghttp2.

Change-Id: Id27ab12ef7c24a535824f762ce2feb20fba9e065
Reviewed-on: https://code.wireshark.org/review/23247
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2017-08-28 19:00:40 +00:00
Guy Harris 1aaa904622 Add -Wused-but-marked-unused as an extra warning flag.
We can't just turn it on yet, because that would require generators to
know which generated functions use which parameters and mark only the
unused ones as such.  The generator that turns PIDL files into DCE RPC
dissectors is one that would have to be fixed.

Change-Id: I7b0e9b08de6e7e9e611143de7307d3323a5c913e
Reviewed-on: https://code.wireshark.org/review/23249
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-08-27 21:20:45 +00:00
Gerald Combs 9ae80aea08 CMake: Package list updates.
Move gcrypt to the required package section. Fold the various
xxx_REQUIRED variables into xxx_OPTIONS.

Change-Id: Ib4220d7344e2bbac9062465d175921733bb0fe52
Reviewed-on: https://code.wireshark.org/review/23208
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2017-08-25 18:49:09 +00:00
Michael Mann 0831becc1a Remove support for CPack.
It's very incomplete and we already have installation makers for supported OSes.

Change-Id: Ide6332b9b6d69b66e7262662d781b548526ab752
Reviewed-on: https://code.wireshark.org/review/22226
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-08-19 15:59:04 +00:00
Guy Harris 6e6bcacb72 Fix some comments.
"The release mode (CMAKE_BUILD_TYPE=release) defines NDEBUG" isn't
Linux-specific; it's true in the Unix Makefile generator, and possibly
in other generators.  (The Visual Studio generator, at least for newer
versions of VS, lets you specify at *build* time what type of build to
do, so the generated build files don't unconditionally define, or not
define, NDEBUG, they do so based on the build type.)

The RPATH stuff is done on Unix-like systems *except* for macOS.

Change-Id: Ieffbaaa9a8e11a1a30b34036a2412c6735baa0c8
Reviewed-on: https://code.wireshark.org/review/23114
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-08-17 21:39:57 +00:00
Gerald Combs 4136bff2d0 CMake: Switch back to shipping README.txt on Windows.
Instead of trying to ship README.md, convert its line endings and make
sure the result is named README.txt.

Change-Id: I4e081587c73342b01633b3a31ea03068e3fc1733
Reviewed-on: https://code.wireshark.org/review/23098
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2017-08-16 23:04:57 +00:00
Gerald Combs 719adb4fdc Convert README to README.md.
Convert the contents of the top-level README to Markdown and give it a
.md extension. Most of our documentation is plain text or AsciiDoc, but
the top-level README file in a Git repository is special in that many
online browsers will show the README contents along with the directory
listing and those browsers tend to favor Markdown. This is true of
GitHub (which we're currently mirroring to), Gerrit via its Gitiles
plugin (which we're not yet using but likely will), and other places.

Add "foreign" to AM_INIT_AUTOMAKE. There is probably a joke to be
made here about the FSF and border walls.

Change-Id: I87c306d74864e1f0a432225b160a1b4483ee946c
Reviewed-on: https://code.wireshark.org/review/23049
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-08-15 14:48:29 +00:00
Peter Wu 292708ab32 CMake: allow CMAKE_INSTALL_RPATH to be overridden
By default CMake sets the RPATH for built binaries to the build
directory. To enable relocatable build directories, I override this
RPATH as follows during development:

    -DCMAKE_BUILD_WITH_INSTALL_RPATH=1
    -DCMAKE_INSTALL_RPATH='$ORIGIN:$ORIGIN/../extcap/..'

To make work (again), do not overwrite CMAKE_INSTALL_RPATH in
CMakeLists.txt.

Change-Id: I7f238af07926ea706a3f999c5b1e13286ca53a66
Fixes: v2.5.0rc0-664-g55dd9b16d5 ("CMake: Update RPATH during installation.")
Reviewed-on: https://code.wireshark.org/review/23062
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2017-08-13 15:01:00 +00:00
Gerald Combs 537b083e02 Sync some CMake and Autotools install behaviors.
Adjust the following CMake and Autotools behaviors in order to
synchronize their respective install behaviors:

- Disable tfshark by default in CMakeOptions.txt
- Add profiles/Bluetooth/preferences to Makefile.am
- Add missing captype and ciscodump entries to doc/Makefile.am
- Install help/faq.txt on all platforms in CMakeLists.txt
- Add BUILD_corbaidl2wrs, BUILD_dcerpcidl2wrs, and BUILD_xxx2deb
  options to CMake and use them to adjust the corresponding parts
  of the build.
- Pull the DCERPC idl2wrs build steps into the top-level
  CMakeLists.txt.

This change doesn't sync everything. Some installed content still
diverges, including the following:

- CMake installs a bunch of modules into lib/wireshark:
    FindGLIB2.cmake
    FindWireshark.cmake
    FindWSWinLibs.cmake
    LocatePythonModule.cmake
    UseAsn2Wrs.cmake
    UseMakeDissectorReg.cmake
    WiresharkConfig.cmake
    WiresharkConfigVersion.cmake

  Do we need any or all of these? If so, should the Autotools behavior
  be synced accordingly?

- Autotools installs libtool .la files. It also installs
  wireshark-gtk.desktop unconditionally.

Change-Id: I7846efe08f7139c31b6ceca6f08a1fa5168b3e22
Reviewed-on: https://code.wireshark.org/review/23041
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-08-12 13:53:59 +00:00
Gerald Combs fd2777b138 CMake: Make PLUGIN_INSTALL_DIR absolute.
CMAKE_INSTALL_LIBDIR is a relative path. Prefix it with
CMAKE_INSTALL_PREFIX so that PLUGIN_INSTALL_DIR is absolute.
This matches our Autotools behavior.

Change-Id: Ib42cea8745615686e0c7e8473bdb1975a3b9eccd
Reviewed-on: https://code.wireshark.org/review/23043
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2017-08-11 15:05:33 +00:00
Gerald Combs 55dd9b16d5 CMake: Update RPATH during installation.
If we're installing into a non-system prefix on UNIX or Linux, make
sure CMake updates our RPATHs accordingly.

Change-Id: Ia6eaa6533c996a8228cff25e9d2032b223781681
Reviewed-on: https://code.wireshark.org/review/23040
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2017-08-10 20:29:58 +00:00
Guy Harris 4dc835c9c6 -Wcast-align will warn about legitimate code.
Maybe there's some way to say "yes, I know that the pointer being cast
is appropriately aligned", or maybe some platforms say "yes, I know,
this is a struct sockaddr *, but those are aligned well enough for any
other socket address types", in which case we might be able to turn that
on by default in some cases.

Change-Id: I6b8cff7ebfe27785b20adbbc2f855e859b090236
Reviewed-on: https://code.wireshark.org/review/22983
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-08-07 01:23:07 +00:00
Guy Harris 98ff0410c8 Minor comment style tweak.
Change-Id: I58359c5a7c38e61cc7c024f1c74951679522101f
Reviewed-on: https://code.wireshark.org/review/22982
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-08-07 01:05:22 +00:00
Guy Harris a511b71591 Sync up a bit with configure.ac.
Move -Wunused-const-variable after -Wc++-compat.

Move -Wduplicated-branches after -Wdocumentation.

Add some comments for the warning flags for which the configure script
does a test to make sure the compiler doesn't mishandle them.

Add some other comments.

Change-Id: I7f648ff78eb932feef34aeccfff179bd0a2e5d49
Reviewed-on: https://code.wireshark.org/review/22980
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-08-07 00:59:09 +00:00
Guy Harris 9c3899bbf4 Add a comment explaining why ASan and UBSan are involved.
Change-Id: I31a429c247ed9f8efb97560d517423b0bf2d82f1
Reviewed-on: https://code.wireshark.org/review/22979
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-08-07 00:35:34 +00:00
Guy Harris cd7c47e638 Fix setting COMMON_WARN_FLAGS.
If we want to add -Wframe-larger-than=16384, *append* it, don't
*overwrite* it.

Indent that code properly while we're at it.

Change-Id: Iae8894e6663500620a07589fd6ba3d00f9eac7ba
Reviewed-on: https://code.wireshark.org/review/22977
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-08-06 22:49:42 +00:00
Pascal Quantin 4e9085696b CMake: do not check stack size when compiling with ASan or UBSan
Instrumentation code increases the stack usage. Let's deactivate the
check when compiling with ASan or UBSan as the objective here is not
to check the stack consumption and its usage is out of our control.

Change-Id: I9d6e269a0d404dc1833183a070fdbbb7fb0446e0
Reviewed-on: https://code.wireshark.org/review/22888
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-07-31 11:21:20 +00:00
Pascal Quantin 3e54cabf81 Add G.729 decoding based on bcg729 library
Bug: 13635
Change-Id: Ic22a0719a59da13e51425aeb747e88caca0d6512
Reviewed-on: https://code.wireshark.org/review/22808
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-07-30 05:22:35 +00:00
Dario Lombardo 82e2ad37a0 cmake: add a group target for all extcaps.
Change-Id: Ic97a96261056fd639c968eb29026d67636bad741
Reviewed-on: https://code.wireshark.org/review/22777
Petri-Dish: Dario Lombardo <lomato@gmail.com>
Tested-by: Dario Lombardo <lomato@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Dario Lombardo <lomato@gmail.com>
2017-07-27 20:12:43 +00:00
Gerald Combs 9c80c4d5a2 CMake: Don't pass /WX to rc.exe
Rc.exe doesn't have a /WX flag. Passing it /WX apparently results in
setting the /W flag, which warns about invalid code pages, and the /X
flag, which ignores %INCLUDE%. The latter is necessary in our case for
locating winver.h.

Change-Id: I6d757a547fedfa49d078a7bb5f15518c69760f72
Reviewed-on: https://code.wireshark.org/review/22794
Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-07-25 22:40:58 +00:00
Dario Lombardo a62c6d56b1 cmake: remove duplicate libraries from sshdump and ciscodump.
Change-Id: I35ce9e10921a5cbf97f2cd00036b1b6b3c87c03f
Reviewed-on: https://code.wireshark.org/review/22788
Petri-Dish: Dario Lombardo <lomato@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
2017-07-25 16:45:02 +00:00
João Valverde 14d94e174a Put the well-known addresses into a separate file from OUIs
Having two distinct logical concepts (OUI and Well Known Address)
concatenated to a single "manuf" file is needlessly obfuscating
the WKA feature.

Have a distinct "wka" file instead and just skip the cat.

Change-Id: I46f53b0015a37331d65f8cfac7cbbd499dd0c5b8
Reviewed-on: https://code.wireshark.org/review/22742
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-07-23 17:14:19 +00:00
Guy Harris 8dd29939ef c-ares isn't required.
Don't fail if it's not present.

Change-Id: I7183ce6e1f2af822ebeed219be0f2ca7dd0bab0f
Reviewed-on: https://code.wireshark.org/review/22759
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-07-22 03:15:21 +00:00
Guy Harris 9ea364c389 Require at least c-ares 1.5.0 when configuring.
That way, if you have an older version, we fail at configure time, with
what should be a message indicating that your c-ares is too old, rather
than at compile time, with what might provoke users to ask "what am I
doing wrong?" or "what do I need to fix?" or "why is my compile
failing?" or....

Change-Id: I911574c4d90174b6bd074c5ef537557d47b199dc
Reviewed-on: https://code.wireshark.org/review/22752
Petri-Dish: Guy Harris <guy@alum.mit.edu>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-07-21 12:39:26 +00:00
Gerald Combs 76efb096d4 Rename enterprises to enterprises.tsv and ship it.
Rename "enterprises" to "enterprises.tsv" so that its format is a bit more
obvious and so that double-clicking the file might do something useful.

Add it to the Windows packages.

Change-Id: I5ef54a04ce1b4926aa4535e756e04b3e2a56d463
Reviewed-on: https://code.wireshark.org/review/22616
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-07-15 06:20:34 +00:00
Roland Knall 367effa93c CMake: Fix eclipse indexer
The indexer for eclipse gets confused, because CMake automatically
adds __cplusplus=199711L which will lead to C-only files being parsed
wrong, if a __cplusplus guard is being used.

This has not interference with the code generation, just the __cplusplus
definition is omitted

Change-Id: I82aa770837668fbfbb5ac8227da1943e20b409fe
Reviewed-on: https://code.wireshark.org/review/22506
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Petri-Dish: Roland Knall <rknall@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Roland Knall <rknall@gmail.com>
2017-07-04 15:15:49 +00:00
Pascal Quantin a8ec8a3a6b Windows: update c-ares to v1.13.0 and zlib to v1.2.11
Change-Id: I17f92dd76dc53732d5d764c2a129acb7b69bbe08
Reviewed-on: https://code.wireshark.org/review/22440
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-06-28 10:57:55 +00:00
João Valverde 7466880e8a Parse enterprise-numbers at run time
"enterprise-numbers" is converted to tab-separated values and renamed
"enterprises". Unused fields are stripped.

PENs are stored in a hash table loaded at run-time.

User "enterprises" file is loaded from the personal config dir.

Misc make-sminmpec.pl improvements and fixes.
Note: names of type "Entity (formerly ...)" have the formerly part commented out for a cleaner output.

Change-Id: I60c533afbe3e399077fbf432088064471ad3e1e2
Reviewed-on: https://code.wireshark.org/review/22246
Petri-Dish: João Valverde <j@v6e.pt>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Reviewed-by: João Valverde <j@v6e.pt>
2017-06-26 22:40:50 +00:00
Peter Wu 8d214209e8 cmake: fix SET_FEATURE_INFO deprecation warning
Fix deprecation warnings that occur with cmake 3.8, replacing it by
some other function that is supported since at least cmake 2.8.8.

This also updates URLs and splits the description in a package
description and the purpose for the package (shown on the next line).

Change-Id: Ic0f37898593f48b8f37f6a228dae49288f20538f
Reviewed-on: https://code.wireshark.org/review/22393
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-06-26 04:07:28 +00:00
Martin Kaiser 7e2c67eaf3 cmake: allow building from a UNC source directory
Make two minor adjustments to allow building on Windows when the source
directory is specified in UNC notation (\\server\volume\directory)
instead of mapping such a directory to a drive letter.

Cmake's add_custom_command() calls "cd <work_dir>" if a working
directory is define as part of the rule. However,
cd \\server\volume\directory
is not allowed.

Modify the two occassions where the working directory is derived from
CMAKE_SOURCE_DIR.

For copying some install files, we can get away with using the absolute
path for each source file to be copied.

The perl script that creates the tap listing for lua does not depend on
a working directory at all. We can simply remove the WORKING_DIRECTORY
parameter.

Change-Id: Iac8e0addc44650692c1263fdca11f68315f50c63
Reviewed-on: https://code.wireshark.org/review/22236
Petri-Dish: Martin Kaiser <wireshark@kaiser.cx>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-06-21 01:53:08 +00:00
Guy Harris 5039d0e576 Change some names to reflect Apple's new UNIX-for-Macs name.
{OS_X,os_x} -> {MACOS,macos}.

Change-Id: Icebea6ab566c65996ee97bacb88fac7e84ec32de
Reviewed-on: https://code.wireshark.org/review/22161
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-06-16 08:50:22 +00:00
Pascal Quantin 4edc611526 Windows: increase minimum CMake version to 3.7
g9f0d22b introduced the use of GREATER_EQUAL operator. Let's update the
minimum CMake version accordingly.

Change-Id: Ibf619a24f5ee296b547fbc6ba46e13b8a1f3302c
Reviewed-on: https://code.wireshark.org/review/22066
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
2017-06-10 16:32:59 +00:00
Gerald Combs 4ca91db0ed 2.3.0 → 2.5.0.
Change-Id: I83ecbff82b23702f40ce1bae45be23e3336ff2c4
Reviewed-on: https://code.wireshark.org/review/21905
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2017-06-02 22:40:36 +00:00
Stig Bjørlykke 9719bac5ee cmake: Add -Wshorten-64-to-32 for C++ when using Qt >= 5.9
The warnings has been fixed in Qt 5.9.

Change-Id: I7cc71612e601517b7d7117c3cf2711ec983593a6
Reviewed-on: https://code.wireshark.org/review/21861
Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-06-01 08:06:43 +00:00
Peter Wu 90db2bb2c8 Add --enable-ubsan/ENABLE_UBSAN for UndefinedBehaviorSanitizer
UndefinedBehaviorSanitizer (UBSan) can catch a lot of issues
(out-of-bounds memory access, integer overflows, undefined shifts,
etc.) and is recommended during development using GCC or Clang. Add an
option for it (similar to ASAN support).

Change-Id: Ib0db50cee9eb5af0f5c4f06e07f3899a3a34702d
Reviewed-on: https://code.wireshark.org/review/21673
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-05-16 10:38:50 +00:00
Peter Wu 92e61ed35b cmake: cleanup package variable
Do not print a message for a variable if the package does not provide it
(e.g. "Git includes: ").

Change-Id: Ife5e58055c4eb24218b543f52fb7d7882dc1e04e
Reviewed-on: https://code.wireshark.org/review/21359
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-04-27 15:44:57 +00:00
Peter Wu f045d177f4 CMake: prevent confusing "Git NOT FOUND" in CMake 3.1.3
Change-Id: Ia7c03220f49ff862bf05a34727bf5c99297deeab
Reviewed-on: https://code.wireshark.org/review/21358
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-04-27 15:44:46 +00:00
Peter Wu a8d9777161 cmake: remove dependency on sed
runlex.sh does not need sed anymore since v2.3.0rc0-2386-g64f83641ad.
Since building docs already depends on Perl, let's use Perl instead.

Change-Id: Id7e923e47001cfd32c8cef89960377026464f2ee
Reviewed-on: https://code.wireshark.org/review/21314
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-04-26 21:50:44 +00:00
Martin Kaiser 451731f0c6 cmake: fix build without libxml2
When LibXml2 is not found, the LIBXML2_LIBRARIES is set to
"LIBXML2_LIBRARIES-NOTFOUND" rather than an empty string (as other
FindXxx modules do). This results in an error because the variable is
used in target_link_libraries (via epan_LIBS).

As workaround, explicitly clear the variable to ignore the cache entry.

Change-Id: I9e164f9c175b23559ac6bc37f9aca5f41df79d1f
Reviewed-on: https://code.wireshark.org/review/21321
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Martin Kaiser <wireshark@kaiser.cx>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-04-25 15:15:33 +00:00
Guy Harris 67a5d9bebe Use the cfile_ failure_message routines in androiddump.
Change-Id: Ic310eaafac054db7736c503252062c3dd3e00a99
Reviewed-on: https://code.wireshark.org/review/21265
Petri-Dish: Guy Harris <guy@alum.mit.edu>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-04-21 06:50:21 +00:00
Guy Harris 804d3f6245 Use cfile_write_failure_message() in the randpkt code.
Change-Id: I32ef7ff85f854782e5dd02c3e7f12436a120bc13
Reviewed-on: https://code.wireshark.org/review/21259
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-04-20 21:07:35 +00:00
Guy Harris 64ec2b2e5e Take the error message generation out of the merge_files routines.
Have them just return the information needed for the caller to produce
an error message, and have the callers use the new cfile_ routines for
reporting errors.

This requires that the "write failure alert box" routine take the
*input* file name as an argument, so that, on a merge, if the problem is
that a record from a given input file can't be written out to the type
of output file we're generating, the input file name can be given, along
with the record number in that file.

Change-Id: If5a5e00539e7e652008a523dec92c0b359a48e71
Reviewed-on: https://code.wireshark.org/review/21257
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-04-20 20:25:59 +00:00
Guy Harris bce5ec919e Use the new cfile_XXX_failure_message() routines more broadly.
Change-Id: I7814b3fd0353f4836ae61cbdbd4e13f659cbcb59
Reviewed-on: https://code.wireshark.org/review/21239
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-04-20 07:19:41 +00:00
Guy Harris b0c48f3b4f editcap now uses stuff from libui.
Change-Id: Ifa5cda67305682909559963ea5ce90cecc0c8e6e
Reviewed-on: https://code.wireshark.org/review/21238
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-04-20 03:26:34 +00:00
Ahmad Fatoum cfab5ef035 Add libxml2 as optional dependency
This can be used by dissectors that need to parse out-of-band
configuration.

Change-Id: I13c0a2f408fb5c21bad7ab3d7971e0fa8ed7d783
Reviewed-on: https://code.wireshark.org/review/20912
Reviewed-by: Roland Knall <rknall@gmail.com>
2017-04-19 10:41:55 +00:00
Jakub Zawadzki ca29ec9e77 sharkd: support for "downloading" decoded RTP stream in wave-like format.
Change-Id: Ic6b241f9b7ed302e7b11644e63230474d5933a85
Reviewed-on: https://code.wireshark.org/review/20963
Petri-Dish: Jakub Zawadzki <darkjames-ws@darkjames.pl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Jakub Zawadzki <darkjames-ws@darkjames.pl>
2017-04-17 07:29:31 +00:00
Ahmad Fatoum e66f9c7b6d CMake: include PKG_INCLUDE_DIR if PKG_INCLUDE_DIRS is undefined
FindLibXml2.cmake populates LIBXML2_INCLUDE_DIR and leaves
LIBXML2_INCLUDE_DIRS undefined.

Libxml2 inclusion as optional dependency is suggested in Change-Id
I13c0a2f408fb5c21bad7ab3d7971e0fa8ed7d783.

Change-Id: If49c778230e99af4b2ebb97dcb2f8acb4b55aa88
Reviewed-on: https://code.wireshark.org/review/21109
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-04-15 15:37:28 +00:00
Joerg Mayer bf5fd112bc Functions that put large amounts of static data onto the stack may be
worth looking at every now and then.

The value of 16384 is the same as the default in VS.

Change-Id: I68fd51e373437088f59c1e197d1a889f856caded
Reviewed-on: https://code.wireshark.org/review/21030
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-04-14 11:29:31 +00:00
Alexis La Goutte c6fb9ee214 Add -Wduplicated-branches to extra warnings
Change-Id: I11d60b4405f4fde039affcdeebb13a3ceb2aded6
Reviewed-on: https://code.wireshark.org/review/20428
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-04-12 11:28:16 +00:00
Guy Harris 77cad8561c Move the filter file reading code to libui.
It doesn't belong in libwireshark, as it doesn't affect dissection, but
it *does* belong in libui, as it's helper code for the UIs.

Change-Id: I8a5e0640a299a08e9ec1917dd253197438ebfdbc
Reviewed-on: https://code.wireshark.org/review/20974
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-04-09 04:25:52 +00:00
Guy Harris a5fadc99ff Link dftest with libui.
No need to select one source file from libui and build it independently;
just go ahead and link.

Change-Id: I7ae5d8f9b83832518a4fb3430cb348e8c4d6b7ab
Reviewed-on: https://code.wireshark.org/review/20968
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-04-08 22:00:19 +00:00
Guy Harris 8f2b1bf9ca Link rawshark with libui.
No need to select one source file from libui and build it independently;
just go ahead and link.

Change-Id: Ie451b736411bcdac52ccde56f329c933a0065ead
Reviewed-on: https://code.wireshark.org/review/20967
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-04-08 21:44:36 +00:00
Guy Harris 357cfd3b03 A bunch of "{Mac} OS X" -> "macOS" changes.
Avoid anachronisms, however; there was no "macOS 10.0" or even "OS X
10.0", for example.  It was "Mac OS X" until 10.8 (although 10.7 was
sometimes called "OS X" and sometimes called "Mac OS X"), and it was "OS
X" from 10.8 to 10.11.

Change-Id: Ie4a848997dcc6c45c2245c1fb84ec526032375c3
Reviewed-on: https://code.wireshark.org/review/20933
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-04-05 19:16:22 +00:00
Martin Kaiser 1e5f39dfec cmake: add feature info for yapp
Explain what it is and where to get it from.

Change-Id: I0a02f1c3c25b76772dddda95d8e6c410b595c036
Reviewed-on: https://code.wireshark.org/review/20886
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-04-04 11:39:27 +00:00
Joerg Mayer 0b6b152694 Remove echld/.
It has been unsupported for some years and when talking about removing it
in the past I received some positive and no negative feedback.

There is one instance of echld left:
capchild/capture_sync.c:                 * echld might have already reaped the child.

Can that case be removed or should be comment be updated to something more
accurate? (left for a separate patch)

Change-Id: Idac397158dd86fd0728eb95379449ee4a463fc28
Reviewed-on: https://code.wireshark.org/review/20619
Petri-Dish: Jörg Mayer <jmayer@loplof.de>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-03-19 15:13:14 +00:00
Erik de Jong f1c75cf6ef Rewrite dissectors to use Libgcrypt functions.
As discussed on the mailinglist, rewriting dissectors to use Libgcrypt
functions as Libgcrypt will be mandatory after change 20030.
Removal of following functions:
- crypt_md4
- crypt_rc4*
- aes_cmac_encrypt_*
- md5_*
- sha1_*
- sha256_*

Further candidates:
- aes_*
- rijndael_*
- ...

Added functions:
- ws_hmac_buffer

Added const macros:
- HASH_MD5_LENGTH
- HASH_SHA1_LENGTH

Changes on epan/crypt/* verified with captures from
https://wiki.wireshark.org/HowToDecrypt802.11
Changes on packet-snmp.c and packet-radius.c verified with captures from
https://wiki.wireshark.org/SampleCapture
Changes on packet-tacacs.c verified with capture from
http://ccie-in-3-months.blogspot.nl/2009/04/decoding-login-credentials-regardless.html

Change-Id: Iea6ba2bf207cf0f1bf2117068fb1abcfeaafaa46
Link: https://www.wireshark.org/lists/wireshark-dev/201702/msg00011.html
Reviewed-on: https://code.wireshark.org/review/20095
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-03-02 23:58:05 +00:00
Roland Knall 321386e9f4 PluginIF: AdditionalToolbar
Creates an interface for plugins and other parts of the code, to
add a new toolbar to the system and have various widget types interact
with this toolbar.

All toolbars added via this interface, will be added to an additional
submenu called "Additional Toolbars" within Wireshark.

Also a demo plugin is being provided, demonstrating various features
of the toolbar, including updating the gui elements. It also demonstrates
how to update toolbar items.

Change-Id: I8d0351224b3d7f4b90220d58970b51695551d7e3
Reviewed-on: https://code.wireshark.org/review/19803
Petri-Dish: Roland Knall <rknall@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
Reviewed-by: Roland Knall <rknall@gmail.com>
2017-02-24 08:12:46 +00:00
Alexis La Goutte fdecfa6c30 cmake: Add some missing SET_FEATURE_INFO
for nghttp2, lz4, snappy

Change-Id: I0788c2105b69ba2ae781709fb5e16e13b5ca1533
Reviewed-on: https://code.wireshark.org/review/20200
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-02-21 05:40:59 +00:00
Alexis La Goutte 66e45419b1 cmake: SET_FEATURE_INFO don't need to add www: for URL
Change-Id: If01c008690dc1956b42d63d67942414063f3e76c
Reviewed-on: https://code.wireshark.org/review/20199
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-02-21 05:39:47 +00:00
Gerald Combs a5a8fce06e Qt: Warn the user about DBAR 1.8 on Windows.
At startup, dig through the registry looking for shell extensions. If
any of them match known Dell Backup and Recovery DLL names and the DLL
version matches 1.8.*.*, show the user a warning dialog.

This is a bit extreme but I'm not sure what else to do. Dell is a popular
computer manufacturer and bug reports keep trickling in.

Change-Id: I6d1bd6c56850279356570154d231b07facb30cff
Bug: 12036
Ping-bug: 12701
Ping-bug: 13414
Reviewed-on: https://code.wireshark.org/review/16861
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2017-02-16 16:58:12 +00:00
Peter Wu 6b84ddee83 Make Libgcrypt a mandatory dependency
Removed all guards for HAVE_LIBGCRYPT, change autotools and CMake to
error out if it is not available. Update release notes, developer
documentation and README with the new status. Clarify relation with
GnuTLS in macosx-setup.sh. Install Libgcrypt via brew script.

Motivation for this change is that many dissectors depend on Libgcrypt
and having it optional increases the maintenance burden (there have been
several compile issues in the past due to the optional status).
Furthermore, wsutil has crypto code that can be replaced by Libgcrypt.

Change-Id: Idf0021b8c4cd5db70b8766f7dcc2a8b3acbf042f
Link: https://www.wireshark.org/lists/wireshark-dev/201702/msg00011.html
Reviewed-on: https://code.wireshark.org/review/20030
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-02-13 18:35:47 +00:00
Peter Wu 53c7f0a25e CMake,autotools: remove unneeded files, fixes build
sharkd does not perform any capturing, so do not include related
libraries and files. This fixes the CMake build too.

Change-Id: Ie002b09dbf60070e34dacc8ae7dadee6690d4db8
Reviewed-on: https://code.wireshark.org/review/19786
Reviewed-by: Dario Lombardo <lomato@gmail.com>
Tested-by: Dario Lombardo <lomato@gmail.com>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-01-25 15:19:03 +00:00
Jakub Zawadzki e2930f3b78 Add sharkd - daemon variant
sharkd listens on UNIX socket and allows external clients
to run commands like: loading file, analysing frames or running TAP(s).

Change-Id: I443b2865e4adfd1c11f4f57d09ff7fce6b1e8766
Reviewed-on: https://code.wireshark.org/review/18208
Petri-Dish: Jakub Zawadzki <darkjames-ws@darkjames.pl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Reviewed-by: Jakub Zawadzki <darkjames-ws@darkjames.pl>
2017-01-25 07:19:05 +00:00
Peter Wu 37790e90f5 cmake: fix empty data (Global Configuration) directory
Color filters were somehow not loaded. It turns out that the
BUILD_TIME_DATAFILE_DIR macro (for filesystem.c) was empty because
DATAFILE_DIR was defined after adding the wsutil directory. Fix it by
defining the variable before wsutil (but after epan).

Change-Id: I0d002b79499c80a90d8fcc14b06ced26c30b0453
Fixes: v2.3.0rc0-1830-gd5fdbef7f4 ("cmake,wslua,wsutil: load files from run/ instead of source tree")
Reviewed-on: https://code.wireshark.org/review/19600
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-01-10 17:09:29 +00:00
Peter Wu 31872655ad CMake,autotools: enable -Werror=implicit by default
The -Wimplicit error covers two warnings, trying to catch these cases:

Setting a global variable without declaring its type (-Wimplicit-int):

    undeclared_type = 1;

More importantly, -Wimplicit-function-declaration catches the case where
a function is not declared (missing header, programming error, etc.).

Turn these warnings into errors, most likely it will be a programming
error that results in a link failure anyway. See also
https://fedoraproject.org/wiki/Changes/Fedora26CFlags

Also fix autotools checks not to trigger -Wimplicit-int and
-Wimplicit-function-declaration (in krb5 check due to missing include).
Tested on Ubuntu 16.04 (autotools & cmake) and Arch Linux (cmake),
configure/cmake output and config.h are identical.

Change-Id: I137284263f3b1223df6e6a893111c3640802631f
Reviewed-on: https://code.wireshark.org/review/19331
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2016-12-28 22:31:28 +00:00
Dario Lombardo 194433a503 udpdump: remove libwireshark dependancy.
Export pdu routines have been rewritten here on purpose.

Change-Id: If4879de4c98b6f20a75df158cae0cf9a80ffae57
Reviewed-on: https://code.wireshark.org/review/19384
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-12-25 03:33:01 +00:00
Pascal Quantin 693dcd276e Build TRANSUM plugin
Add plugin to autofoo and CMake build systems and fix errors found
Add plugin to Windows installer (optional component activated by default)

Change-Id: Id1b777bdee04e53076b3291f6fb68d5abad6985d
Reviewed-on: https://code.wireshark.org/review/19228
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
2016-12-13 08:50:27 +00:00
Peter Wu f5e22a1487 codecs: Add support for G.722 and G.726
Integrate the Spandsp library for G.722 and G.726 support. Adds support
for G.722 and all eight variants of G.726.

Note: this also fixes a crash in Qt (buffer overrun, reading too much
data) caused by confusion of the larger output buffer (resample_buff)
with the smaller input buffer (decode_buff). It was not triggered before
because the sample rate was always 8k, but with the addition of the new
codecs, a different sample rate became possible (16k).

Fix also a crash which occurs when the RTP_STREAM_DEBUG macro is enabled
and the VOIP Calls dialog is opened (the begin frame, start_fd, is not
yet known and therfore a NULL dereference could occur).

Passes testing (plays normally without bad RTP timing errors) with
SampleCaptures files: sip-rtp-g722.pcap and sip-rtp-g726.pcap. Tested
with cmake (Qt), autotools (Qt and GTK+) with ASAN enabled.

Bug: 5619
Change-Id: I5661908d193927bba50901079119eeff0c04991f
Reviewed-on: https://code.wireshark.org/review/18939
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2016-12-06 17:51:47 +00:00
Peter Wu 83a1ab23ab cmake: Fix building with plugins disabled
When Lua is enabled, scripts can still be loaded from the plugin dir
(filesystem.c uses PLUGIN_INSTALL_DIR), so be sure to set it or the
cmake build fails.

Change-Id: I87d2d705434052220f9619438c90905c24b2a3a6
Reviewed-on: https://code.wireshark.org/review/18976
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-12-05 01:35:26 +00:00
Moshe Kaplan 20c57cb298 Enable exporting objects with tshark
A new "--export-object <protocol>,<destdir>" option is added to tshark.

This required refactoring Export Object behavior in all GUIs to give the
export object handling to the dissector, rather than the ui layer.
Included in the refactoring was fixing some serious memory leaks in Qt
Export Object dialog, crash due to memory scope issues in GTK Export
Object dialog, and addition sorting column feature in Qt dialog (set
up by creating a widget to manage the items that were previously
leaking memory)

Bug: 9319
Ping-Bug: 13174
Change-Id: I515d7662fa1f150f672b1476716f347ec27deb9b
Reviewed-on: https://code.wireshark.org/review/18927
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Tested-by: Michael Mann <mmann78@netscape.net>
Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-12-02 16:07:35 +00:00
Роман Донченко 4ace7ce80d Fix the build when a different version of Qt is in PATH
When we add our Qt to PATH, prepend it so that it will be found first.

Change-Id: I405496d6a08d676b5a2e0d9bd792de7ba9abe7f9
Reviewed-on: https://code.wireshark.org/review/18988
Petri-Dish: Graham Bloice <graham.bloice@trihedral.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Graham Bloice <graham.bloice@trihedral.com>
2016-11-30 11:44:41 +00:00
Peter Wu c274046556 cmake: install icons and .desktop files
Based on the install-data-local target from Makefile.am.

Change-Id: Ia2ff6b90475a30ed219019fd80afd1a498e3133c
Reviewed-on: https://code.wireshark.org/review/18708
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Balint Reczey <balint@balintreczey.hu>
Tested-by: Balint Reczey <balint@balintreczey.hu>
2016-11-18 20:15:23 +00:00
Gerald Combs 8e5e6ddc5e CMake: Enable ccache for gcc and clang.
Add an option to check for and use ccache. Disable it by default.

Change-Id: Ifc928d22715b7e06e53115455b31dbeaf2ee8332
Reviewed-on: https://code.wireshark.org/review/18715
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Reviewed-by: João Valverde <j@v6e.pt>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2016-11-09 18:29:11 +00:00
Peter Wu a77e8a3252 cmake: install missing profiles directory
Spotted when comparing an autotools "make install" tree with the cmake
one.

Change-Id: I68eed5f518a72a6476c3e464a6997f0b3855144e
Reviewed-on: https://code.wireshark.org/review/18713
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2016-11-08 18:56:32 +00:00
Jörg Mayer 54bbff9c65 Revert "Instead of supressing the warning of policy 42, set MACOSX_RPATH.":
---------
CMake Warning (dev):
  Policy CMP0042 is not set: MACOSX_RPATH is enabled by default.  Run "cmake
  --help-policy CMP0042" for policy details.  Use the cmake_policy command to
  set the policy and suppress this warning.

  MACOSX_RPATH is not specified for the following targets:

   epan
   wiretap
   wscodecs
   wsutil

This warning is for project developers.  Use -Wno-dev to suppress it.
-----------

This reverts commit 4728bc201b.

Change-Id: I7ea056d56c0352b54be5bebadc35de6173ef593f
Reviewed-on: https://code.wireshark.org/review/18562
Reviewed-by: Jörg Mayer <jmayer@loplof.de>
2016-10-29 07:03:38 +00:00
Joerg Mayer 4728bc201b Instead of supressing the warning of policy 42, set MACOSX_RPATH.
Fixes picking up the system libpcap instead of the one in /usr/local/lib/

Change-Id: I488c8512fc2cde145107062a6e8b7815ad764a3b
Reviewed-on: https://code.wireshark.org/review/18545
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Jörg Mayer <jmayer@loplof.de>
2016-10-29 06:02:37 +00:00
Alexis La Goutte cad7665f8b CMAkelists: fix typo on comment
Change-Id: I572ebbbae9ac91e2d566a39d0dae462bc40bcac8
Reviewed-on: https://code.wireshark.org/review/18522
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2016-10-28 07:21:18 +00:00
Pascal Quantin 28bbd56591 Add SBC decoding support to Windows
Change-Id: Ibef872dff26c22e2834e958c496c33a5695bb131
Reviewed-on: https://code.wireshark.org/review/18394
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2016-10-22 17:35:54 +00:00
Martin Kaiser a2d49125a5 cmake, qt4: check if QT4_FOUND
AFAICS, FindQt4.cmake sets QT4_FOUND, not Qt4_FOUND

This fixes compilation on Debian Wheezy (cmake 2.8.9, Qt 4.8.2).

Change-Id: I08b3ac6ae4292b8c8d3f9e8752780459e5329e29
Reviewed-on: https://code.wireshark.org/review/18395
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2016-10-22 17:17:26 +00:00
Gerald Combs e858829404 CMake: Disable Qt4 && (Windows || macOS).
We haven't built the Windows and macOS installers with Qt4 for quite
some time. In the case of macOS+Qt4 it looks like there's a problem with
the main screen size (bug 13009) and it's a safe bet that there are
other problems. There's not much we can do exept say "don't do that." Do
so at build time rather than after the user has installed Wireshark and
is trying to use it.

Change-Id: I22f47b9705ea044238046676b6336aa5feab3f60
Reviewed-on: https://code.wireshark.org/review/18364
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2016-10-22 11:21:09 +00:00
Peter Wu c9fa9b51de cmake: add dependency to build manual pages
"add_custom_command" outputs are only available as dependency in the
same directory, so create a new target such it can be used from the main
directory.

This fixes the OS X build with no parallelism (-j1).

Change-Id: I66aa5ae307be38ee715456a05fd55f55e4fa76e9
Reviewed-on: https://code.wireshark.org/review/18299
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Reviewed-by: Roland Knall <rknall@gmail.com>
2016-10-20 13:06:17 +00:00
Peter Wu 9c3d81adde Officially require Qt 4.8 or newer
Since v2.3.0rc0-1002-g1cd2255, Qt 4.8 became mandatory, reflect this in
the version requirements. This will not affect a lot of distributions
(RHEL and SLES only had Qt 4.6).

For a more complete list of supported platforms, see
https://wiki.wireshark.org/Development/Support_library_version_tracking

While at it, correct some other minimum versions in documentation.

Change-Id: I11f2dfba72c75429f6838404a81ed3b3dc302d5f
Reviewed-on: https://code.wireshark.org/review/18314
Reviewed-by: Michal Labedzki <michal.labedzki@tieto.com>
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2016-10-20 05:03:07 +00:00
Pascal Quantin 303948500f CQL: add LZ4/Snappy decompression support on Windows
Change-Id: I34374cf29357e2ed5062da1a5245b9adbabf732d
Reviewed-on: https://code.wireshark.org/review/18249
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2016-10-18 04:00:35 +00:00
Benoît Canet 47649d1c7f cql: add lz4 and snappy decompression
We do not use the STARTUP negotiation since a stream
can be captured in its middle but try to decompress
if the flag is present and fallback if it fails.

Change-Id: Iecbf49a45220b04be7808869c9884548eb1e7694
Signed-off-by: Benoît Canet <benoit@scylladb.com>
Reviewed-on: https://code.wireshark.org/review/17952
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
2016-10-17 18:28:45 +00:00
Uli Heilmeier 9a6539990d CMakeLists: Add man files
Current Wireshark.app bundle on OS X doesn't include man pages.

This is the second try after commit 7da23ca1a5bba4af5e1104f4d3d3d44e918552b0
has been reverted. Now cmake gets the information that the man files
are generated.

Bug: 12746
Change-Id: I34dfec65bd57587ee048d7e1e2557fc9ab2b32eb
Reviewed-on: https://code.wireshark.org/review/18170
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2016-10-14 03:33:34 +00:00
Balint Reczey b1cc056b12 Remove nghttp2 code and use system' nghttp2
Update debian, macos (setup / homebrew) download script
Update testsuite (don't try HPACK when build without nghttp2)

Change-Id: I365e5e17bc4fab4acd81b4c39ea7189a5d1ee112
Reviewed-on: https://code.wireshark.org/review/17347
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-10-13 19:26:10 +00:00
Uli Heilmeier 5fba7f368d Revert "CMakeLists: Add man files"
This reverts commit 55148a2ea4.

Change-Id: If93b97933cae4d8ffd1e4cc9a635def031ab0cc6
Reviewed-on: https://code.wireshark.org/review/18123
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2016-10-08 19:07:26 +00:00
Gerald Combs 22d8142ce7 Disable ASAN when building lemon.
If ASAN is enabled, use "-fno-sanitize=all" when building lemon. This
keeps us from having to set ASAN_OPTIONS=detect_leaks=0 in the
environment in order to build Wireshark.

Change-Id: I36f6d1a4f913ecabaf188f4c2b59216c8430d81a
Reviewed-on: https://code.wireshark.org/review/18098
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2016-10-07 17:54:35 +00:00
Uli Heilmeier 55148a2ea4 CMakeLists: Add man files
Current Wireshark.app bundle on OS X doesn't include man pages.

Change-Id: I4123105ae805c3f127dbfd74768b88d4da546c56
Ping-Bug: 12746
Reviewed-on: https://code.wireshark.org/review/17902
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-10-05 12:28:32 +00:00
Peter Wu 534787e402 cmake: make WERROR_COMMON_FLAGS a normal string
Instead of checking for the boolean "FALSE", just set an empty string.
This avoids the need to check for WERROR_COMMON_FLAGS before using it.

The transformation is the same for all files, remove
"if (WERROR_COMMON_FLAGS)" and "endif()", reindent and add quotes (since
we have a string here and not a list).

Modelines have been added where missing.

Change-Id: I0ab05ae507c51fa77336d49a99a226399cc81b92
Reviewed-on: https://code.wireshark.org/review/17997
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: João Valverde <j@v6e.pt>
Reviewed-by: Dario Lombardo <lomato@gmail.com>
Tested-by: Dario Lombardo <lomato@gmail.com>
2016-09-30 20:08:02 +00:00
Gerald Combs b725d6c9ac Add an initial "shellcheck" target.
Look for shellcheck in Autotools and CMake, and if found add a target
that checks some of our shell scripts.

Add a "source=" directive to targets that include test-common.sh so
that shellcheck will correctly process the scripts. Note that this
requires shellcheck 0.4.0 or later.

To do: Fix the issues that shellcheck found and check more scripts.

Change-Id: I441f9f59d8a3f8eec6718119c2370f2560b98f3c
Reviewed-on: https://code.wireshark.org/review/17943
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2016-09-26 23:17:02 +00:00
Peter Wu 05ae6a7560 Remove -Wdeclaration-after-statement
This is a C99 feature which we can use now.

Change-Id: I84a63d6bf282b79c9f0da0543b3b4f5a0cf0c81a
Reviewed-on: https://code.wireshark.org/review/17733
Reviewed-by: João Valverde <j@v6e.pt>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2016-09-17 09:11:49 +00:00