Sometimes you have a capture file that has many duplicate frames
because of how the capture was made, and its convenient to ignore
the duplicates so you can concentrate on the data and not all
the TCP warnings.
This adds a preference in the "Protocols" section to ignore
duplicates. This currently only works while reading a capture file
*not* during a live capture.
Warn the user, but don't exit if we're running the x64 installer on an
Arm64 system. Warn the user and do exit if we're running the Arm64
installer on an x64 system. Fixup the 32 bit check.
Ping #18123
Use "arm64" instead of "win64arm". This lets us simplify some of our
CMake logic. Note that we could simplify things further if we used "x64"
instead of "win64" in various places.
Use FindPython3.cmake instead of the deprecated FindPythonInterp.cmake,
to make sure we actually find Python3.
Don't use the module with MSYS2 because it is buggy and exhibits broken
behaviour.
Run it earlier in the configuration, just as a precaution, so other
indirect calls to find python don't happen earlier.
These binaries are required to build an NSIS installer. Download
them using CMake instead. This avoids a dependency on win-setup.ps1,
that gets in the way using MSYS2.
This reverts commit d6380e7ae4.
Turns out we were unwittingly still using FindPythonInterp
instead of FindPython3.cmake, via LocatePythonModule.cmake,
nd this commit actually enabled FindPython3.cmake. Also turns
out FindPython3.cmake is far too clever and very buggy with MSYS2.
It will usually not find the correct python binary and fail in many
suprising ways, depending on which combination of Python Windows
installations is present.
Add support for using the host system's lemon binary instead of
compiling our own. Many linux distributions include a lemon
parser generator package. Using this binary when cross-compiling
is much simpler than configuring the build to use the build host
toolchain to compile lemon.
This changes the existing code for the MSVC installer as little
as possible to allow building the Wireshark .exe Windows installer
using the MinGW-w64 toolchain.
Currently the DLL dependency list is static, this may change in
the future. Ideally we would use CPack and install() logic
to copy the DLLs.
The msys2checkdeps.py script is copied from the Inkscape project[1].
It doesn't have a specific license identifier. The Inkscape project
is licensed under the GPL version 2 or later.
TODO: Download Npcap and USBPcap using CMake instead of requiring
manual action.
[1]https://gitlab.com/inkscape/inkscape
Ping #17771.
Use CMake components to install the guides, instead of
a custom target and script.
We have to inconveniently place the install() command in the
top-level CMakeLists.txt file, instead of docbook/CMakeLists.txt,
so that we can use
cmake --install <builddir> --component UserGuide
insead of
cmake --install <builddir>/docbook --component UserGuide
so that it can be used in the wireshark.spec file without too
many contortions.
As a comment in its code says, it requires libpcap, so attempting to
build it if you don't have libpcap is guaranteed to fail, and we don't
require you to have libpcap's headers and libraries in order to build
Wireshark, so just don't build it if we didn't find libpcap.
Fixes#19059.
Remove the pytest compatibility layer and require the real thing.
Fix running tests with pytest and Python 3.11+. Pytest strongly
favors using fixtures instead of setup/teardown methods so
use that. This fixes the test suite with pytest and Python 3.11
and has the added benefit of removing the dependency on a private
unittest property.
We remove the dedicated log file code in SubprocessTestCase and just
write to standard out. This presumes to leverage the pytest logging
features, such as writing to a log file. To make the system more useful
we should probably rely on logging calls instead of writing to
stdout.
The teardown log file cleanup logic and filename_from_id() method
are replaced with pytest fixtures and native temporary path support.
They are cleaner to use and do not require messy teadown logic. The
temporary files are created in the system temporary directory. By
default the last three runs are kept.
More work is needed to complete remove the unittest module dependency.
Fixes#18740.
The correct Wireshark application icons are the ones created by Elliott
Aldrich in 2013 and added in 584c14c66c. They replaced the original
icons that I created in 2006 and which should no longer be used.
Keep the old icons around for the time being, but make it clear that
they're of historic importance.
Fixes#19040.
Add support for building for Windows on Arm64 using Visual C++ to the
CMake environment. Add our initial batch of packages to win-setup.ps1.
Ping #18123
Revert 9864a877ce, since it causes problems with Sparkle:
error 13:09:41.018537-0700 Wireshark Error: the bundle being updated at NSBundle </path/to/wireshark/build/run> (loaded) has no CFBundleIdentifier! This will cause preference read/write to not work properly.
error 13:09:41.019087-0700 Wireshark Error: the bundle being updated at NSBundle </path/to/wireshark/build/run> (loaded) has no CFBundleIdentifier! This will cause preference read/write to not work properly.
error 13:09:41.019165-0700 Wireshark Error: the bundle being updated at NSBundle </path/to/wireshark/build/run> (loaded) has no CFBundleIdentifier! This will cause preference read/write to not work properly.
error 13:09:41.019216-0700 Wireshark Error: the bundle being updated at NSBundle </path/to/wireshark/build/run> (loaded) has no CFBundleIdentifier! This will cause preference read/write to not work properly.
error 13:09:41.019303-0700 Wireshark This host (/path/to/wireshark/build/run) has no CFBundleVersion! This attribute is required.
error 13:09:41.019628-0700 Wireshark Fatal updater error (6): Sparkle cannot target a bundle that does not have a valid bundle identifier for run.
Update the comments in CMakeLists.txt to note this.
Since f63628d9c4, `run/wireshark` has been a wrapper script which execs
run/Wireshark.app/Contents/MacOS/Wireshark. It looks like newer versions
of Qt call `[NSApp activateIgnoringOtherApps:YES]`, so this should no
longer be needed.
Make `run/wireshark` and `run/logray` symlinks like our other
executables. This makes it possible to run a debugger on those files and
simplifies CMakeLists.txt a little.
This means that running `run/wireshark` will result in a lower-case
application name in the main menu bar, but if that's an issue you can
still run `open run/Wireshark.app` on the command line.
AddressSanitizer is available on MSVC since Visual Studio 2019 16.9.
The Microsoft LINK linker doesn't recognize or need the ASAN flag,
unlike with clang/gcc, and will give a LNK4044 warning that will
cause checks and compilation to fail.
So we add the flag with add_compile_options instead of adding to CMAKE_C_FLAGS
so that it doesn't get added to the linker options for MSVC, and use
add_link_options (added in CMake 3.13, our minimum) when not on MSVC.
Note that this only includes AddressSanitizer support, unlike on
clang/gcc where LinkSanitizer is automatically part of ASAN builds
(and the standalone "-fsanitize=leak" is less well tested.)
Dumpcap depends on wsutil.so. The path to the shared library
is encoded in the RPATH (or RUNPATH) property of ELF binaries.
This is currently an absolute path on most Unixy systems.
Dumpcap could not be made to work with a relative RPATH because it
uses elevated privileges and some loaders will ignore relative
RPATHs and non-standard paths under those circumstances, because of
(justified) security concerns.
To enable relocation of the program we link dumpcap statically
with wsutil instead.
This provides a fully working relocatable installation on Linux
and other platforms that support relative RPATHs.
Dumpcap depends on wsutil.so. The path to the shared library
is encoded in the RPATH (or RUNPATH) property of ELF binaries.
This is currently an absolute path on most Unixy systems.
Dumpcap could not be made to work with a relative RPATH because it
uses elevated privileges and some loaders will ignore relative
RPATHs and non-standard paths under those circumstances, because of
(justified) security concerns.
To enable relocation of the program we link dumpcap statically
with wsutil instead.
This provides a fully working relocatable installation on Linux
and other platforms that support relative RPATHs.
In certain situations using __MINGW64__ is not correct.
We want to have the condition apply using MinGW-w64 but also
using MSYS2, which the __MINGW64__ condition alone does not
capture.
Add a HAVE_MSYSTEM C define and use it where appropriate.
Dumpcap depends on wsutil.so. The path to the shared library
is encoded in the RPATH (or RUNPATH) property of ELF binaries.
This is currently an absolute path on most Unixy systems.
Dumpcap could not be made to work with a relative RPATH because it
uses elevated privileges and some loaders will ignore relative
RPATHs and non-standard paths under those circumstances, because of
(justified) security concerns.
To enable relocation of the program we link dumpcap statically
with wsutil instead.
This provides a fully working relocatable installation on Linux
and other platforms that support relative RPATHs.
Instead of having AUTHORS.src and copying that to a new AUTHORS
file with git log information appended to that have a single
AUHTORS file and update it in place with git log info.
Install documentation to DOCDIR instead of DATADIR.
The code must be fixed to open the Help URLs from
this new path.
This only affects Unix-like FHS platforms. Windows
installation does its own thing.
Needs testing with macOS packaging.
DFTest is a private test utility and isn't installed anywhere.
I don't think it makes sense to maintain a man page. Certainly
doesn't make sense to ship it.
The doc file is understandably minimal so just nuke it.