# - use %caps when rpm supports it: %attr(750,root,wireshark) %caps(cap_net_raw,cap_net_admin=eip) %{_sbindir}/dumpcap
#
# Conditional build:
+%bcond_with falcosecurity # Falco plugins support + falcodump and logray apps
%bcond_without kerberos5 # Kerberos V support
%bcond_without snmp # SNMP support
%bcond_without gui # without QT GUI
+%bcond_with qt5 # use Qt5 instead of Qt6
-%define branch_ver 3.6
+%define branch_ver 4.2
+%define qt5_ver 5.12
+%define qt6_ver 6
Summary: Network traffic and protocol analyzer
Summary(es.UTF-8): Analizador de tráfico de red
Summary(pl.UTF-8): Analizator ruchu i protokołów sieciowych
Summary(ru.UTF-8): Анализатор сетевого траффика
Summary(uk.UTF-8): Аналізатор мережевого трафіку
Name: wireshark
-Version: 3.6.1
+Version: 4.2.4
Release: 1
License: GPL v2+
Group: Networking/Utilities
-Source0: https://www.wireshark.org/download/src/%{name}-%{version}.tar.xz
-# Source0-md5: ac3f49fbef232264aa9b4f8426691b04
+Source0: https://2.na.dl.wireshark.org/src/%{name}-%{version}.tar.xz
+# Source0-md5: cebb012489563a8eb9c3829cdcb0579c
URL: https://www.wireshark.org/
BuildRequires: bcg729-devel
-BuildRequires: bison
-BuildRequires: c-ares-devel >= 1.5.0
-BuildRequires: cmake >= 3.5
+BuildRequires: c-ares-devel >= 1.13.0
+BuildRequires: cmake >= 3.13
BuildRequires: doxygen
+%{?with_falcosecurity:BuildRequires: falcosecurity-libs-devel}
BuildRequires: flex
BuildRequires: gcc >= 5:3.2
BuildRequires: gettext-tools
-BuildRequires: glib2-devel >= 1:2.38
-BuildRequires: gnutls-devel >= 3.3.0
+BuildRequires: glib2-devel >= 1:2.54.0
+BuildRequires: gnutls-devel >= 3.5.8
%{?with_kerberos5:BuildRequires: heimdal-devel}
BuildRequires: libbrotli-devel
+# libcap-devel doesn't pull libcap, but only libcap-libs
+BuildRequires: libcap
BuildRequires: libcap-devel
-BuildRequires: libgcrypt-devel >= 1.5.0
+BuildRequires: libgcrypt-devel >= 1.8.0
BuildRequires: libmaxminddb-devel
BuildRequires: libnl-devel >= 3.2
BuildRequires: libpcap-devel >= 2:1.0.0-4
BuildRequires: lz4-devel
BuildRequires: minizip-devel
%{?with_snmp:BuildRequires: net-snmp-devel}
-BuildRequires: nghttp2-devel
-BuildRequires: perl-tools-pod
+BuildRequires: nghttp2-devel >= 1.11.0
+BuildRequires: nghttp3-devel
+BuildRequires: opencore-amr-devel
+BuildRequires: opus-devel
+BuildRequires: pcre2-8-devel
+BuildRequires: perl-base
BuildRequires: pkgconfig >= 1:0.7
-BuildRequires: python3 >= 1:3.4
-BuildRequires: rpmbuild(macros) >= 1.527
+BuildRequires: python3 >= 1:3.6
+BuildRequires: rpmbuild(macros) >= 1.742
BuildRequires: ruby-asciidoctor >= 1.5
%{?with_gui:BuildRequires: sbc-devel >= 1.0}
BuildRequires: sed >= 4.0
BuildRequires: snappy-devel
BuildRequires: spandsp-devel
-%{?with_gui:BuildRequires: speexdsp-devel}
+BuildRequires: speexdsp-devel
BuildRequires: systemd-devel
BuildRequires: tar >= 1:1.22
+BuildRequires: webrtc-libilbc-devel
BuildRequires: w3m
BuildRequires: xz
BuildRequires: zlib-devel
BuildRequires: zstd-devel >= 1.0.0
%if %{with gui}
-BuildRequires: Qt5Core-devel >= 5.3
-BuildRequires: Qt5Multimedia-devel >= 5.3
-BuildRequires: Qt5PrintSupport-devel >= 5.3
-BuildRequires: Qt5Svg-devel >= 5.3
-BuildRequires: Qt5Widgets-devel >= 5.3
+%if %{with qt5}
+BuildRequires: Qt5Concurrent-devel >= %{qt5_ver}
+BuildRequires: Qt5Core-devel >= %{qt5_ver}
+BuildRequires: Qt5Gui-devel >= %{qt5_ver}
+BuildRequires: Qt5Multimedia-devel >= %{qt5_ver}
+BuildRequires: Qt5PrintSupport-devel >= %{qt5_ver}
+BuildRequires: Qt5Widgets-devel >= %{qt5_ver}
BuildRequires: libstdc++-devel >= 6:5
-BuildRequires: qt5-build >= 5.3
-BuildRequires: qt5-linguist >= 5.3
+BuildRequires: qt5-build >= %{qt5_ver}
+BuildRequires: qt5-linguist >= %{qt5_ver}
+%else
+BuildRequires: Qt6Concurrent-devel >= %{qt6_ver}
+BuildRequires: Qt6Core-devel >= %{qt6_ver}
+BuildRequires: Qt6Gui-devel >= %{qt6_ver}
+BuildRequires: Qt6Multimedia-devel >= %{qt6_ver}
+BuildRequires: Qt6PrintSupport-devel >= %{qt6_ver}
+BuildRequires: Qt6Qt5Compat-devel >= %{qt6_ver}
+BuildRequires: Qt6Widgets-devel >= %{qt6_ver}
+BuildRequires: libstdc++-devel >= 6:9
+BuildRequires: qt6-build >= %{qt6_ver}
+BuildRequires: qt6-linguist >= %{qt6_ver}
%endif
+%endif
+Requires(post,postun): desktop-file-utils
Requires(post,postun): gtk-update-icon-cache
Requires(post,postun): shared-mime-info
+Requires: %{name}-common = %{version}-%{release}
+%if %{with qt5}
+Requires: Qt5Core >= %{qt5_ver}
+Requires: Qt5Gui >= %{qt5_ver}
+Requires: Qt5Multimedia >= %{qt5_ver}
+Requires: Qt5PrintSupport >= %{qt5_ver}
+Requires: Qt5Widgets >= %{qt5_ver}
+%else
+Requires: Qt6Core >= %{qt6_ver}
+Requires: Qt6Gui >= %{qt6_ver}
+Requires: Qt6Multimedia >= %{qt6_ver}
+Requires: Qt6PrintSupport >= %{qt6_ver}
+Requires: Qt6Qt5Compat >= %{qt6_ver}
+Requires: Qt6Widgets >= %{qt6_ver}
+%endif
Requires: gdk-pixbuf2 >= 2.26
Requires: hicolor-icon-theme
Suggests: xdg-utils
Provides: ethereal
Provides: ethereal-gnome
-Obsoletes: ethereal
-Obsoletes: ethereal-gnome
-Obsoletes: wireshark-gui-common
-Obsoletes: wireshark-qt
+Obsoletes: ethereal < 1
+Obsoletes: ethereal-gnome < 1
+Obsoletes: wireshark-gui-common < 3
+Obsoletes: wireshark-qt < 3
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
Group: Networking
Requires(post,postun): /sbin/setcap
Requires: %{name}-libs = %{version}-%{release}
-Requires: gnutls >= 3.1.10
+Requires: gnutls >= 3.5.8
Requires: libpcap >= 0.4
Requires: libssh >= 0.6.0
Provides: ethereal-common
Provides: group(wireshark)
Provides: wireshark-tools
-Obsoletes: ethereal-common
-Obsoletes: wireshark-tools
+Obsoletes: ethereal-common < 1
+Obsoletes: wireshark-tools < 1.0.3-3
%description common
Wireshark is the name for powerful graphical network sniffer, traffic
Requires: %{name}-common = %{version}-%{release}
Requires: libpcap >= 0.4
Provides: tethereal
-Obsoletes: tethereal
+Obsoletes: tethereal < 1
%description -n twireshark
Twireshark is a network protocol analyzer. It lets you capture packet
Summary: Wireshark packet capture and dissection libraries
Summary(pl.UTF-8): Biblioteki Wiresharka do przechwytywania i sekcji pakietów
Group: Libraries
-Requires: glib2 >= 1:2.32
-Requires: libgcrypt >= 1.4.2
+Requires: c-ares >= 1.13.0
+Requires: glib2 >= 1:2.54.0
+Requires: libgcrypt >= 1.8.0
Requires: libnl >= 3.2
+Requires: zstd >= 1.0.0
Obsoletes: libwiretap < 2.4.0
%description libs
Summary(pl.UTF-8): Pliki nagłówkowe bibliotek Wiresharka
Group: Development/Libraries
Requires: %{name}-libs = %{version}-%{release}
-Requires: glib2-devel >= 1:2.32
-Requires: libgcrypt-devel >= 1.4.2
+Requires: glib2-devel >= 1:2.54.0
+Requires: libgcrypt-devel >= 1.8.0
Requires: libnl-devel >= 3.2
Obsoletes: libwiretap-devel < 2.4.0
%prep
%setup -q
+%if %{with falcosecurity}
+%{__sed} -i -e 's/CMAKE_CXX_STANDARD 11/CMAKE_CXX_STANDARD 17/' CMakeLists.txt
+%endif
+
%build
-install -d build
-cd build
-%cmake .. \
+%cmake -B build \
-DBUILD_androiddump=ON \
-DBUILD_corbaidl2wrs=ON \
-DBUILD_dcerpcidl2wrs=ON \
+ %{?with_falcosecurity:-DBUILD_falcodump=ON} \
+ %{?with_falcosecurity:-DBUILD_logray=ON} \
-DBUILD_mmdbresolve=ON \
-DBUILD_randpktdump=ON \
-DBUILD_tfshark=OFF \
- -DBUILD_wireshark=ON \
+ %{cmake_on_off gui BUILD_wireshark} \
-DCMAKE_INSTALL_DATADIR:PATH=share/wireshark \
+ -DCMAKE_INSTALL_DOCDIR:PATH=%{_docdir}/wireshark \
-DCMAKE_INSTALL_LIBDIR:PATH=%{_lib} \
-DDISABLE_WERROR=ON \
-DENABLE_LUA=ON \
-DENABLE_PLUGINS=ON \
-DENABLE_PORTAUDIO=ON \
-DENABLE_QT5=ON \
- -DENABLE_SMI=ON
+ -DENABLE_SMI=ON \
+ -DUSE_qt6=%{!?with_qt5:ON}%{?with_qt5:OFF}
-%{__make}
+%{__make} -C build
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} -C build install \
+%{__make} -C build install install-headers \
DESTDIR=$RPM_BUILD_ROOT
# used by installed headers, but not installed by cmake
%clean
rm -rf $RPM_BUILD_ROOT
-%pre
+%post
%update_icon_cache hicolor
+%update_desktop_database_post
%update_mime_database
%postun
%update_icon_cache hicolor
+%update_desktop_database_postun
%update_mime_database
%pre common
%{_iconsdir}/hicolor/128x128/mimetypes/org.wireshark.Wireshark-mimetype.png
%{_iconsdir}/hicolor/256x256/apps/org.wireshark.Wireshark.png
%{_iconsdir}/hicolor/256x256/mimetypes/org.wireshark.Wireshark-mimetype.png
-%{_iconsdir}/hicolor/scalable/apps/org.wireshark.Wireshark.svg
%{_mandir}/man1/wireshark.1*
+%if %{with falcosecurity}
+%attr(755,root,root) %{_bindir}/logray
+%{_datadir}/metainfo/org.wireshark.Logray.metainfo.xml
+%{_datadir}/mime/packages/org.wireshark.Logray.xml
+%{_desktopdir}/org.wireshark.Logray.desktop
+%{_iconsdir}/hicolor/*x*/apps/org.wireshark.Logray.png
+%{_iconsdir}/hicolor/*x*/mimetypes/org.wireshark.Logray-mimetype.png
+%{_iconsdir}/hicolor/scalable/apps/org.wireshark.Logray.svg
+%endif
%endif
%files common
%defattr(644,root,root,755)
%doc AUTHORS* ChangeLog NEWS README.md README.linux doc/README.*
-%dir %{_libdir}/%{name}/extcap
-%dir %{_libdir}/%{name}/plugins
-%dir %{_libdir}/%{name}/plugins/%{branch_ver}
-%dir %{_libdir}/%{name}/plugins/%{branch_ver}/codecs
-%dir %{_libdir}/%{name}/plugins/%{branch_ver}/epan
-%dir %{_libdir}/%{name}/plugins/%{branch_ver}/wiretap
-%attr(755,root,root) %{_libdir}/%{name}/extcap/androiddump
-%attr(755,root,root) %{_libdir}/%{name}/extcap/ciscodump
-%attr(755,root,root) %{_libdir}/%{name}/extcap/dpauxmon
-%attr(755,root,root) %{_libdir}/%{name}/extcap/randpktdump
-%attr(755,root,root) %{_libdir}/%{name}/extcap/sshdump
-%attr(755,root,root) %{_libdir}/%{name}/extcap/sdjournal
-%attr(755,root,root) %{_libdir}/%{name}/extcap/udpdump
-%attr(755,root,root) %{_libdir}/%{name}/plugins/%{branch_ver}/codecs/*.so
-%attr(755,root,root) %{_libdir}/%{name}/plugins/%{branch_ver}/epan/*.so
-%attr(755,root,root) %{_libdir}/%{name}/plugins/%{branch_ver}/wiretap/*.so
+%doc %{_docdir}/wireshark
%attr(755,root,root) %{_bindir}/capinfos
%attr(755,root,root) %{_bindir}/captype
%attr(750,root,wireshark) %{_bindir}/dumpcap
%attr(755,root,root) %{_bindir}/reordercap
%attr(755,root,root) %{_bindir}/sharkd
%attr(755,root,root) %{_bindir}/text2pcap
+%dir %{_libdir}/%{name}/extcap
+%attr(755,root,root) %{_libdir}/%{name}/extcap/androiddump
+%attr(755,root,root) %{_libdir}/%{name}/extcap/ciscodump
+%attr(755,root,root) %{_libdir}/%{name}/extcap/dpauxmon
+%if %{with falcosecurity}
+%attr(755,root,root) %{_libdir}/%{name}/extcap/falcodump
+%endif
+%attr(755,root,root) %{_libdir}/%{name}/extcap/randpktdump
+%attr(755,root,root) %{_libdir}/%{name}/extcap/sshdump
+%attr(755,root,root) %{_libdir}/%{name}/extcap/sdjournal
+%attr(755,root,root) %{_libdir}/%{name}/extcap/udpdump
+%attr(755,root,root) %{_libdir}/%{name}/extcap/wifidump
+%dir %{_libdir}/%{name}/plugins
+%dir %{_libdir}/%{name}/plugins/%{branch_ver}
+%dir %{_libdir}/%{name}/plugins/%{branch_ver}/codecs
+%attr(755,root,root) %{_libdir}/%{name}/plugins/%{branch_ver}/codecs/*.so
+%dir %{_libdir}/%{name}/plugins/%{branch_ver}/epan
+%attr(755,root,root) %{_libdir}/%{name}/plugins/%{branch_ver}/epan/*.so
+%dir %{_libdir}/%{name}/plugins/%{branch_ver}/wiretap
+%attr(755,root,root) %{_libdir}/%{name}/plugins/%{branch_ver}/wiretap/*.so
%{_mandir}/man1/androiddump.1*
%{_mandir}/man1/capinfos.1*
%{_mandir}/man1/captype.1*
%{_mandir}/man1/ciscodump.1*
-%{_mandir}/man1/dftest.1*
%{_mandir}/man1/dpauxmon.1*
%{_mandir}/man1/dumpcap.1*
%{_mandir}/man1/editcap.1*
-%{_mandir}/man1/etwdump.1.*
+%{_mandir}/man1/etwdump.1*
+%if %{with falcosecurity}
+%{_mandir}/man1/falcodump.1*
+%endif
%{_mandir}/man1/idl2wrs.1*
%{_mandir}/man1/mergecap.1*
%{_mandir}/man1/mmdbresolve.1*
%{_mandir}/man1/sshdump.1*
%{_mandir}/man1/text2pcap.1*
%{_mandir}/man1/udpdump.1*
+%{_mandir}/man1/wifidump.1*
%{_mandir}/man4/extcap.4*
%{_mandir}/man4/wireshark-filter.4*
%files libs
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libwireshark.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libwireshark.so.15
+%attr(755,root,root) %ghost %{_libdir}/libwireshark.so.17
%attr(755,root,root) %{_libdir}/libwiretap.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libwiretap.so.12
+%attr(755,root,root) %ghost %{_libdir}/libwiretap.so.14
%attr(755,root,root) %{_libdir}/libwsutil.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libwsutil.so.13
+%attr(755,root,root) %ghost %{_libdir}/libwsutil.so.15
%dir %{_libdir}/%{name}
%files devel
%attr(755,root,root) %{_libdir}/libwsutil.so
%{_includedir}/wireshark
%{_pkgconfigdir}/wireshark.pc
-%{_libdir}/%{name}/cmake
+%{_libdir}/cmake/wireshark