summaryrefslogtreecommitdiffstats
path: root/docbook/wsdg_src/wsdg_quick_setup.adoc
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-09-19 04:14:53 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-09-19 04:14:53 +0000
commita86c5f7cae7ec9a3398300555a0b644689d946a1 (patch)
tree39fe4b107c71174fd1e8a8ceb9a4d2aa14116248 /docbook/wsdg_src/wsdg_quick_setup.adoc
parentReleasing progress-linux version 4.2.6-1~progress7.99u1. (diff)
downloadwireshark-a86c5f7cae7ec9a3398300555a0b644689d946a1.tar.xz
wireshark-a86c5f7cae7ec9a3398300555a0b644689d946a1.zip
Merging upstream version 4.4.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'docbook/wsdg_src/wsdg_quick_setup.adoc')
-rw-r--r--docbook/wsdg_src/wsdg_quick_setup.adoc965
1 files changed, 0 insertions, 965 deletions
diff --git a/docbook/wsdg_src/wsdg_quick_setup.adoc b/docbook/wsdg_src/wsdg_quick_setup.adoc
deleted file mode 100644
index 15458bea..00000000
--- a/docbook/wsdg_src/wsdg_quick_setup.adoc
+++ /dev/null
@@ -1,965 +0,0 @@
-// WSDG Chapter Setup
-
-[#ChapterSetup]
-
-== Setup and Build Instructions
-
-[#ChSetupUNIX]
-
-=== UN*X
-
-[#ChSetupUNIXBuildEnvironmentSetup]
-
-==== Build environment setup
-
-The following must be installed in order to build Wireshark:
-
-* a C compiler and a C++ compiler;
-* the Flex lexical analyzer;
-* Python 3;
-* CMake;
-* several required libraries.
-
-Either make or Ninja can be used to build Wireshark; at least one of
-those must be installed.
-
-To build the manual pages, Developer's Guide and User's Guide, Asciidoctor, Xsltproc, and DocBook must be installed.
-
-Perl is required to generate some code and run some code analysis checks.
-
-Some features of Wireshark require additional libraries to be installed.
-The processes for doing so on various UN*X families is shown here.
-
-There are shell scripts in the `tools` directory to install the packages
-and libraries required to build Wireshark. Usage is available with the
-`--help` option. `root` permission is required to run the scripts.
-The available scripts and their options for a given family of UN*Xes are
-shown in the section for that family.
-
-[discrete]
-==== Alpine Linux
-
-The setup script is `tools/alpine-setup.sh`; its options are:
-
-* `--install-optional` install optional software as well
-* `--install-all` install everything
-* `[other]` other options are passed as-is to apk
-
-[discrete]
-==== Arch Linux and pacman-based systems
-
-The setup script is `tools/arch-setup.sh`; its options are:
-
-* `--install-optional` install optional software as well
-* `--install-test-deps` install packages required to run all tests
-* `--install-all` install everything
-* `[other]` other options are passed as-is to pacman
-
-[discrete]
-==== BSD systems such as FreeBSD, NetBSD, OpenBSD, and DragonFly BSD
-
-The setup script is `tools/bsd-setup.sh`; its options are:
-
-* `--install-optional` install optional software as well
-* `[other]` other options are passed as-is to pkg manager
-
-[discrete]
-==== Debian, and Linux distributions based on Debian, such as Ubuntu
-
-The setup script is `tools/debian-setup.sh`; its options are:
-
-* `--install-optional` install optional software as well
-* `--install-deb-deps` install packages required to build the .deb file
-* `--install-test-deps` install packages required to run all tests
-* `--install-qt5-deps` force installation of packages required to use Qt5
-* `--install-qt6-deps` force installation of packages required to use Qt6
-* `--install-all` install everything
-* `[other]` other options are passed as-is to apt
-
-[discrete]
-==== RPM-based Linux distributions such as Red Hat, Centos, Fedora, and openSUSE +
-
-The setup script is `tools/rpm-setup.sh`; its options are:
-
-* `--install-optional` install optional software as well
-* `--install-rpm-deps` install packages required to build the .rpm file
-* `--install-qt5-deps` force installation of packages required to use Qt5
-* `--install-qt6-deps` force installation of packages required to use Qt6
-* `--install-all` install everything
-* `[other]` other options are passed as-is to the packet manager
-
-[discrete]
-==== macOS
-
-You must first install Xcode.
-
-After installing Xcode, the setup script `tools/macos-setup.sh` will
-install the rest of the tools and libraries required to build Wireshark,
-except for Qt 6, as well as the additional tools required to build the
-documentation and the libraries required for all Wireshark features. If
-you're using Homebrew, the script `tools/macos-setup-brew.sh` will
-install the same tools and libraries from Homebrew.
-
-If you will be building Wireshark with Qt 6, which is the default for
-Wireshark 4.0 and later, you will also have to install Qt; the
-`tools/macos-setup.sh` script will not install Qt 6. To install
-Qt, go to the https://www.qt.io/download-qt-installer-oss[Download Qt
-for open source use page], select “macOS” if it's not already selected,
-and then select “Qt online installer for macOS“. This will download a
-.dmg for the installer; launch the installer. It will require that you
-log into your Qt account; if you don't have an account, select “Sign up“
-to create one. The next page will require you to accept the LGPL (Lesser
-GNU Public License); do so. Continue to the “Installation Folder“ page
-of the installer screen, and select the “Custom installation“ option.
-On the “Select Components“ screen of the installer, select, for the
-desired Qt version, the “macOS” component. For example, at the time of
-this writing the Qt {qt6-lts-version} “macOS” component is used to build
-the official packages. The “Qt Debug Information Files” component
-contains dSYM files which can be used for debugging. You can deselect
-all of the other the components such as “Qt Charts” or “Android xxxx”
-as they aren’t required.
-
-Qt 6 needs the "Qt 5 Compatibility Module" to be installed as well. Additionally, the module
-"Qt Multimedia" may be installed, to support advanced controls for playing back streams in the
-RTP Player dialog.
-
-[#ChSetupUNIXBuild]
-
-==== Building
-
-Before building:
-
-On macOS, you will need to set the Qt installation directory in the
-environment:
-
-[subs="attributes+"]
-----
-WIRESHARK_QT6_PREFIX_PATH=~/Qt/{qt6-lts-version}/macos
-export WIRESHARK_QT6_PREFIX_PATH
-----
-
-If you want to append a custom string to the package version, run the
-command
-
-[subs="attributes+"]
-----
-WIRESHARK_VERSION_EXTRA=-YourExtraVersionInfo
-export WIRESHARK_VERSION_EXTRA
-----
-
-The recommended (and fastest) way to build Wireshark is with CMake
-and Ninja. Building with make took nearly 2x time as Ninja in one
-experiment.
-
-CMake builds are best done in a separate build directory, such as a
-`build` subdirectory of the top-level source directory. +
-If that directory is a subdirectory of the top-level source directory,
-to generate the build files, change to the build directory and enter the
-following command:
-
-----
-cmake ..
-----
-
-to use make as the build tool or
-
-----
-cmake -G Ninja ..
-----
-
-to use Ninja as the build tool.
-
-If you created the build directory in the
-same directory that contains the top-level Wireshark source directory,
-to generate the build files, change to the build directory and enter the
-following command:
-
-----
-cmake ../{source directory}
-----
-
-to use make as the build tool or
-
-----
-cmake -G Ninja ../{source directory}
-----
-
-to use Ninja as the build tool. +
-`{source directory}` is the name of the
-top-level Wireshark source directory.
-
-If you need to build with a non-standard configuration, you can run
-
-[source,sh]
-----
-cmake -LH ../{source directory}
-----
-
-to see what options you have.
-
-You can then run Ninja or make to build Wireshark.
-
-----
-ninja
-# or
-make
-----
-
-Once you have build Wireshark with `ninja` or `make` above, you should be able to test it
-by entering `run/wireshark`.
-
-==== Optional: Install
-
-Install Wireshark in its final destination:
-
-----
-make install
-----
-
-Once you have installed Wireshark with `make install` above, you should be able
-to run it by entering `wireshark`.
-
-==== Optional: Create User’s and Developer’s Guide
-
-To build the Wireshark User's Guide and the Wireshark Developer's Guide,
-build the `all_guides` target, e.g. `make all_guides` or `ninja
-all_guides`. Detailed information to build these guides can be found in
-the file _docbook/README.adoc_ in the Wireshark sources.
-
-==== Optional: Create an installable or source code package
-
-You can create packages using the following build targets and commands:
-
-Source code tarball::
- Build the `dist` target.
-
-deb (Debian) package::
- Create a symlink in the top-level source directory to _packaging/debian_, then run `dpkg-buildpackage`.
-
-RPM package::
- Build the `wireshark_rpm` target.
-
-https://appimage.org[AppImage] package::
- Build the `wireshark_appimage` target.
-
-macOS .dmg package containing an application bundle::
- Build the `wireshark_dmg` or `logray_dmg` targets.
-
-Installable packages typically require building Wireshark first.
-
-==== Troubleshooting during the build and install on Unix
-
-A number of errors can occur during the build and installation process.
-Some hints on solving these are provided here.
-
-If the `cmake` stage fails you will need to find out why. You can check the
-file `CMakeOutput.log` and `CMakeError.log` in the build directory to find
-out what failed. The last few lines of this file should help in determining the
-problem.
-
-The standard problems are that you do not have a required development package on
-your system or that the development package isn’t new enough. Note that
-installing a library package isn’t enough. You need to install its development
-package as well.
-
-If you cannot determine what the problems are, send an email to the
-_wireshark-dev_ mailing list explaining your problem. Include the output from
-`cmake` and anything else you think is relevant such as a trace of the
-`make` stage.
-
-
-// Retain ChSetupWin32 for backward compatibility
-[#ChSetupWindows]
-=== Windows: Using Microsoft Visual Studio[[ChSetupWin32]]
-
-A quick setup guide for Windows development with recommended configurations.
-
-[WARNING]
-====
-Unless you know exactly what you are doing, you
-should strictly follow the recommendations below. They are known to work
-and if the build breaks, please re-read this guide carefully.
-
-Known traps are:
-
-. Not using the correct (x64 or x86) version of the Visual Studio command prompt.
-
-. Not using a supported version of Windows. Please check
- https://support.microsoft.com/en-gb/help/13853/windows-lifecycle-fact-sheet[here]
- that your installed version is supported and updated.
-
-====
-
-[#ChSetupChocolatey]
-
-==== Recommended: Install Chocolatey
-
-https://chocolatey.org/[Chocolatey] is a native package manager for
-Windows. There are https://chocolatey.org/packages[packages] for most of
-the software listed below. Along with traditional Windows packages it
-supports the Python Package Index.
-
-Chocolatey tends to install packages into its own path (%ChocolateyInstall%), although packages are free to use their own preferences.
-You can install Chocolatey packages using the command `choco install` (or its shorthand, `cinst`), e.g.
-
-[source,cmd]
-----
-rem Flex is required.
-choco install -y winflexbison3
-rem Git, CMake, Python, etc are also required, but can be installed
-rem via their respective installation packages.
-choco install -y git cmake python3
-----
-
-
-[#ChSetupMSVC]
-
-==== Install Microsoft Visual Studio
-
-Download and install https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&rel=17[“Microsoft Visual Studio 2022 Community Edition”].
-If you prefer you can instead download and install https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&rel=16[“Microsoft Visual Studio 2019 Community Edition”].
-The examples below are for Visual Studio 2022 but can be adapted for Visual Studio 2019.
-These are small utilities that download all the other required parts (which are quite large).
-
-Check the checkbox for “Desktop development with {cpp}” and then uncheck
-all the optional components other than
-
-* “MSVC ... VS 2022 {cpp}” item with the “... build tools (Latest)”
-* “Windows 11 SDK”
-* “{cpp} CMake tools for Windows"
-
-(unless you want to use them for purposes other than Wireshark).
-
-You can alternatively use Chocolatey to install Visual Studio, using the Visual Studio Community and Native Desktop workload packages.
-Note that this includes Visual Studio’s CMake component.
-
-----
-choco install -y visualstudio2022community visualstudio2022-workload-nativedesktop
-----
-
-// winget has basic VS 2022 and 2019 packages, but no native desktop workload packages.
-// https://github.com/microsoft/winget-pkgs/tree/master/manifests/m/Microsoft/VisualStudio
-
-You can use other Microsoft C compiler variants, but VS2022 is used to
-build the development releases and is the preferred option. It’s
-possible to compile Wireshark with a wide range of Microsoft C compiler
-variants. For details see <<ChToolsMSChain>>.
-
-You may have to do this as Administrator.
-
-Compiling with gcc or Clang is not recommended and will
-certainly not work (at least not without a lot of advanced
-tweaking). For further details on this topic, see
-<<ChToolsGNUChain>>. This may change in future as releases
-of Visual Studio add more cross-platform support.
-
-// XXX - mention the compiler and PSDK web installers -
-// which significantly reduce download size - and find out the
-// required components
-
-Why is this recommended?
-While this is a huge download, the Community Editions of Visual Studio are free (as in beer) and include the Visual Studio integrated debugger.
-Visual Studio 2022 is also used to create official Wireshark builds, so it will likely have fewer development-related problems.
-
-[#ChSetupQt]
-
-==== Install Qt
-
-The main Wireshark application uses the Qt windowing toolkit. To install
-Qt, go to the https://www.qt.io/download[“Download Qt” page], select
-"Download open source", then "Download Qt Online Installer", and download
-"*Qt Online Installer for Windows*". When executing it, sign up or log in,
-and use Next button to proceed. When asked, select "*Custom installation*".
-
-In the "Select Components" page, select your desired Qt version. We recommend
-the latest LTS version, and the stable Windows installers currently ship with Qt {qt6-lts-version}.
-Select the following components:
-
-* MSVC 2019 64-bit
-* Qt 5 Compatibility Module
-* Qt Debug Information Files (contains PDB files which can be used for debugging)
-* Under "Additional Libraries" select "Qt Multimedia" to support advanced
-controls for playing back streams in the RTP Player dialog
-* You can deselect all of the other the components
-such as “Qt Charts” or “Android xxxx” as they aren’t required.
-
-The CMake variable CMAKE_PREFIX_PATH (see `https://doc.qt.io/qt-6/cmake-get-started.html`) should be set as appropriate for your environment and should point to the Qt installation directory, e.g. _C:\Qt{backslash}{qt6-lts-version}\msvc2019_64_
-Alternatively you can also use the environment variable WIRESHARK_QT6_PREFIX_PATH.
-
-Qt 6 is the default option for building Wireshark, but Wireshark has support for Qt 5.12 and later. To enable Wireshark to build with Qt 5 pass `-DUSE_qt6=OFF`
-to cmake.
-
-[#ChSetupPython]
-
-==== Install Python
-
-Get a Python 3 installer from https://python.org/download/[] and install Python.
-Its installation location varies depending on the options selected in the installer and on the version of Python that you are installing.
-At the time of this writing the latest version of Python is 3.10, and common installation directories are
-_C:\Users{backslash}**username**\AppData\Local\Programs\Python\Python310_, _C:\Program Files\Python310_, and _C:\Python310_.
-
-Alternatively you can install Python using Chocolatey:
-
-----
-choco install -y python3
-----
-
-// Not sure how to document Chocolatey's installation location other than "could be anywhere, LOL"
-// https://community.chocolatey.org/packages/python3/#discussion
-Chocolatey will likely install Python in one of the locations above, or possibly in _C:\Tools\Python3_.
-
-// winget has Python 3 packages.
-// https://github.com/microsoft/winget-pkgs/tree/master/manifests/p/Python/Python/3
-
-[#ChSetupGit]
-
-==== Install Git
-
-Please note that the following is not required to build Wireshark but can be
-quite helpful when working with the sources.
-
-Working with the Git source repositories is highly recommended, as described in
-<<ChSrcObtain>>. It is much easier to update a personal source tree (local repository) with Git
-rather than downloading a zip file and merging new sources into a personal
-source tree by hand. It also makes first-time setup easy and enables the
-Wireshark build process to determine your current source code revision.
-
-There are several ways in which Git can be installed. Most packages are
-available at the URLs below or via https://chocolatey.org/[Chocolatey].
-Note that many of the GUI interfaces depend on the command line version.
-
-If installing the Windows version of git select the
-_Use Git from the Windows Command Prompt_ (in chocolatey the _/GitOnlyOnPath_
-option). Do *not* select the _Use Git and optional Unix tools from the Windows Command Prompt_
-option (in chocolatey the _/GitAndUnixToolsOnPath_ option).
-
-===== The Official Windows Installer
-
-The official command-line installer is available at https://git-scm.com/download/win.
-
-===== Git Extensions
-
-Git Extensions is a native Windows graphical Git client for
-Windows. You can download the installer from
-https://github.com/gitextensions/gitextensions/releases/latest.
-
-===== TortoiseGit
-
-TortoiseGit is a native Windows graphical Git
-similar to TortoiseSVN. You can download the installer from
-https://tortoisegit.org/download/.
-
-===== Command Line client via Chocolatey
-
-The command line client can be installed (and updated) using Chocolatey:
-----
-choco install -y git
-----
-
-// winget has git.
-// https://github.com/microsoft/winget-pkgs/tree/master/manifests/g/Git/Git
-
-===== Others
-
-A list of other GUI interfaces for Git can be found at
-https://git-scm.com/downloads/guis
-
-
-[#ChSetupCMake]
-
-==== Install CMake
-
-While CMake is required to build Wireshark, it might have been installed as a component of either Visual Studio or Qt.
-If that’s the case you can skip this step.
-If you do want or need to install CMake, you can get it from https://cmake.org/download/[].
-Installing CMake into the default location is recommended.
-Ensure the directory containing cmake.exe is added to your path.
-
-Alternatively you can install it using Chocolatey:
-
-----
-choco install -y cmake
-----
-
-// winget has CMake.
-// https://github.com/microsoft/winget-pkgs/tree/master/manifests/k/Kitware/CMake
-
-Chocolatey ensures cmake.exe is on your path.
-
-[#ChSetupAsciidoctor]
-
-==== Install Asciidoctor, Xsltproc, And DocBook
-
-https://asciidoctor.org/[Asciidoctor] can be run directly as a Ruby script or via a Java wrapper (AsciidoctorJ).
-The JavaScript flavor (Asciidoctor.js) isn’t yet supported.
-It is used in conjunction with Xsltproc and DocBook to generate the documentation you're reading and the User’s Guide.
-
-You can install AsciidoctorJ, Xsltproc, and DocBook using Chocolatey.
-AsciidoctorJ requires a Java runtime and there are https://en.wikipedia.org/wiki/List_of_Java_virtual_machines[many to choose from].
-Chocolatey doesn't support alternative package dependencies at the present time, including dependencies on Java.
-As a result, installing the asciidoctorj package won't automatically install a Java runtime -- you must install one separately.
-
-----
-choco install -y <your favorite Java runtime>
-choco install -y asciidoctorj xsltproc docbook-bundle
-----
-
-Chocolatey ensures that asciidoctorj.exe and xsltproc.exe is on your
-path and that xsltproc uses the DocBook catalog.
-
-// winget has no Asciidoctor, xsltproc, or DocBook packages.
-
-==== Install winflexbison
-
-Get the winFlexBison installer from
-https://sourceforge.net/projects/winflexbison/
-and install into the default location.
-Ensure the directory containing win_flex.exe is on your path.
-
-Alternatively you can install Winflexbison using Chocolatey:
-
-----
-choco install -y winflexbison3
-----
-
-Chocolatey ensures win_flex.exe is on your path.
-
-// winget has no bison package.
-
-==== Optional: Install Perl
-
-If needed you can get a Perl installer from
-http://strawberryperl.com/
-or
-https://www.activestate.com/
-and install Perl into the default location.
-
-Alternatively you can install Perl using Chocolatey:
-
-----
-choco install -y strawberryperl
-# ...or...
-choco install -y activeperl
-----
-
-// winget has StrawberryPerl.
-// https://github.com/microsoft/winget-pkgs/tree/master/manifests/s/StrawberryPerl/StrawberryPerl
-
-==== Install and Prepare Sources
-
-[TIP]
-.Make sure everything works
-====
-It’s a good idea to make sure Wireshark compiles and runs at least once before
-you start hacking the Wireshark sources for your own project. This example uses
-Git Extensions but any other Git client should work as well.
-====
-
-*Download sources* Download Wireshark sources into
-_C:\Development\wireshark_ using either the command line or Git Extensions:
-
-Using the command line:
-
-----
-cd C:\Development
-git clone https://gitlab.com/wireshark/wireshark.git
-----
-
-Using Git extensions:
-
-. Open the Git Extensions application. By default Git Extensions
- will show a validation checklist at startup. If anything needs to
- be fixed do so now. You can bring up the checklist at any time
- via menu:Tools[Settings].
-
-. In the main screen select _Clone repository_. Fill in the following:
-+
-Repository to clone: *`https://gitlab.com/wireshark/wireshark.git`*
-+
-Destination: Your top-level development directory, e.g. _C:\Development_.
-+
-Subdirectory to create: Anything you’d like. Usually _wireshark_.
-+
-[TIP]
-.Check your paths
-====
-Make sure your repository path doesn't contain spaces.
-====
-
-. Click the btn:[Clone] button. Git Extensions should start cloning the
- Wireshark repository.
-
-[#ChSetupPrepareCommandCom]
-
-==== Open a Visual Studio Command Prompt
-
-From the Start Menu (or Start Screen), navigate to the “Visual Studio 2022” folder and choose the https://docs.microsoft.com/en-us/cpp/build/building-on-the-command-line?view=msvc-170#developer_command_prompt_shortcuts[Command Prompt] appropriate for the build you wish to make, e.g. “x64 Native Tools Command Prompt for VS 2022” for a 64-bit version.
-Depending on your version of Windows the Command Prompt list might be directly under “Visual Studio 2022” or you might have to dig for it under multiple folders, e.g. menu:Visual Studio 2022[Visual Studio Tools,Windows Desktop Command Prompts].
-
-You can set up a build environment in your own command prompt by running the appropriate `vcvars__ARCHITECTURE__.bat` command.
-See https://docs.microsoft.com/en-us/cpp/build/building-on-the-command-line?view=msvc-170#use-the-developer-tools-in-an-existing-command-window[Use the Microsoft C++ toolset from the command line] for details.
-
-[TIP]
-.Pin the items to the Task Bar
-====
-Pin the Command Prompt you use to the Task Bar for easy access.
-====
-
-All subsequent operations take place in this Command Prompt window.
-
-. Set environment variables to control the build.
-+
---
-Set the following environment variables, using paths and values suitable for your installation:
-
-[subs="attributes+"]
-----
-rem Let CMake determine the library download directory name under
-rem WIRESHARK_BASE_DIR or set it explicitly by using WIRESHARK_LIB_DIR.
-rem Set *one* of these.
-set WIRESHARK_BASE_DIR=C:\Development
-rem set WIRESHARK_LIB_DIR=c:\wireshark-x64-libs
-rem Set the Qt installation directory
-set WIRESHARK_QT6_PREFIX_PATH=C:\Qt{backslash}{qt6-lts-version}\msvc2019_64
-rem Append a custom string to the package version. Optional.
-set WIRESHARK_VERSION_EXTRA=-YourExtraVersionInfo
-----
-
-Setting these variables could be added to a batch file to be run after you open
-the Visual Studio Tools Command Prompt.
-
-[TIP]
-.Use of Qt’s LTS branch
-====
-It is generally recommended to use a LTS ("long term support") version for Qt. The current LTS version for Qt 6 is
-{qt6-lts-version}.
-====
-
---
-
-. Create and change to the correct build directory.
-CMake is best used in an out-of-tree build configuration where the build is done in a separate directory from the source tree, leaving the source tree in a pristine state.
-64 and 32 bit builds require a separate build directory.
-Create (if required) and change to the appropriate build directory.
-+
---
-// XXX Our CI builds are in-tree in <src dir>/build.
-----
-mkdir C:\Development\wsbuild64
-cd C:\Development\wsbuild64
-----
-to create and jump into the build directory.
-
-The build directory can be deleted at any time and the build files regenerated as detailed in <<ChWindowsGenerate>>.
---
-
-[#ChWindowsGenerate]
-
-==== Generate the build files
-
-CMake is used to process the CMakeLists.txt files in the source tree and produce build files appropriate
-for your system.
-
-You can generate Visual Studio solution files to build either from within Visual Studio, or from the command
-line with MSBuild. CMake can also generate other build types but they aren't supported.
-
-The initial generation step is only required the first time a build directory is created. Subsequent
-builds will regenerate the build files as required.
-
-If you've closed the Visual Studio Command Prompt <<ChSetupPrepareCommandCom,prepare>> it again.
-
-To generate the build files enter the following at the Visual Studio command prompt:
-----
-cmake -G "Visual Studio 17 2022" -A x64 ..\wireshark
-----
-
-Adjusting the path to the Wireshark source tree as required.
-To use a different generator modify the `-G` parameter.
-`cmake -G` lists all the CMake supported generators, but only Visual Studio is supported for Wireshark builds.
-32-bit builds are no longer supported.
-
-The CMake generation process will download the required 3rd party libraries (apart from Qt)
-as required, then test each library for usability before generating the build files.
-
-At the end of the CMake generation process the following should be displayed:
-----
--- Configuring done
--- Generating done
--- Build files have been written to: C:/Development/wsbuild64
-----
-
-If you get any other output, there is an issue in your environment that must be rectified before building.
-Check the parameters passed to CMake, especially the `-G` option and the path to the Wireshark sources and
-the environment variables `WIRESHARK_BASE_DIR` and `CMAKE_PREFIX_PATH`.
-
-[#ChWindowsBuild]
-
-==== Build Wireshark
-
-Now it’s time to build Wireshark!
-
-. If you've closed the Visual Studio Command Prompt <<ChSetupPrepareCommandCom,prepare>> it again.
-
-. Run
-+
---
-----
-msbuild /m /p:Configuration=RelWithDebInfo Wireshark.sln
-----
-to build Wireshark.
---
-
-. Wait for Wireshark to compile. This will take a while, and there will be a lot of text output in the command prompt window
-
-. Run _C:\Development\wsbuild64\run\RelWithDebInfo\Wireshark.exe_ and make sure it starts.
-
-. Open menu:Help[About]. If it shows your "private" program
-version, e.g.: Version {wireshark-version}-myprotocol123
-congratulations! You have compiled your own version of Wireshark!
-
-You may also open the Wireshark solution file (_Wireshark.sln_) in the Visual Studio IDE and build there.
-
-TIP: If compilation fails for suspicious reasons after you changed some source
-files try to clean the build files by running `msbuild /m /p:Configuration=RelWithDebInfo Wireshark.sln /t:Clean`
-and then building the solution again.
-
-The build files produced by CMake will regenerate themselves if required by changes in the source tree.
-
-==== Debug Environment Setup
-
-You can debug using the Visual Studio Debugger or WinDbg. See the section
-on using the <<ChToolsDebugger, Debugger Tools>>.
-
-==== Optional: Create User’s and Developer’s Guide
-
-To build the Wireshark User's Guide and the Wireshark Developer's Guide,
-build the `all_guides` target, e.g. `msbuild all_guides.vcxproj`.
-Detailed information to build these guides can be found in the file
-_docbook\README.adoc_ in the Wireshark sources.
-
-==== Optional: Create a Wireshark Installer
-
-Note: You should have successfully built Wireshark
-before doing the following.
-
-If you want to build your own
-_Wireshark-{wireshark-version}-myprotocol123-x64.exe_, you'll need
-NSIS. You can download it from http://nsis.sourceforge.net[].
-
-Note that the 32-bit version of NSIS will work for both 64-bit and 32-bit versions of Wireshark.
-NSIS version 3 is required.
-
-If you've closed the Visual Studio Command Prompt <<ChSetupPrepareCommandCom,prepare>> it again. Run
-
-----
-msbuild /m /p:Configuration=RelWithDebInfo wireshark_nsis_prep.vcxproj
-msbuild /m /p:Configuration=RelWithDebInfo wireshark_nsis.vcxproj
-----
-
-to build a Wireshark installer.
-If you sign your executables you should do so between the “wireshark_nsis_prep” and “wireshark_nsis” steps.
-To sign your installer you should place the signing batch script on the path. It must be named "sign-wireshark.bat".
-It should be autodetected by CMake, to always require signing set the -DENABLE_SIGNED_NSIS=On CMake option.
-
-Run
-
-----
-packaging\nsis\wireshark-{wireshark-version}-myprotocol123-x64.exe
-----
-
-to test your new installer.
-It’s a good idea to test on a different machine than the developer machine.
-
-[#ChSetupMSYS2]
-
-=== Windows: Using MinGW-w64 with MSYS2
-
-MSYS2 comes with different environments/subsystems and the first thing you
-have to decide is which one to use. The differences among the environments
-are mainly environment variables, default compilers/linkers, architecture,
-system libraries used etc. If you are unsure, go with UCRT64.
-
-==== Building from source
-
-. Open the shell for the selected 64-bit environment.
-
-. Download the Wireshark source code using Git, if you haven't done so already,
- and cd into that directory.
-
-. Install needed dependencies:
-
- tools/msys2-setup.sh --install-all
-
-. Build using CMake + Ninja:
-
- mkdir build && cd build
- # Ninja generator is the default
- cmake -DENABLE_CCACHE=On -DFETCH_lua=Yes ..
- ninja
- ninja test # optional, to run the test suite
- ninja install # optional, install to the MSYS2 shell path
-
-The application should be launched using the same shell.
-
-==== Building an .exe installer
-
-. Follow the instructions above to compile Wireshark from source.
-
-. Build the NSIS installer target.
-
- ninja wireshark_nsis_prep
- ninja wireshark_nsis
-
-If successful the installer can be found in `$CMAKE_BINARY_DIR/packaging/nsis`.
-
-Alternatively you can also use the PKGBUILD included in the Wireshark
-source distribution to compile Wireshark into a binary package that can be
-https://www.msys2.org/wiki/Creating-Packages/[installed using pacman].
-
-==== Comparison with MSVC toolchain
-
-The official Wireshark Windows installer is compiled using Microsoft Visual
-Studio (MSVC). Currently the MSYS2 build has the following limitations compared to
-the build using MSVC:
-
-* Lua does not have https://github.com/Lekensteyn/lua-unicode[custom UTF-8 patches].
-
-* The Event Tracing for Windows (ETW) extcap cannot be compiled using MinGW-w64.
-
-* Enhanced Kerberos dissection with decryption is not available.
-
-* AirPcap is not supported.
-
-[#ChSetupCross]
-
-=== Windows: Cross-compilation using Linux
-
-It is possible to compile Wireshark for Microsoft Windows using Linux and MinGW.
-This way developers can deploy Wireshark on Windows systems without requiring
-a Windows host machine. Building for Windows using a Linux host is also
-easier for devs already familiar with Linux, the build itself is faster and it
-uses a very mature C/C++ compiler (GCC) and debugger (GDB).
-
-==== Using Fedora Linux
-
-https://fedoraproject.org/[Fedora Linux] provides the best out-of-the-box
-support for MinGW cross-compilation. Fedora is what the project uses to test
-the build and it's what we recommend. While any other reasonably modern Linux
-distribution can be used, that will make the process more time consuming and
-involve some trial and error to setup.
-
-The build instructions on Fedora follow the familiar recipe for building Wireshark
-using Linux.
-
-===== Building from source
-
-. Install needed dependencies:
-
- tools/mingw-rpm-setup.sh --install-all
-
-. Build using CMake + Ninja:
-
- mkdir build && cd build
- mingw64-cmake -G Ninja -DENABLE_CCACHE=Yes -DFETCH_lua=Yes ..
- ninja
-+
-Note that currently it is not possible to run the test-suite when cross-compiling.
-
-. Build the NSIS installer
-
- ninja wireshark_nsis_prep
- ninja wireshark_nsis
-
-If successful the installer can be found in `$CMAKE_BINARY_DIR/packaging/nsis`.
-
-===== Notes and comparison with MSVC builds
-
-* Only the MSVCRT C library for Microsoft Windows can be used. Support for the
- UCRT (Universal C Runtime) library on Fedora Linux is in the initial stages of
- deployment and not ready for prime-time (at the time of this writing).
-
-* Some optional dependencies are missing from Fedora repositories and must be
- compiled from source if desired. An up-to-date complete list can be found in
- the bug tracker (https://gitlab.com/wireshark/wireshark/-/issues/19108[issue 19108]).
-
-* Lua does not have https://github.com/Lekensteyn/lua-unicode[custom UTF-8 patches].
-
-* The Event Tracing for Windows (ETW) extcap cannot be compiled using MinGW-w64.
-
-* Enhanced Kerberos dissection with decryption is not available.
-
-* AirPcap is not supported.
-
-==== Using Arch Linux
-
-https://archlinux.org/[Arch Linux] has good support for MinGW using packages
-from the https://aur.archlinux.org/[AUR]. Note that the mingw-w64 AUR packages
-sometimes break. If that happens you may be required to fix it or skip the
-package until it is fixed by the maintainer, if it's an optional dependency.
-You may also want to consider using an
-https://wiki.archlinux.org/title/unofficial_user_repositories[unofficial user repository]
-(such as the https://martchus.no-ip.biz/repo/arch/ownstuff/[ownstuff] repository)
-to provide pre-compiled packages. This will greatly simplify the initial setup
-and subsequent upgrades.
-
-CAUTION: AUR packages and unofficial user repositories are user-produced
-content. These packages are completely unofficial and have not been thoroughly
-vetted. It is your decision whether to trust their maintainers and you take
-full responsibility for choosing to use them.
-
-You will need to install an https://wiki.archlinux.org/title/AUR_helpers[AUR helper].
-This guide assumes `paru` is being used.
-
-. Install required dependencies from official repositories:
-
- pacman -S mingw-w64 nsis lemon qt6-tools ccache
-
-. Install required dependencies from the AUR:
-
- paru -S mingw-w64-cmake
- paru -S mingw-w64-glib2
- paru -S mingw-w64-libgcrypt
- paru -S mingw-w64-c-ares
- paru -S mingw-w64-speexdsp
- paru -S mingw-w64-libpcap
-
-. Install Qt6:
-
- paru -S mingw-w64-qt6-base mingw-w64-qt6-5compat mingw-w64-qt6-multimedia
-
-. Install optional dependencies:
-
- paru -S mingw-w64-gnutls
- paru -S mingw-w64-lz4
- paru -S mingw-w64-snappy
- paru -S mingw-w64-opus
- paru -S mingw-w64-opencore-amr
- paru -S mingw-w64-libxml2
- paru -S mingw-w64-libnghttp2
- paru -S mingw-w64-libssh
- paru -S mingw-w64-minizip
-+
-Search the AUR for other dependencies not listed above.
-
-. Build Wireshark using CMake + Ninja. From the directory containing the
- Wireshark source tree run:
-
- mkdir build && cd build
- x86_64-w64-mingw32-cmake -G Ninja -DENABLE_CCACHE=Yes -DFETCH_lua=Yes \
- -DMINGW_SYSROOT=/usr/x86_64-w64-mingw32 ..
- ninja
-+
-This will automatically download and build Lua as a static library.
-+
-To reconfigure the CMake build you may to do it explicitly by running
-`x86_64-w64-mingw32-cmake .` in the build directory,
-instead of letting `ninja` do it for you automatically.
-
-. Build the NSIS installer
-
- ninja wireshark_nsis_prep
- ninja wireshark_nsis
-
-If everything goes well the installer can be found in `$CMAKE_BINARY_DIR/packaging/nsis`.
-
-The same notes as the build using Fedora apply.