Hide many of our installation sections from the components page, which
installs them unconditionally. This brings the NSIS installer behavior in
line with the Debian and RPM installers and simplifies the installer UI.
Leave the extcaps individualy selectable for now.
We've been setting the InstallDirRegKey attribute since the NSIS package
was added in 2001, but we never set its corresponding registry key.
Fixes#15069.
This made the Arm64 builder fail with
Internal compiler error #12345: deflateInit() failed(initialization failed [-2]).
This reverts commit 3a6848c901.
[skip ci]
To reduce startup external file parsing replce the manuf file with
static arrays compiled into the binary.
Add 3 tables for MA-L, MA-M and MA-S. Add a fourth table to direct
a 24-bit MAC prefix (OUI) to one of these tables.
Adapt the make-manuf.py script to generate the static C data
instead of the text file.
The arrays are sorted and a binary search is performed to map
an OUI (24bit/28bit/36bit) to a short and long name.
To speed up start-up we no longer read the services file
from an external resource. Instead it is compiled statically
into the binary in a sorted array.
The personal services file is still parsed and loaded at startup,
if it exists, to allow users to add custom entries and override
global entries.
For historical reasons the port list is mostly composed of
the same entry for TCP and UDP. To avoid a lot of duplication
we add an extra TCP+UDP table and do two lookups for TCP or
UDP, one in the TCP+UDP table and the other in the TCP/UDP table.
Because the services name space is pretty sparse, with lots of
holes, we also use a binary search instead of a linear array
with aprox. 49000 entries, where most would be empty.
Use "x64" to refer to "Windows running on 64-bit Intel processors". Get
rid of WIRESHARK_TARGET_PROCESSOR_ARCHITECTURE in favor of
WIRESHARK_TARGET_PLATFORM because the latter is shorter.
Try to autodetect ENABLE_SIGNED_NSIS and enable it if
sign-wireshark.bat is detected on the path.
Instead of skipping the whole Qt deployment, including things like
translations, just skip the DLLs in the manifest. This is useful
if the target machine has Qt installed and the static DLL list
for cross-compiling is not adequate.
We remove the workaround for signing an installer that requires
creating an installer that just exists to write an uninstaller
and use WriteUninstaller instead to generate the installer.
This is done at install time. This method allows the uninstaller
to be created portably, namely using Linux.
To add back the signing aspect, including for Windows, we need
to use !uninstfinalize. This changes the compiler to generate
the installer at compile time and is also a portable method of
signing code. The code signing script will have to be platform
specific. This is called by the NSIS compiler using system()
and must be a batch file on Windows. The code assumes a script
named 'sign-wireshark.bat' exists on the path to sign the
executables.
An example of a sign.bat script would be:
signtool sign /f c:\path\to\MySPC.pfx /t http://[insert timestamp URL] /fd sha256 %1
This is also a nice simplification of the build procedure for NSIS.
The !uninstfinalize stanza requires NSIS 3.08.
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
Qt deployment does not work because windeployqt cannot be run
when cross compiling (unless Wine is used). Skip this step until
other solutions are investigated and this is fixed. This means
that the target system must have the Qt Windows SDK installed with
MinGW binaries.
Also skip crreating an installer. Has somewhat complicated requirements
for signing that currently don't work when cross-compiling.
This allows building a usable NSIS Windows installer from Fedora,
with the limitations mentioned above.
Ping #19108
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.
Move Acknowledgements to a separate file to enable some code
simplification and improve maintenance and discoverability
for acknowlegements.
Convert the Acknowledgements file to Github flavored markdown
and display it in rich text using QTextBrowser.
Add Acknowledgements.md to NSIS installer
Create Logwolf-specific copies of the various Wireshark NSIS config files
and modify them to install and uninstall Logwolf. There are still a bunch
of rough edges, but the installer works for a test capture I have here.
Rename the following build targets, similar to the recent macOS target
name changes:
nsis_package_prep to wireshark_nsis_prep
nsis_package to wireshark_nsis
Rename some NSIS files to reflect that they're specific to Wireshark.
Update the documentation and CI configurations.
If the Visual C++ Redistributable installation fails, don't point users
to KB2999226. It applied to Windows 8.1 and earlier, and is more likely
to cause confusion than help fix the problem. Ping #17748.