diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/liboping')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/liboping/default.nix | 47 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/liboping/ncurses-6.3.patch | 21 |
2 files changed, 68 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/liboping/default.nix b/nixpkgs/pkgs/development/libraries/liboping/default.nix new file mode 100644 index 000000000000..9a44e84b136f --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/liboping/default.nix @@ -0,0 +1,47 @@ +{ stdenv, fetchurl, fetchpatch, ncurses ? null, perl ? null, lib }: + +stdenv.mkDerivation rec { + pname = "liboping"; + version = "1.10.0"; + + src = fetchurl { + url = "https://noping.cc/files/${pname}-${version}.tar.bz2"; + sha256 = "1n2wkmvw6n80ybdwkjq8ka43z2x8mvxq49byv61b52iyz69slf7b"; + }; + + patches = [ + # Add support for ncurses-6.3. A backport of patch pending upstream + # inclusion: https://github.com/octo/liboping/pull/61 + ./ncurses-6.3.patch + + # Pull pending fix for format arguments mismatch: + # https://github.com/octo/liboping/pull/60 + (fetchpatch { + name = "format-args.patch"; + url = "https://github.com/octo/liboping/commit/7a50e33f2a686564aa43e4920141e6f64e042df1.patch"; + sha256 = "118fl3k84m3iqwfp49g5qil4lw1gcznzmyxnfna0h7za2nm50cxw"; + }) + ]; + + NIX_CFLAGS_COMPILE = lib.optionalString + stdenv.cc.isGNU "-Wno-error=format-truncation"; + + buildInputs = [ ncurses perl ]; + + configureFlags = lib.optional (perl == null) "--with-perl-bindings=no"; + + meta = with lib; { + description = "C library to generate ICMP echo requests (a.k.a. ping packets)"; + longDescription = '' + liboping is a C library to generate ICMP echo requests, better known as + "ping packets". It is intended for use in network monitoring applications + or applications that would otherwise need to fork ping(1) frequently. + Included is a sample application, called oping, which demonstrates the + library's abilities. + ''; + homepage = "http://noping.cc/"; + license = licenses.lgpl21; + platforms = platforms.unix; + maintainers = [ maintainers.bjornfor ]; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/liboping/ncurses-6.3.patch b/nixpkgs/pkgs/development/libraries/liboping/ncurses-6.3.patch new file mode 100644 index 000000000000..14d2be07fe38 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/liboping/ncurses-6.3.patch @@ -0,0 +1,21 @@ +A backport of https://github.com/octo/liboping/pull/61 +--- a/src/oping.c ++++ b/src/oping.c +@@ -1125,7 +1125,7 @@ static int update_graph_prettyping (ping_context_t *ctx, /* {{{ */ + wattron (ctx->window, COLOR_PAIR(color)); + + if (has_utf8()) +- mvwprintw (ctx->window, /* y = */ 3, /* x = */ x + 2, symbol); ++ mvwprintw (ctx->window, /* y = */ 3, /* x = */ x + 2, "%s", symbol); + else + mvwaddch (ctx->window, /* y = */ 3, /* x = */ x + 2, symbolc); + +@@ -1222,7 +1222,7 @@ static int update_graph_histogram (ping_context_t *ctx) /* {{{ */ + if (counters[x] == 0) + mvwaddch (ctx->window, /* y = */ 3, /* x = */ x + 2, ' '); + else if (has_utf8 ()) +- mvwprintw (ctx->window, /* y = */ 3, /* x = */ x + 2, ++ mvwprintw (ctx->window, /* y = */ 3, /* x = */ x + 2, "%s", + hist_symbols_utf8[index]); + else + mvwaddch (ctx->window, /* y = */ 3, /* x = */ x + 2, |