about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/udns
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/udns')
-rw-r--r--nixpkgs/pkgs/development/libraries/udns/default.nix60
1 files changed, 60 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/udns/default.nix b/nixpkgs/pkgs/development/libraries/udns/default.nix
new file mode 100644
index 000000000000..da0554d49e60
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/udns/default.nix
@@ -0,0 +1,60 @@
+{ lib, stdenv, fetchurl }:
+
+# this expression is mostly based on debian's packaging
+# https://tracker.debian.org/media/packages/u/udns/rules-0.4-1
+
+stdenv.mkDerivation rec {
+  pname = "udns";
+  version = "0.4";
+
+  configurePhase = "./configure --enable-ipv6";
+
+  buildPhase = "make staticlib sharedlib rblcheck_s dnsget_s";
+
+  src = fetchurl {
+    url = "http://www.corpit.ru/mjt/udns/${pname}-${version}.tar.gz";
+    sha256 = "0447fv1hmb44nnchdn6p5pd9b44x8p5jn0ahw6crwbqsg7f0hl8i";
+  };
+
+  # udns uses a very custom build and hardcodes a .so name in a few places.
+  # Instead of fighting with it to apply the standard dylib script, change
+  # the right place in the Makefile itself.
+  postPatch =
+    if stdenv.isDarwin
+    then
+      ''
+        substituteInPlace Makefile.in \
+          --replace --soname, -install_name,$out/lib/
+      ''
+    else "";
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    mkdir -p $out/include
+    mkdir -p $out/lib
+    mkdir -p $out/share/man/man1
+    mkdir -p $out/share/man/man3
+    cp dnsget_s $out/bin/dnsget
+    cp rblcheck_s $out/bin/rblcheck
+    cp udns.h $out/include/
+    cp libudns.a $out/lib/
+    cp libudns.so.0 $out/lib/
+    ln -rs $out/lib/libudns.so.0 $out/lib/libudns.so
+    cp dnsget.1 rblcheck.1 $out/share/man/man1
+    cp udns.3 $out/share/man/man3
+    runHook postInstall
+  '';
+
+  # keep man3
+  outputDevdoc = "out";
+
+  meta = with lib; {
+    homepage = "http://www.corpit.ru/mjt/udns.html";
+    description = "Async-capable DNS stub resolver library";
+    license = licenses.lgpl21Plus;
+    maintainers = [ maintainers.womfoo ];
+    platforms = platforms.unix;
+  };
+
+}