From 9e503d344364715fe7a97331d24e3ed36b06912e Mon Sep 17 00:00:00 2001 From: Ben Siraphob Date: Tue, 29 Dec 2020 16:12:18 +0700 Subject: [PATCH] driftnet: 1.1.5 -> 1.3.0 --- pkgs/tools/networking/driftnet/default.nix | 67 ++++++++++++++----- .../driftnet/fix-darwin-build.patch | 61 +++++++++++++++++ 2 files changed, 111 insertions(+), 17 deletions(-) create mode 100644 pkgs/tools/networking/driftnet/fix-darwin-build.patch diff --git a/pkgs/tools/networking/driftnet/default.nix b/pkgs/tools/networking/driftnet/default.nix index a9f9305169c..042f29d3ca3 100644 --- a/pkgs/tools/networking/driftnet/default.nix +++ b/pkgs/tools/networking/driftnet/default.nix @@ -1,31 +1,64 @@ -{ stdenv, lib, fetchFromGitHub, libpcap, libjpeg , libungif, libpng -, giflib, glib, gtk2, cairo, pango, gdk-pixbuf, atk -, pkg-config, autoreconfHook }: +{ stdenv +, lib +, fetchFromGitHub +, fetchpatch +, autoreconfHook +, cairo +, giflib +, glib +, gtk2-x11 +, libjpeg +, libpcap +, libpng +, libwebsockets +, pkg-config +, libuv +, openssl +}: -with lib; - -stdenv.mkDerivation { +stdenv.mkDerivation rec { pname = "driftnet"; - version = "1.1.5"; - - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ - libpcap libjpeg libungif libpng giflib - glib gtk2 glib cairo pango gdk-pixbuf atk autoreconfHook - ]; + version = "1.3.0"; src = fetchFromGitHub { owner = "deiv"; repo = "driftnet"; - rev = "0ae4a91"; - sha256 = "1sagpx0mw68ggvqd9c3crjhghqmj7391mf2cb6cjw1cpd2hcddsj"; + rev = "v${version}"; + sha256 = "0kd22aqb25kf54jjv3ml8wy8xm7lmbf0xz1wfp31m08cbzsbizib"; }; - meta = { + # https://github.com/deiv/driftnet/pull/33 + # remove on version bump from 1.3.0 + patches = [ + (fetchpatch { + name = "fix-darwin-build"; + url = "https://github.com/deiv/driftnet/pull/33/commits/bef5f3509ab5710161e9e21ea960a997eada534f.patch"; + sha256 = "1b7p9fkgp7dxv965l7q7y632s80h3nnrkaqnak2h0hakwv0i4pvm"; + }) + ]; + + enableParallelBuilding = true; + + nativeBuildInputs = [ pkg-config autoreconfHook ]; + + buildInputs = [ + cairo + giflib + glib + gtk2-x11 + libjpeg + libpcap + libpng + libwebsockets + openssl + libuv + ]; + + meta = with lib; { description = "Watches network traffic, and picks out and displays JPEG and GIF images for display"; homepage = "https://github.com/deiv/driftnet"; maintainers = with maintainers; [ offline ]; - platforms = platforms.linux; + platforms = platforms.linux ++ platforms.darwin; license = licenses.gpl2; }; } diff --git a/pkgs/tools/networking/driftnet/fix-darwin-build.patch b/pkgs/tools/networking/driftnet/fix-darwin-build.patch new file mode 100644 index 00000000000..d1bde0f2e60 --- /dev/null +++ b/pkgs/tools/networking/driftnet/fix-darwin-build.patch @@ -0,0 +1,61 @@ +diff --git a/src/compat/compat.h b/src/compat/compat.h +index 6add422..ea80406 100644 +--- a/src/compat/compat.h ++++ b/src/compat/compat.h +@@ -17,7 +17,7 @@ + #include + #endif + +-#ifdef __FreeBSD__ ++#if defined(__FreeBSD__) || defined(__APPLE__) + #include + #endif + +diff --git a/src/network/layer2.c b/src/network/layer2.c +index 763f0ac..2497b72 100644 +--- a/src/network/layer2.c ++++ b/src/network/layer2.c +@@ -14,7 +14,7 @@ + + #include + +-#ifdef __FreeBSD__ ++#if defined(__FreeBSD__) || defined(__APPLE__) + #include + #include + #else +@@ -29,7 +29,7 @@ + /* + * Freebsd and Cygwin doesn't define 'ethhdr' + */ +-#if defined(__FreeBSD__) || defined(__CYGWIN__) ++#if defined(__FreeBSD__) || defined(__CYGWIN__) || defined(__APPLE__) + + #define ETH_ALEN 6 /* Octets in one ethernet addr */ + #define ETH_P_IP 0x0800 /* Internet Protocol packet */ +diff --git a/src/network/layer3.c b/src/network/layer3.c +index 7864126..aae2041 100644 +--- a/src/network/layer3.c ++++ b/src/network/layer3.c +@@ -15,7 +15,7 @@ + #include + #include + +-#ifdef __FreeBSD__ ++#if defined(__FreeBSD__) || defined(__APPLE__) + #include + #include + #include +diff --git a/src/pid.c b/src/pid.c +index 621834e..94e7dcc 100644 +--- a/src/pid.c ++++ b/src/pid.c +@@ -14,7 +14,7 @@ + + #include "compat/compat.h" + +-#ifdef __FreeBSD__ ++#if defined(__FreeBSD__) || defined(__APPLE__) + #include + #endif + #include