summary refs log tree commit diff
path: root/pkgs/applications/networking/sniffers/wireshark/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/networking/sniffers/wireshark/default.nix')
-rw-r--r--pkgs/applications/networking/sniffers/wireshark/default.nix168
1 files changed, 97 insertions, 71 deletions
diff --git a/pkgs/applications/networking/sniffers/wireshark/default.nix b/pkgs/applications/networking/sniffers/wireshark/default.nix
index 99839d9c99d..fb3399ee569 100644
--- a/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -1,88 +1,90 @@
 { lib
 , stdenv
-, buildPackages
 , fetchFromGitLab
-, pkg-config
-, pcre2
-, perl
-, flex
+
+, ApplicationServices
+, asciidoctor
+, bcg729
 , bison
-, gettext
-, libpcap
-, libnl
+, buildPackages
 , c-ares
+, cmake
+, flex
+, gettext
+, glib
+, gmp
 , gnutls
+, libcap
 , libgcrypt
 , libgpg-error
+, libkrb5
 , libmaxminddb
+, libnl
 , libopus
-, bcg729
-, spandsp3
-, libkrb5
-, speexdsp
+, libpcap
 , libsmi
+, libssh
+, lua5
 , lz4
-, snappy
-, zstd
+, makeWrapper
 , minizip
-, sbc
-, openssl
-, lua5
-, python3
-, libcap
-, glib
-, libssh
 , nghttp2
-, zlib
-, cmake
 , ninja
-, makeWrapper
+, openssl
+, pcre2
+, perl
+, pkg-config
+, python3
+, sbc
+, snappy
+, spandsp3
+, speexdsp
+, SystemConfiguration
 , wrapGAppsHook
+, zlib
+, zstd
+
 , withQt ? true
 , qt6 ? null
-, ApplicationServices
-, SystemConfiguration
-, gmp
-, asciidoctor
 }:
 
 assert withQt -> qt6 != null;
 
-let
-  version = "4.0.8";
-  variant = if withQt then "qt" else "cli";
-in
-stdenv.mkDerivation {
-  pname = "wireshark-${variant}";
-  inherit version;
+stdenv.mkDerivation rec {
+  pname = "wireshark-${if withQt then "qt" else "cli"}";
+  version = "4.0.10";
+
   outputs = [ "out" "dev" ];
 
   src = fetchFromGitLab {
     repo = "wireshark";
     owner = "wireshark";
     rev = "v${version}";
-    hash = "sha256-bNg0yhNb1GRsTclNWWO+Bamm2wOnUjVKU+JftJu+LTo=";
+    hash = "sha256-R8CoatIZC7vkKn4UZ3G7h5qBexfKMdJJ0swi+IxAjG0=";
   };
 
-  cmakeFlags = [
-    "-DBUILD_wireshark=${if withQt then "ON" else "OFF"}"
-    "-DENABLE_APPLICATION_BUNDLE=${if withQt && stdenv.isDarwin then "ON" else "OFF"}"
-    # Fix `extcap` and `plugins` paths. See https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=16444
-    "-DCMAKE_INSTALL_LIBDIR=lib"
-    "-DLEMON_C_COMPILER=cc"
-    "-DUSE_qt6=ON"
-  ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
-    "-DHAVE_C99_VSNPRINTF_EXITCODE=0"
-    "-DHAVE_C99_VSNPRINTF_EXITCODE__TRYRUN_OUTPUT="
+  patches = [
+    ./wireshark-lookup-dumpcap-in-path.patch
   ];
 
-  # Avoid referencing -dev paths because of debug assertions.
-  env.NIX_CFLAGS_COMPILE = toString [ "-DQT_NO_DEBUG" ];
-
-  nativeBuildInputs = [ asciidoctor bison cmake ninja flex makeWrapper pkg-config python3 perl ]
-    ++ lib.optionals withQt [ qt6.wrapQtAppsHook wrapGAppsHook ];
+  depsBuildBuild = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
+    buildPackages.stdenv.cc
+  ];
 
-  depsBuildBuild = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ buildPackages.stdenv.cc ];
+  nativeBuildInputs = [
+    asciidoctor
+    bison
+    cmake
+    flex
+    makeWrapper
+    ninja
+    perl
+    pkg-config
+    python3
+  ] ++ lib.optionals withQt [
+    qt6.wrapQtAppsHook
+    wrapGAppsHook
+  ];
 
   buildInputs = [
     gettext
@@ -109,14 +111,49 @@ stdenv.mkDerivation {
     c-ares
     glib
     zlib
-  ] ++ lib.optionals withQt (with qt6; [ qtbase qtmultimedia qtsvg qttools qt5compat ])
-  ++ lib.optionals (withQt && stdenv.isLinux) [ qt6.qtwayland ]
-  ++ lib.optionals stdenv.isLinux [ libcap libnl sbc ]
-  ++ lib.optionals stdenv.isDarwin [ SystemConfiguration ApplicationServices gmp ];
+  ] ++ lib.optionals withQt (with qt6; [
+    qt5compat
+    qtbase
+    qtmultimedia
+    qtsvg
+    qttools
+  ]) ++ lib.optionals (withQt && stdenv.isLinux) [
+    qt6.qtwayland
+  ] ++ lib.optionals stdenv.isLinux [
+    libcap
+    libnl
+    sbc
+  ] ++ lib.optionals stdenv.isDarwin [
+    ApplicationServices
+    gmp
+    SystemConfiguration
+  ];
 
   strictDeps = true;
 
-  patches = [ ./wireshark-lookup-dumpcap-in-path.patch ];
+  cmakeFlags = [
+    "-DBUILD_wireshark=${if withQt then "ON" else "OFF"}"
+    "-DENABLE_APPLICATION_BUNDLE=${if withQt && stdenv.isDarwin then "ON" else "OFF"}"
+    # Fix `extcap` and `plugins` paths. See https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=16444
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DLEMON_C_COMPILER=cc"
+    "-DUSE_qt6=ON"
+  ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
+    "-DHAVE_C99_VSNPRINTF_EXITCODE=0"
+    "-DHAVE_C99_VSNPRINTF_EXITCODE__TRYRUN_OUTPUT="
+  ];
+
+  # Avoid referencing -dev paths because of debug assertions.
+  env.NIX_CFLAGS_COMPILE = toString [ "-DQT_NO_DEBUG" ];
+
+  dontFixCmake = true;
+  # Prevent double-wrapping, inject wrapper args manually instead.
+  dontWrapGApps = true;
+
+  shellHook = ''
+    # to be able to run the resulting binary
+    export WIRESHARK_RUN_FROM_BUILD_DIRECTORY=1
+  '';
 
   postPatch = ''
     sed -i -e '1i cmake_policy(SET CMP0025 NEW)' CMakeLists.txt
@@ -151,31 +188,20 @@ stdenv.mkDerivation {
       cp ../wsutil/wmem/*.h $dev/include/wsutil/wmem/
     '');
 
-  dontFixCmake = true;
-
-  # Prevent double-wrapping, inject wrapper args manually instead.
-  dontWrapGApps = true;
   preFixup = ''
     qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
   '';
 
-  shellHook = ''
-    # to be able to run the resulting binary
-    export WIRESHARK_RUN_FROM_BUILD_DIRECTORY=1
-  '';
-
   meta = with lib; {
-    homepage = "https://www.wireshark.org/";
-    changelog = "https://www.wireshark.org/docs/relnotes/wireshark-${version}.html";
     description = "Powerful network protocol analyzer";
-    license = licenses.gpl2Plus;
-
     longDescription = ''
       Wireshark (formerly known as "Ethereal") is a powerful network
       protocol analyzer developed by an international team of networking
       experts. It runs on UNIX, macOS and Windows.
     '';
-
+    homepage = "https://www.wireshark.org";
+    changelog = "https://www.wireshark.org/docs/relnotes/wireshark-${version}.html";
+    license = licenses.gpl2Plus;
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ bjornfor fpletz paveloom ];
     mainProgram = if withQt then "wireshark" else "tshark";