From d72adde5307cb26f0c307575b8a58189d49bd9c1 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Sun, 7 Oct 2012 00:25:38 -0400 Subject: [PATCH] Add nss-myhostname --- .../networking/nss-myhostname/default.nix | 19 +++++++++++++++++++ .../ignore-ipv6-link-local.patch | 13 +++++++++++++ .../nss-myhostname/nscd-segfault.patch | 15 +++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 4 files changed, 49 insertions(+) create mode 100644 pkgs/tools/networking/nss-myhostname/default.nix create mode 100644 pkgs/tools/networking/nss-myhostname/ignore-ipv6-link-local.patch create mode 100644 pkgs/tools/networking/nss-myhostname/nscd-segfault.patch diff --git a/pkgs/tools/networking/nss-myhostname/default.nix b/pkgs/tools/networking/nss-myhostname/default.nix new file mode 100644 index 000000000000..80296b0d992c --- /dev/null +++ b/pkgs/tools/networking/nss-myhostname/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl }: + +stdenv.mkDerivation rec { + name = "nss-myhostname-0.3"; + + src = fetchurl { + url = "http://0pointer.de/lennart/projects/nss-myhostname/${name}.tar.gz"; + sha256 = "1wnawxklsv3z796l752j7a21gvj2615fk12qr1bir3apipm499rb"; + }; + + patches = [ ./nscd-segfault.patch ./ignore-ipv6-link-local.patch ]; + + meta = { + description = "Name Service Switch module ensuring that the hostname always resolves to a valid address"; + homepage = http://0pointer.de/lennart/projects/nss-myhostname/; + maintainers = [ stdenv.lib.maintainers.eelco ]; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/tools/networking/nss-myhostname/ignore-ipv6-link-local.patch b/pkgs/tools/networking/nss-myhostname/ignore-ipv6-link-local.patch new file mode 100644 index 000000000000..396bb2e10ccd --- /dev/null +++ b/pkgs/tools/networking/nss-myhostname/ignore-ipv6-link-local.patch @@ -0,0 +1,13 @@ +--- nss-myhostname-0.3/netlink.c 2011-05-09 08:56:34.344579140 -0400 ++++ nss-myhostname-0.3-new/netlink.c 2012-10-06 23:52:10.577755588 -0400 +@@ -179,6 +179,10 @@ + ifaddrmsg->ifa_scope == RT_SCOPE_NOWHERE) + continue; + ++ if (ifaddrmsg->ifa_family == AF_INET6 && ++ ifaddrmsg->ifa_scope == RT_SCOPE_LINK) ++ continue; ++ + if (ifaddrmsg->ifa_flags & IFA_F_DEPRECATED) + continue; + diff --git a/pkgs/tools/networking/nss-myhostname/nscd-segfault.patch b/pkgs/tools/networking/nss-myhostname/nscd-segfault.patch new file mode 100644 index 000000000000..a2947461c87d --- /dev/null +++ b/pkgs/tools/networking/nss-myhostname/nscd-segfault.patch @@ -0,0 +1,15 @@ +--- nss-myhostname-0.3/nss-myhostname.c 2011-05-09 09:01:27.421581560 -0400 ++++ nss-myhostname-0.3-new/nss-myhostname.c 2012-10-06 23:40:09.836894004 -0400 +@@ -177,7 +177,11 @@ + /* Verify the size matches */ + assert(idx == ms); + +- *pat = r_tuple_prev; ++ /* Nscd expects us to store the first record in **pat. */ ++ if (*pat) ++ **pat = *r_tuple_prev; ++ else ++ *pat = r_tuple_prev; + + if (ttlp) + *ttlp = 0; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 28848c191689..5a5fc5e2fb8e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1165,6 +1165,8 @@ let inherit (pythonPackages) pysqlite; }; + nss_myhostname = callPackage ../tools/networking/nss-myhostname {}; + nss_pam_ldapd = callPackage ../tools/networking/nss-pam-ldapd {}; ntfs3g = callPackage ../tools/filesystems/ntfs-3g { };