nixpkgs/pkgs/tools/networking/netcat-openbsd/default.nix
Will Dietz 5e3e3e985d netcat-openbsd: fix w/musl by providing b64_ntop
It seems many projects have copies of this code--
and AFAICT all are derived from ISC's BIND[2]
although it does not appear present in recent versions.

This is a curious function as it is not documented
nor part of any standard[1].

[1] https://www.lemoda.net/unix/base64/index.html
[2] for example, glibc's copy:
    https://sourceware.org/git/?p=glibc.git;a=blob;f=resolv/README;h=514e9bb617e710f16126c1474561965a2b35653d;hb=HEAD#l104
2018-03-26 12:43:50 -05:00

52 lines
1.5 KiB
Nix

{stdenv, fetchurl, fetchpatch, pkgconfig, libbsd}:
stdenv.mkDerivation rec {
version = "1.187";
deb-version = "${version}-1";
name = "netcat-openbsd-${version}";
srcs = [
(fetchurl {
url = "mirror://debian/pool/main/n/netcat-openbsd/netcat-openbsd_${version}.orig.tar.gz";
sha256 = "0sxsxl7n7hnxz931jqsp86cdwiq2lm4h3w0i2a67935pki924gxw";
})
(fetchurl {
url = "mirror://debian/pool/main/n/netcat-openbsd/netcat-openbsd_${deb-version}.debian.tar.xz";
sha256 = "0jwbdis6avxdjzg8bcab1bdz296rkzzkdlv50fr3q0277fxjs49q";
})
];
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ libbsd ];
sourceRoot = name;
prePatch = ''
for i in $(cat ../debian/patches/series); do
patch -p1 < "../debian/patches/$i"
done
'';
patches = stdenv.lib.optional stdenv.hostPlatform.isMusl [
(fetchpatch {
url = "https://gitweb.gentoo.org/proj/musl.git/plain/net-analyzer/openbsd-netcat/files/openbsd-netcat-1.105-b64_ntop.patch?id=4a5864922232c7df550c21f2a7b77fe6f8ffc6d6";
sha256 = "1cgqb6fxas5yiwf26hq57v627hhmcskl5j6rx30090ha2ksjqyvr";
})
];
installPhase = ''
runHook preInstall
install -Dm0755 nc $out/bin/nc
install -Dm0644 nc.1 $out/share/man/man1/nc.1
runHook postInstall
'';
meta = with stdenv.lib; {
homepage = https://packages.debian.org/netcat-openbsd;
description = "TCP/IP swiss army knife, OpenBSD variant";
platforms = platforms.linux;
maintainers = with maintainers; [ willibutz ];
};
}