Development/Support_library_version_tracking

This page helps us make educated decisions about how far we can bump our minimum library versions by letting us know what library versions are supported on different operating system versions. Linux is somewhat special here because it tends to be hard to upgrade these libraries without changing entire versions. Although we have more control over libraries on Windows and macOS, we are still often limited by official support for specific OS versions.

Library and tool versions

This sections tracks versions and release dates of various libraries and tools.

Qt

Release dates can be found in Qt-X.Y-release articles at https://wiki.qt.io/Category:Release

The Qt Company officially supports the following platforms and configurations.

The highlighted Wireshark versions below mark the Qt version that is shipped with the macOS and Windows installers. For supported macOS hardware and maximum macOS versions, see also https://en.wikipedia.org/wiki/MacOS#Hardware_compatibility

Qt version Date Notes
4.6.0 Dec 2009 Minimum required version in initial porting effort
4.7.0 Sep 2010 Minimum required version since v1.99.10rc0-296-gcc9de69b
4.8.0 Dec 2011 Minimum required version since v2.3.0rc0-1002-g1cd22559 (Qt Long Term Support (LTS) release)
5.0.0 Dec 2012 Minimum required version on Windows and macOS since v2.3.0rc0-1178-ge8588294
5.1.0 Jul 2013
5.2.0 Dec 2013 Minimum required version since v2.9.0rc0-27-g5d8964cd
5.3.0 May 2014 Minimum required version since v3.3.0rc0-111-g14e4759b56 OS X 10.6 Snow Leopard through 10.9 Mavericks, Wireshark 2.6.x.
5.4.0 Dec 2014 Mac OS X 10.7 Lion through 10.10 Yosemite, "limited" support for 10.6 Snow Leopard
5.5.0 Jul 2015 Mac OS X 10.7 Lion through 10.10 Yosemite
5.6.0 Mar 2016 Minimum required version since February 2021 (v3.5.0rc0-1032-gabf9e027fc). Long Term Support (LTS) release, OS X 10.8 Mountain Lion through 10.11 El Capitan
5.7.0 Jun 2016 Requires C++11, OS X Mountain Lion through El Capitan
5.8.0 Jan 2017 OS X Mavericks through Sierra
5.9.0 May 2017 Minimum required version since April 2022 (v3.7.0rc0-1874-g13075b4ff0) Long Term Support (LTS) release, OS X 10.10 Yosemite through 10.12 Sierra, Wireshark 3.0.0rc1 (macOS only)
5.10.0 Dec 2017 Minimum required version since July 2022 (v3.7.2rc0-116-g06cd84a6e9) OS X El Capitan through High Sierra
5.11.0 May 2018 Minimum required version since November 2023 (v4.3.0rc0-524-g520f0d8e26) OS X 10.11 El Capitan through 10.13 High Sierra
5.12.0 Dec 2018 Long Term Support (LTS) release, macOS 10.12 Sierra through 10.14 Mojave, Wireshark 3.0.x, 3.2.x, 3.4.x (3.4.x macOS only)
5.13.0 Jun 2019 macOS Sierra through Mojave
5.14.0 Dec 2019 macOS 10.13 High Sierra through 10.15 Catalina
5.15.0 May 2020 Minimum required version since October 2024 (v4.5.0rc0-722-g018c1ca00d) Long Term Support (LTS) release, macOS 10.13 High Sierra through 10.15 Catalina, Wireshark 3.4.x, 3.6.x, 4.0.x (3.4.x and 4.0.x Windows only)
6.0.0 Aug 2020 No official support for 32-bit Windows or Windows prior to Windows 10, Requires C++17, macOS 10.14 through 11
6.1.0 May 2021 macOS 10.14 through 12
6.2.0 Sep 2021 Long Term Support (LTS) release, macOS 10.14 through 12, Wireshark 4.0.x, 4.2.x (macOS only)
6.3.0 Mar 2022 macOS 10.14 through 12
6.4.0 Sep 2022 macOS 10.14 through 13
6.5.0 Mar 2023 Long Term Support (LTS) release, macOS 11 through 13, Wireshark 4.2.x, 4.4.x (4.2.x Windows only)
6.6.0 Oct 2023 macOS 11 through 13
6.7.0 Apr 2024 macOS 11 through 14

GLib and GTK+

Note: GTK+ support was completely dropped in Wireshark 3.0 (v2.9.0rc0-33-g36dc5781ba), so we don't bother tracking it anymore (x)

GLIB version Gtk2 version Gtk3 version Date Notes
2.12 2.10 Jul 2006 GTK+ 2.12 is min. req. since 11 July 2011
2.14 Aug 2007 GLib 2.14 is min. req. since 11 July 2011 (old)
2.22 2.18 Sep 2009 GLib 2.22 is min. req. since Aug 2016 (v2.3.0rc0-201-gd21295f9)
2.28 3.0 Feb 2011 GTK+ 3.0 is the minimum supported version next to GTK+ 2).
2.32 3.4 Feb 2012 GLib 2.32 is min. req. since Apr 2018 (v2.9.0rc0-34-gb30e3d42)
2.36 3.8 Mar 2013 GLib 2.36 is min. req. since Nov 2020 (v3.5.0rc0-201-g15d315c2ae)
2.38 3.10 Oct 2014 GLib 2.38 is min. req. since Mar 2021 (v3.5.0rc0-1150-g2d7b68aa09)
2.50 3.22 Sep 2016 GLib 2.50 is min. req. since Apr 2022 (v3.7.0rc0-1892-g2dd07bc5b9)
2.54 x Jan 2018 GLib 2.54 is min. req. since Nov 2022 (v4.1.0rc0-746-ge449b560c0)
2.56 x Mar 2018 RHEL8, Ubuntu Bionic (18.04)
2.58 x Sep 2018 Debian Buster
2.60 x Mar 2019
2.62 x Sep 2019
2.64 x Feb 2020 Ubuntu Focal (20.04)
2.66 x Sep 2020 Debian Bullseye
2.68 x Mar 2021 RHEL9
2.70 x Sep 2021 OpenSUSE 15.4
2.72 x Mar 2022

GnuTLS

Note: GnuTLS has a stable branch, and sometimes a development branch and/or a previous stable branch. These are not always obvious, as the development branch becomes the stable branch when it is deemed ready; e.g. in July 2018 3.5.x was the stable branch (announcement), 3.6.x was the development branch (announcement), 3.3.x was the previous stable branch receiving bug-fixes (announcement), and 3.4.x was unsupported.

Version Date Notes
1.2.0 Jan 2005 Min. req. since at least Jun 2009 (old)
2.8.0 May 2009
2.10.0 Jun 2010
2.12.0 Mar 2011 Min. req. since Oct 2015 (v2.1.0rc0-244-gfe1ab42f). Last of the 2.x series.
3.0.0 Jul 2011 License changed from LGPLv2.1+ to LGPLv3 (incompatible license)
2.12.18 Mar 2012 Windows releases from Wireshark 1.4.13+, 1.6.7+, 1.8+ (r330)
3.1.10 Mar 2013 License changed back to LGPLv2.1+ (development version)
3.2.0 May 2013 Min. req. since Nov 2018 (v2.9.0rc0-2678-gbcd32b07)
3.1.22 Mar 2014 Windows releases from Wireshark 1.12+ (r400)
3.2.15 May 2014 Windows releases from Wireshark 1.12.2+, 2.0+ (r409)
3.3.0 Apr 2014 Min. req. since Jan 2021 (v3.5.0rc0-530-gfbd3fb3138)
3.3.27 Mar 2017 SLES 12SP3 (and later)
3.3.29 Feb 2018 RHEL7
3.4.0 Apr 2015 (gnutls_pubkey_import_privkey is working now for PKCS#11, commit)
3.4.10 Mar 2016 Ubuntu 16.04
3.4.11 Apr 2016 Windows releases from Wireshark v2.3.0rc0-2384-g0b8a12fd
3.5.8 Jan 2016 Min. req. since Apr 2022 (v3.7.0rc0-1897-gd2064ae188). Replaced 3.4.x as stable release branch (announcement). Debian Stretch
3.5.18 Feb 2018 Ubuntu 18.04
3.6.2 Feb 2018 New flag: GNUTLS_PKCS11_TOKEN_PROTECTED_AUTHENTICATION_PATH
3.6.3 Jul 2018 Addition of low-level PKCS#11 API: gnutls_pkcs11_token_get_ptr. Windows releases from Wireshark 2.9.1rc0-181-gcfd79b4701
3.6.4 Sep 2018 Ubuntu 18.10, Fedora 28, 29
3.6.5 Dec 2018 Replaces 3.5.x as stable releases branch (announcement).
3.6.7 Mar 2019 Debian Buster, SLES15 SP2 / OpenSUSE Leap 15.2
3.6.8 May 2019 RHEL8
3.6.13 Mar 2020 Ubuntu 20.04LTS
3.7.9 Feb 2023 Windows releases from v4.1.0rc0-2510-g46dd9c31bb

Libgcrypt

Version Date Notes
1.1.92 Feb 2004 Min. req. since Jul 2008 (old)
1.4.0 Dec 2007
1.4.2 Sep 2008 Min. req. since Oct 2015 (v2.1.0rc0-189-g82ec0bb0)
1.4.6 Jul 2010 Windows releases from Wireshark 1.4.13+, 1.6.7+, 1.8+ (r330)
1.5.0 Jun 2011 Min. req. since Jan 2021 (v3.5.0rc0-512-g5c936174c6). Needed for simpler PKCS#1 padding handling in SSL
1.5.3 Jul 2013 RHEL7
1.6.0 Dec 2013 Windows releases from 1.12+ (r400). Needed for AEAD support in ISAKMP (AESCCM) and TLS (CCM/GCM)
1.6.1 Jan 2014 SLES 12
1.6.2 Aug 2014 Windows releases from Wireshark 1.12.2, 2.0+ (r409) until 2.6
1.6.5 Feb 2016 Ubuntu 16.04LTS
1.7.0 Apr 2016 Needed for ChaCha20-Poly1305 support (TLS 1.3 decryption)
1.7.2 Jul 2016 Ubuntu 16.10
1.7.6 Jan 2017 Debian Stretch, Windows releases from v2.3.0rc0-2384-g0b8a12fd
1.8.0 Jul 2017 Min. req. since April 2022 (v3.7.0rc0-1876-gb80cdaa243) Needed for Blake2s support (WireGuard decryption)
1.8.1 Aug 2017 Ubuntu 18.04LTS
1.8.2 Dec 2017 SLES 15
1.8.3 Jun 2018 Windows releases from v2.9.0rc0-1361-g4d015678, Debian Buster, RHEL8
1.8.5 Aug 2019 Ubuntu 20.04LTS
1.10.2 Apr 2023 Windows releases from v4.1.0rc0-2503-g035f9531f3

CMake

See also https://gitlab.kitware.com/cmake/community/-/wikis/CMake-Versions-on-Linux-Distros for a longer list of distributions. See also https://github.com/curl/curl/pull/990#issuecomment-245112823 for a history of CMake version + changes.

Version Date Notes
2.8.3 Nov 2010 Minimum required version for non-Windows (before Feb 2016)
2.8.8 Apr 2012 Minimum required version for non-Windows (as of Feb 2016, v2.1.0rc0-2202-g6b54fbf3)
2.8.11 May 2013 Minimum required version for non-Windows (as of Oct 2017, v2.5.0rc0-1352-gf19a2c0b)
2.8.12 Nov 2013 Last 2.8 release
3.1.3 Feb 2015 Minimum required version for Windows (as of Apr 2015, v1.99.6rc0-369-g0d37980a)
3.5.1 Mar 2016 Minimum required version for non-Windows (as of May 2018, v2.9.0rc0-547-g4c1690ac).
3.7.0 Jan 2017 Minimum required version for Windows (as of Jun 2017, v2.5.0rc0-92-g4edc6115).
3.10.0 Nov 2017 Minimum required version for non-Windows (as of Apr 2022, v3.7.0rc0-1889-g3407992cb4). SLES 15 (3.10.2)
3.11.0 Mar 2018 RHEL8 (3.11.4)
3.13.0 Nov 2018 Debian Buster (3.13.4); Minimum required version for Windows (as of Sep 2019, v3.1.1rc0-398-g990e409273) and non-Windows (as of Nov 2022, v4.1.0rc0-848-gd7ae26bf6c)
3.14.0 Mar 2019 Initial VS 2019 generator
3.16.0 Nov 2019 Required for Qt 6. Ubuntu 20.04 (3.16.3); Minimum required version (as of Oct 2024, v4.5.0rc0-572-gc7d99f6951)
3.17.0 Mar 2020 SLES 15SP2 (3.17.0)
3.18.0 Jul 2020 Debian Bullseye (3.18.4), RHEL8.4 (3.18.2)
3.19.2 Dec 2020 Apple Silicon first supported
3.20.0 Mar 2021 RHEL8.5 (3.20.2), SLES 15SP4 (3.20.4)
3.22.0 Jul 2021 Ubuntu 22.04 (Jammy) (3.22.1)
3.25.0 Nov 2022 Debian Bookworm (3.25.1)
3.26.0 Mar 2023 RHEL8.10 (3.26.5)
3.28.0 Dec 2023 SLES 15SP6 (3.28.3)

Python

Python 3.6 or newer has become required since v3.7.1rc0-315-gdac75fba7f. The test suite requires pytest and pytest-xdist. Pytest must be at least 3.9.0 due to the use of the tmp_path fixture.

Distro package version
RHEL/CentOS 8 python3-pytest 3.4.2

On older systems, you can install it via: pip3 install pytest pytest-xdist

Lua

Lua 5.1 and 5.2 have been the only supported versions due to the bitop library (Bug 10881). Lua 5.3 and 5.4 will be the only supported versions in Wireshark 4.4.0 (Lua BitOp has been ported to Lua 5.3 and 5.4, though the newer native Lua bit operation support is also available.)

Almost all current Linux and other UN*X distributions have a Lua 5.3 or 5.4 package, and most have a Lua 5.1, 5.2, or LuaJIT (largely 5.2) package.

Nghttp2

nghttp2 is required for complete HTTP/2 support. It also powers HTTP/2 support in curl, and should be increasingly available. The package name is typically "libnghttp2".

Platform version
RHEL/CentOS 7 (EPEL) 1.31.1
RHEL/CentOS 8 1.33.0
Fedora 29 1.39.2
Debian Stretch 1.18.1
Ubuntu 16.04 1.7.1
Ubuntu 18.04 1.30.0
macOS (homebrew) 1.39.2
SLES 12 SP5 1.7.1
SLES 15 1.40.0

The minimum version is 1.11.0 as of April 2022 (v3.7.0rc0-1902-g91987dc0ab), to eliminate the need for a deprecated function.

Libssh

libssh (not to be confused with libssh2) is used by several of the extcaps.

Version Date Notes
0.6.0 Jan 2014 Min. req. since Nov 2015 (v2.1.0rc0-635-gd6da95231e)
0.8.5 Oct 2018 Min. req. since Jan 2024 (v4.3.0rc0-1276-g49ada98a88)
0.8.7 Feb 2019 Debian Buster, OpenSUSE 15.2
0.9.0 Jun 2019 AES-GCM, ECDSA/Ed25519 certs, DH Group Exchange KEX, etc. macOS releases since 3.2.0
0.9.2 Dec 2019 Better package provided CMake config file
0.9.3 Dec 2019 Ubuntu Focal
0.9.5 Sep 2020 Windows releases since 3.6.0
0.9.6 Aug 2021 Ubuntu Jammy, RHEL8, OpenSUSE 15.4, macOS releases since 4.0.0
0.9.8 Dec 2023 Debian Bullseye
0.10.0 Aug 2022 SHA-1 and DSA disabled by default
0.10.4 Sep 2022 RHEL9
0.10.5 May 2023 Windows and macOS releases since 4.2.0
0.10.6 Dec 2023 Debian Bookworm
0.11.0 June 2024 (est.) Easier to add back algorithms, better logging

Linux Distributions

Note: This site allows you to enter a package name and see which Red Hat-based distributions use what version of the package.

https://pkgs.org/ also provided a service to identify the latest versions.

https://distrowatch.com/ is also another good source for seeing package versions in various distributions.

RHEL/CentOS

Latest versions are listed, earlier versions are between parentheses.

Distribution Initial Release End of Normal Support GLIB version Qt5 version Qt6 version
Red Hat EL/CentOS 7 2014/6 2024/6 2.50.3 (2.40.0, 2.36.3) 5.9.7 (5.6.2) (none)
Red Hat EL/CentOS 8 2019/5 2029/5 2.56.4 5.15.2 (5.12.15, 5.11.1) (none)
Red Hat EL/CentOS 9 2022/5 2032/5 2.68.4 5.15.2 EPEL:6.6.2

Note: EPEL is an optional repository for extra packages.

Fedora

Releases can be found at https://fedoraproject.org/wiki/Releases. Every 6 months a new version is released with 13 months of support.

Distribution GLIB version Qt5 version Qt6 version
Fedora 28 2.56.4 5.11.3 (none)
Fedora 33 2.66.4 5.15.2 (none)
Fedora 34 2.68.1 5.15.2 6.2.1
Fedora 35 2.70.2 5.15.2 6.2.1
Fedora 36 2.72.0 5.15.3 6.3.1
Fedora 37 2.74.1 5.15.6 6.3.1
Fedora 38 2.76.1 5.15.8 6.4.3
Fedora 39 2.78.0 5.15.10 6.6.2 (6.5.2)
Fedora 40 2.80.3 5.15.14 6.7.1 (6.6.2)

SUSE Linux Enterprise Server

Ten years of General Support for a major version, with a six month window to upgrade to the latest Service Pack after it is released. Version numbering skipped from 12 to 15. As of version 15 openSUSE and SLES closely track each other.

Building with Qt6 on SLES and openSUSE is tricky because the default compiler is gcc-7.5.0, which has incomplete C++17 support (and Qt6 requires C++17). It will error complaining about #include <filesystem> statements (on gcc 7 these must be #include <experimental/filesystem> - https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html) unless a different C++ compiler is installed and used.

Distribution Initial release End of Normal Support GLIB version Qt5 version Qt6 version
SLES 15 2018/07 2019/12 2.54.3 5.9.4
SLES 15 SP1 2019/06 2021/01 2.54.3 5.9.4
SLES 15 SP2 2020/07 2022/01 2.62.5 5.12.7
SLES 15 SP3 2021/06 2023/01 2.62.5 5.12.7
SLES 15 SP4 2022/06 2024/01 2.70.4 5.15.2
SLES 15 SP5 2023/06 2025/01 2.70.5 5.15.8 6.4.2 (experimental)
SLES 15 SP6 2024/06 2028/07 2.70.5 5.15.8 6.6.3 (experimental)

openSUSE

Version numbering changed over time: ..., 13.2, Leap 42.1, ..., Leap 42.3, Leap 15.0. From openSUSE Leap: Each major version at least 36 months lifetime, until the next major Leap version is available, with a six month window to upgrade to the latest minor release. Minor releases are expected to be roughly annually, thus giving approximately an 18 months total lifetime. Until openSUSE 13.2: 8 month release cycle, 18 months lifetime, see https://en.opensuse.org/Lifetime

Search for packages in openSUSE here: https://software.opensuse.org/search

Distribution GLIB version Qt5 version Qt6 version
openSUSE Leap 15.0 2.54.3 5.9.4 (none)
openSUSE Leap 15.2 2.62.5 5.12.7 (experimental)
openSUSE Leap 15.3 2.62.6 5.12.7 (experimental)
openSUSE Leap 15.4 2.70.4 5.15.2 (experimental)
openSUSE Leap 15.5 2.70.5 5.15.8 6.4.2 (experimental)
openSUSE Leap 15.6 2.78.6 5.15.12 6.6.3 (experimental)

Debian

Release EOL information

Distribution GLIB version Qt5 version Qt6 version
bullseye 2.66.8 5.15.2 6.4.2 (backports)
bookworm 2.74.6 5.15.8 6.4.2
trixie (testing) 2.78.3 5.15.10 6.4.2

Ubuntu

Releases are on a 6 month release cycle, 9 month (regular), 5 years (LTS) lifetime.

Distribution GLIB version Qt5 version Qt6 version
focal (20.04LTS) 2.64.2 5.12.8 x
hirsute (21.04) 2.66.0 5.15.2 x
impish (21.10) 2.68.2 5.15.2 x
jammy (22.04) 2.72.1 5.15.3 6.2.4
noble (24.04) 2.78.0 5.15.13 6.4.2

There are PPAs for focal (and earlier) with Qt 6.2 and Qt 5.15 packages backported from later releases.

macOS

Third party libraries can be installed on macOS using the tools/macos-setup.sh script in the Wireshark sources (or macosx-setup.sh in the top-level directory in source releases up to 2.4.x). You can show a list of libraries and their versions by running grep '\\\_VERSION=\\\[0-9\\\]' tools/macos-setup.sh.

Many developers also install libraries using Homebrew and the tools/macos-setup-brew.sh script.

Windows

FOSS library packaging and distribution on Windows has historically been a mess, but things are improving. Two notable projects that might fix this are vcpkg and Conan. Neither of them provide packages for all of the libraries that we use, so we maintain repositories of 64-bit packages which are installed using tools/win-setup.ps1 in the Wireshark sources.

Library vcpkg Conan Notes
Bcg729 yes no
Brotli yes yes
c-ares yes yes
GLib yes yes
GnuTLS almost no GnuTLS provides Windows builds
iLBC yes no
Kerberos (krb5) no no vcpkg requested
libgcrypt almost no vcpkg port is Linux / macOS only.
libmaxminddb yes no
libpcap yes yes
libsmi no no
libssh yes no This is not the same as libssh2.
libxml2 yes yes
Lua yes yes
lz4 yes yes
minizip yes yes
Nghttp2 yes yes
opus yes yes
Qt yes no
SBC no no
Snappy yes yes
WinSparkle no no
Zlib yes yes
zstd yes yes

Imported from https://wiki.wireshark.org/Development/Support_library_version_tracking on 2020-08-11 23:13:11 UTC