1{ lib
2, stdenv
3, fetchFromGitHub
4, fetchpatch
5, fftw ? null
6, gettext
7, libintl
8, ncurses
9, openssl
10}:
11
12stdenv.mkDerivation rec {
13 pname = "httping";
14 version = "2.9";
15
16 src = fetchFromGitHub {
17 owner = "folkertvanheusden";
18 repo = "HTTPing";
19 rev = "v${version}";
20 hash = "sha256-aExTXXtW03UKMuMjTMx1k/MUpcRMh1PdSPkDGH+Od70=";
21 };
22
23 patches = [
24 # Pull upstream fix for missing <unistd.h>
25 # https://github.com/folkertvanheusden/HTTPing/pull/8
26 (fetchpatch {
27 name = "add-unistd.patch";
28 url = "https://github.com/folkertvanheusden/HTTPing/commit/aad3c275686344fe9a235faeac4ee3832f3aa8d5.patch";
29 hash = "sha256-bz3AMQTSfSTwUyf9WbkAFWVmFo06ei+Qd55x+RRDREY=";
30 })
31 ];
32
33 nativeBuildInputs = [
34 gettext
35 ];
36
37 buildInputs = [
38 fftw
39 libintl
40 ncurses
41 openssl
42 ];
43
44 makeFlags = [
45 "DESTDIR=$(out)"
46 "PREFIX="
47 ];
48
49 meta = with lib; {
50 homepage = "https://vanheusden.com/httping";
51 description = "ping with HTTP requests";
52 longDescription = ''
53 Give httping an url, and it'll show you how long it takes to connect,
54 send a request and retrieve the reply (only the headers). Be aware that
55 the transmission across the network also takes time! So it measures the
56 latency of the webserver + network. It supports IPv6.
57 '';
58 license = licenses.agpl3Only;
59 maintainers = [];
60 platforms = platforms.linux ++ platforms.darwin;
61 mainProgram = "httping";
62 };
63}