[27008] in Source-Commits
/svn/athena r25889 - in trunk/athena: bin lib/hesiod lib/hesiod/debian lib/hesiod/debian/po lib/hesiod/debian/source lib/hesiod/m4 lib/hesiod/man lib/hesiod/src lib/hesiod/src/hesinfo lib/hesiod/src/lib
daemon@ATHENA.MIT.EDU (Alexander Chernyakhovsky)
Wed Apr 3 14:14:44 2013
Date: Wed, 3 Apr 2013 14:14:36 -0400
From: Alexander Chernyakhovsky <achernya@MIT.EDU>
Message-Id: <201304031814.r33IEa6r013029@drugstore.mit.edu>
To: source-commits@MIT.EDU
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Author: achernya
Date: 2013-04-03 14:14:36 -0400 (Wed, 03 Apr 2013)
New Revision: 25889
Added:
trunk/athena/lib/hesiod/.gitignore
trunk/athena/lib/hesiod/AUTHORS
trunk/athena/lib/hesiod/COPYING
trunk/athena/lib/hesiod/ChangeLog
trunk/athena/lib/hesiod/Makefile.am
trunk/athena/lib/hesiod/NEWS
trunk/athena/lib/hesiod/README
trunk/athena/lib/hesiod/autogen.sh
trunk/athena/lib/hesiod/build-package.sh
trunk/athena/lib/hesiod/configure.ac
trunk/athena/lib/hesiod/debian/
trunk/athena/lib/hesiod/debian/README.debian
trunk/athena/lib/hesiod/debian/changelog
trunk/athena/lib/hesiod/debian/compat
trunk/athena/lib/hesiod/debian/control
trunk/athena/lib/hesiod/debian/copyright
trunk/athena/lib/hesiod/debian/hesiod.dirs
trunk/athena/lib/hesiod/debian/hesiod.install
trunk/athena/lib/hesiod/debian/hesiod.links
trunk/athena/lib/hesiod/debian/libhesiod-dev.install
trunk/athena/lib/hesiod/debian/libhesiod-dev.links
trunk/athena/lib/hesiod/debian/libhesiod0.config
trunk/athena/lib/hesiod/debian/libhesiod0.docs
trunk/athena/lib/hesiod/debian/libhesiod0.install
trunk/athena/lib/hesiod/debian/libhesiod0.postinst
trunk/athena/lib/hesiod/debian/libhesiod0.postrm
trunk/athena/lib/hesiod/debian/libhesiod0.templates
trunk/athena/lib/hesiod/debian/po/
trunk/athena/lib/hesiod/debian/po/POTFILES.in
trunk/athena/lib/hesiod/debian/po/cs.po
trunk/athena/lib/hesiod/debian/po/da.po
trunk/athena/lib/hesiod/debian/po/de.po
trunk/athena/lib/hesiod/debian/po/es.po
trunk/athena/lib/hesiod/debian/po/eu.po
trunk/athena/lib/hesiod/debian/po/fi.po
trunk/athena/lib/hesiod/debian/po/fr.po
trunk/athena/lib/hesiod/debian/po/gl.po
trunk/athena/lib/hesiod/debian/po/it.po
trunk/athena/lib/hesiod/debian/po/ja.po
trunk/athena/lib/hesiod/debian/po/nb.po
trunk/athena/lib/hesiod/debian/po/nl.po
trunk/athena/lib/hesiod/debian/po/pt.po
trunk/athena/lib/hesiod/debian/po/pt_BR.po
trunk/athena/lib/hesiod/debian/po/ru.po
trunk/athena/lib/hesiod/debian/po/sv.po
trunk/athena/lib/hesiod/debian/po/templates.pot
trunk/athena/lib/hesiod/debian/po/vi.po
trunk/athena/lib/hesiod/debian/rules
trunk/athena/lib/hesiod/debian/source/
trunk/athena/lib/hesiod/debian/source/format
trunk/athena/lib/hesiod/m4/
trunk/athena/lib/hesiod/m4/.gitignore
trunk/athena/lib/hesiod/man/
trunk/athena/lib/hesiod/man/Makefile.am
trunk/athena/lib/hesiod/man/hesinfo.1
trunk/athena/lib/hesiod/man/hesiod.3
trunk/athena/lib/hesiod/man/hesiod.conf.5
trunk/athena/lib/hesiod/man/hesiod_end.3
trunk/athena/lib/hesiod/man/hesiod_free_list.3
trunk/athena/lib/hesiod/man/hesiod_free_passwd.3
trunk/athena/lib/hesiod/man/hesiod_free_postoffice.3
trunk/athena/lib/hesiod/man/hesiod_free_servent.3
trunk/athena/lib/hesiod/man/hesiod_free_string.3
trunk/athena/lib/hesiod/man/hesiod_getmailhost.3
trunk/athena/lib/hesiod/man/hesiod_getpwnam.3
trunk/athena/lib/hesiod/man/hesiod_getpwuid.3
trunk/athena/lib/hesiod/man/hesiod_getservbyname.3
trunk/athena/lib/hesiod/man/hesiod_init.3
trunk/athena/lib/hesiod/man/hesiod_parse_result.3
trunk/athena/lib/hesiod/man/hesiod_resolve.3
trunk/athena/lib/hesiod/man/hesiod_to_bind.3
trunk/athena/lib/hesiod/src/
trunk/athena/lib/hesiod/src/.gitignore
trunk/athena/lib/hesiod/src/Makefile.am
trunk/athena/lib/hesiod/src/hesinfo/
trunk/athena/lib/hesiod/src/hesinfo/.gitignore
trunk/athena/lib/hesiod/src/hesinfo/Makefile.am
trunk/athena/lib/hesiod/src/hesinfo/hesinfo.c
trunk/athena/lib/hesiod/src/hesiod.pc.in
trunk/athena/lib/hesiod/src/lib/
trunk/athena/lib/hesiod/src/lib/.gitignore
trunk/athena/lib/hesiod/src/lib/Makefile.am
trunk/athena/lib/hesiod/src/lib/hescompat.c
trunk/athena/lib/hesiod/src/lib/hesiod.c
trunk/athena/lib/hesiod/src/lib/hesiod.conf.sample
trunk/athena/lib/hesiod/src/lib/hesiod.h
trunk/athena/lib/hesiod/src/lib/hesmailhost.c
trunk/athena/lib/hesiod/src/lib/hespwnam.c
trunk/athena/lib/hesiod/src/lib/hesservbyname.c
trunk/athena/lib/hesiod/src/lib/hestest.c
trunk/athena/lib/hesiod/src/lib/hestest.conf
Removed:
trunk/athena/bin/hesinfo/
trunk/athena/lib/hesiod/Makefile.in
trunk/athena/lib/hesiod/NEWS
trunk/athena/lib/hesiod/README
trunk/athena/lib/hesiod/acconfig.h
trunk/athena/lib/hesiod/config.h.in
trunk/athena/lib/hesiod/configure.in
trunk/athena/lib/hesiod/hescompat.c
trunk/athena/lib/hesiod/hesiod.3
trunk/athena/lib/hesiod/hesiod.c
trunk/athena/lib/hesiod/hesiod.conf.5
trunk/athena/lib/hesiod/hesiod.conf.sample
trunk/athena/lib/hesiod/hesiod.h
trunk/athena/lib/hesiod/hesiod_end.3
trunk/athena/lib/hesiod/hesiod_free_list.3
trunk/athena/lib/hesiod/hesiod_free_passwd.3
trunk/athena/lib/hesiod/hesiod_free_postoffice.3
trunk/athena/lib/hesiod/hesiod_free_servent.3
trunk/athena/lib/hesiod/hesiod_free_string.3
trunk/athena/lib/hesiod/hesiod_getmailhost.3
trunk/athena/lib/hesiod/hesiod_getpwnam.3
trunk/athena/lib/hesiod/hesiod_getpwuid.3
trunk/athena/lib/hesiod/hesiod_getservbyname.3
trunk/athena/lib/hesiod/hesiod_init.3
trunk/athena/lib/hesiod/hesiod_parse_result.3
trunk/athena/lib/hesiod/hesiod_resolve.3
trunk/athena/lib/hesiod/hesiod_to_bind.3
trunk/athena/lib/hesiod/hesmailhost.c
trunk/athena/lib/hesiod/hespwnam.c
trunk/athena/lib/hesiod/hesservbyname.c
trunk/athena/lib/hesiod/hestest.c
trunk/athena/lib/hesiod/hestest.conf
Log:
Import Hesiod 3.2.1.
Import Hesiod 3.2.1 from https://github.com/achernya/hesiod, until we
figure out a real story for the repository. This includes the
internationalization patches that Evan wrote a while back, fixes the
license to 2-Clause BSD, incorporates some security patches from
Fedora, and re-incorporates hesinfo into the tree. Also, the entire
buildsystem was rewritten from scratch; the Debian packaging (also
included) was updated to dh9 and supports multiarch.
Added: trunk/athena/lib/hesiod/.gitignore
===================================================================
--- trunk/athena/lib/hesiod/.gitignore (rev 0)
+++ trunk/athena/lib/hesiod/.gitignore 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,26 @@
+*~
+*.o
+*.lo
+*.la
+.deps
+.libs
+autom4te.cache
+ar-lib
+aclocal.m4
+config.guess
+config.h
+config.h.in
+config.log
+config.status
+config.sub
+configure
+depcomp
+install-sh
+libtool
+ltmain.sh
+missing
+stamp-h1
+test-driver
+Makefile
+Makefile.in
+INSTALL
Added: trunk/athena/lib/hesiod/AUTHORS
===================================================================
Added: trunk/athena/lib/hesiod/COPYING
===================================================================
--- trunk/athena/lib/hesiod/COPYING (rev 0)
+++ trunk/athena/lib/hesiod/COPYING 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,43 @@
+Copyright 1996, 2000 by the Massachusetts Institute of Technology.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+* Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Portions:
+Copyright 1996 by the Internet Software Consortium.
+
+Permission to use, copy, modify, and distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
Added: trunk/athena/lib/hesiod/ChangeLog
===================================================================
Added: trunk/athena/lib/hesiod/Makefile.am
===================================================================
--- trunk/athena/lib/hesiod/Makefile.am (rev 0)
+++ trunk/athena/lib/hesiod/Makefile.am 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,3 @@
+ACLOCAL_AMFLAGS = -I m4
+SUBDIRS = src man
+EXTRA_DIST = autogen.sh
Added: trunk/athena/lib/hesiod/NEWS
===================================================================
--- trunk/athena/lib/hesiod/NEWS (rev 0)
+++ trunk/athena/lib/hesiod/NEWS 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,80 @@
+Major changes in release 3.2.1:
+* Provide a pkg-config file for hesiod.
+* Rewrite hesservbyname and license with 2-clause BSD.
+* Relicense MIT material with 2-clause BSD.
+
+Major changes in release 3.2.0:
+
+* Entirely rewrite the buildsystem to use automake.
+* Incorporate 3 patches from Fedora, fixing issues when libhesiod was
+ used from setuid programs, the response from the DNS server was
+ longer than 1024 bytes, and in which string lengths were ignored
+ while doing a case-insensitive comparison.
+* Ship with Debian packaging.
+
+Major changes in release 3.1.1:
+* If available, libhesiod will use libidn to internationalize a domain
+ name before returning it from hesiod_to_bind()
+* LDFLAGS as set by autoconf aren't ignored when building hestest or
+ libhesiod
+
+Major changes in release 3.1.0:
+* hesinfo has been moved into a separate source tree.
+* The build system now installs a shared library by default.
+* A new function, hesiod_free_string, ensures that strings can be
+ freed at the same library level as they are allocated. (Important
+ in some runtime environments.)
+* A new function, hesiod_parse_result, can be used in combination with
+ hesiod_to_bind to allow Hesiod resolutions to be done using an
+ alternate resolver.
+* Support for class HS is removed; Hesiod resolution is always done in
+ class IN now.
+
+Major changes in release 3.0.2:
+* Better observance of Autoconf environment variable conventions (you
+ can set CPPFLAGS, CFLAGS, LDFLAGS, and LIBS). CDEBUGFLAGS is gone;
+ CFLAGS specifies debugging and optimization flags only.
+* Bugs fixed: "make clean" missed config.h, hesiod_to_bind() would
+ core dump on names with right hand sides, hesiod_to_bind() didn't
+ length-check its arguments.
+
+Major changes in release 3.0.1:
+* hes_init() function added to backward compatibility interfaces.
+* You can use "#ifdef HESIOD_INTERFACES" in an application to test if
+ the new interfaces are available.
+
+Major changes in release 3.0.0:
+* This NEWS file added.
+* Wire protocol change: Hesiod data on the name servers should now be
+ in class C_IN, not C_HS. Data in class C_HS will still work for
+ now, but this backward compatibility hack may not stick around
+ forever. (You can specify which classes to look at in your
+ hesiod.conf file.)
+* Interface change: the preferred interfaces are now named
+ hesiod_*() and take a context argument. They also return allocated
+ memory which must be freed by the caller. The *_r() interfaces are
+ gone, and the hes_*() interfaces are deprecated.
+* Hesiod no longer looks for /etc/hesiod.conf (unless sysconfdir is
+ /etc). It does, however, allow the environment variable
+ HESIOD_CONFIG to specify where the configuration file lives.
+* hesiod.conf is no longer case-sensitive.
+* Hesiod compiles on systems which don't define C_HS or T_TXT.
+* Bugs fixed: "hesinfo -b" works, better length-checking on response
+ packets, string termination error in configuration file reading,
+ README left out periods in sample rhs and lhs values, "make check"
+ didn't set fixed hesiod configuration, manual pages weren't
+ installed.
+
+Major changes in release 2.0.0:
+* The hesiod.3 man page now documents all exported functions.
+* Reentrant interfaces were added to the API. See the man page for
+ details.
+* hes_strerror() was added to the API.
+* Function prototypes were added to <hesiod.h>. Hesiod now assumes a
+ compiler which can handle most ANSI constructs.
+* Bugs fixed: memory leaks in hes_getpwnam(), hes_getmailhost,
+ hes_getservbyname(); bounds checking added in res_scan().
+* Hesiod builds with Autoconf instead of imake now.
+* An automated test driver is included.
+* The maximum Hesiod response length is no longer coupled to the DNS
+ datagram transport size limit.
Added: trunk/athena/lib/hesiod/README
===================================================================
--- trunk/athena/lib/hesiod/README (rev 0)
+++ trunk/athena/lib/hesiod/README 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,53 @@
+This is release 3.2.1 of the Hesiod name service library. Hesiod can
+provide general name service for a variety of applications and is
+based on the Berkeley Internet Name Daemon (BIND).
+
+To prepare this directory for building, run the command "./configure".
+configure takes a number of options; use "./configure --help" to find
+out what they are. Hesiod requires a vaguely ANSI compiler to build;
+gcc will do.
+
+Run "make" or "make all" to build the Hesiod library.
+
+Run "make install" to install the Hesiod library.
+
+You will want to create a configuration file named hesiod.conf in the
+sysconfdir (/usr/local/etc/hesiod.conf by default) on your client
+machines, reading something like:
+
+ rhs=.your.domain
+ lhs=.ns
+
+The value of rhs can be overridden at run time by the environment
+variable HES_DOMAIN. The value ".ns" for lhs is an unfortunate
+historical convention; ".hs" or "hesiod" would have been better.
+Nevertheless, you probably want to use ".ns" for compatibility with
+existing Hesiod domains.
+
+To create Hesiod information on your central name servers, you need to
+make them authoritative for the domain ns.your.domain with a line in
+named.boot reading something like:
+
+ primary ns.your.domain named.hesiod
+
+And then in named.hesiod, you need data looking something like:
+
+ ; SOA and NS records.
+ @ IN SOA server1.your.domain admin-address.your.domain (
+ 40000 ; serial - database version number
+ 1800 ; refresh - sec servers
+ 300 ; retry - for refresh
+ 3600000 ; expire - unrefreshed data
+ 7200 ) ; min
+ NS server1.your.domain
+ NS server2.your.domain
+
+ ; Actual Hesiod data.
+ haynes.grplist TXT "haynes:2638"
+ haynes.group TXT "haynes:*:2638:"
+ 2638.gid CNAME haynes.group
+ zephyr.sloc TXT "zephyrserver1.my.domain"
+ zephyr.sloc TXT "zephyrserver2.my.domain"
+
+There is a mailing list at MIT for Hesiod users, hesiod@mit.edu. To
+get yourself on or off the list, send mail to hesiod-request@mit.edu.
Added: trunk/athena/lib/hesiod/autogen.sh
===================================================================
--- trunk/athena/lib/hesiod/autogen.sh (rev 0)
+++ trunk/athena/lib/hesiod/autogen.sh 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec autoreconf -fi
Property changes on: trunk/athena/lib/hesiod/autogen.sh
___________________________________________________________________
Added: svn:executable
+ *
Added: trunk/athena/lib/hesiod/build-package.sh
===================================================================
--- trunk/athena/lib/hesiod/build-package.sh (rev 0)
+++ trunk/athena/lib/hesiod/build-package.sh 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec git-buildpackage --git-upstream-branch=master --git-upstream-tree=branch
Property changes on: trunk/athena/lib/hesiod/build-package.sh
___________________________________________________________________
Added: svn:executable
+ *
Added: trunk/athena/lib/hesiod/configure.ac
===================================================================
--- trunk/athena/lib/hesiod/configure.ac (rev 0)
+++ trunk/athena/lib/hesiod/configure.ac 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,93 @@
+# -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ([2.69])
+AC_INIT([hesiod], [3.2.1], [hesiod@mit.edu])
+AM_INIT_AUTOMAKE([-Wall])
+AM_MAINTAINER_MODE([enable])
+m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+AC_CONFIG_MACRO_DIR([m4])
+AC_CONFIG_SRCDIR([src/lib/hesiod.h])
+AC_CONFIG_HEADERS([config.h])
+
+# Checks for programs.
+AC_PROG_CC
+AC_PROG_CXX
+AC_PROG_AWK
+AC_PROG_CC
+AC_PROG_CPP
+AC_PROG_INSTALL
+AC_PROG_LN_S
+AC_PROG_MAKE_SET
+# automake 1.12 seems to require this, but automake 1.11 doesn't recognize it
+m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
+LT_INIT
+AC_PROG_LIBTOOL
+
+
+# Checks for libraries.
+hesiod_save_LIBS="$LIBS"
+LIBS=
+AC_ARG_WITH([libidn],
+ [AS_HELP_STRING([--with-libidn], [Support IDN (needs GNU libidn) @<:@check@:>@])],
+ [with_libidn="$withval"],
+ [with_libidn="check"])
+AS_IF([test x"$with_libidn" != xno],
+ [AC_SEARCH_LIBS([stringprep_check_version], [idn],
+ [AC_DEFINE([HAVE_LIBIDN], [1], [Define if libidn is available.])],
+ [AS_IF([test x"$with_idn" = xcheck],
+ [AC_MSG_WARN([Unable to find libidn.])],
+ [AC_MSG_ERROR([--with-libidn was given but libidn was not found.])])])])
+
+AC_CHECK_LIB([resolv], [res_mkquery], [], [
+ AC_MSG_CHECKING([if res_mkquery is provided by libresolv with mangled symbols])
+ save_LIBS="$LIBS"
+ LIBS="-lresolv $LIBS"
+ AC_TRY_LINK([#include <resolv.h>],
+ [res_mkquery(0,NULL,0,0,NULL,0,NULL,NULL,0);], [
+ AC_DEFINE(HAVE_LIBRESOLV, [1], [Define if your libresolv provides res_mkquery.])
+ AC_MSG_RESULT(yes)], [
+ LIBS="$save_LIBS"
+ AC_MSG_RESULT(no)])])
+
+AC_SUBST([SUPPORTING_LIBS], $LIBS)
+LIBS=$hesiod_save_LIBS
+
+# Checks for header files.
+AC_HEADER_RESOLV
+AC_CHECK_HEADERS([netdb.h netinet/in.h stdlib.h string.h sys/socket.h])
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_TYPE_SSIZE_T
+AC_TYPE_UID_T
+
+AC_EGREP_HEADER([pw_quota], [pwd.h],
+ AC_DEFINE([HAVE_PW_QUOTA], 1,
+ [Define if struct passwd has a field pw_quota]))
+AC_EGREP_HEADER([pw_comment], [pwd.h],
+AC_DEFINE([HAVE_PW_COMMENT], 1,
+ [Define if struct passwd has a field pw_comment]))
+AC_EGREP_HEADER([pw_class], [pwd.h],
+ AC_DEFINE([HAVE_PW_CLASS], 1,
+ [Define if struct passwd has a field pw_class]))
+AC_EGREP_HEADER([pw_change], [pwd.h],
+ AC_DEFINE([HAVE_PW_CHANGE], 1,
+ [Define if struct passwd has a field pw_change]))
+AC_EGREP_HEADER([pw_expire], [pwd.h],
+ AC_DEFINE([HAVE_PW_EXPIRE], 1,
+ [Define if struct passwd has a field pw_expire]))
+
+# Checks for library functions.
+AC_FUNC_MALLOC
+AC_FUNC_REALLOC
+AC_CHECK_FUNCS([strchr strdup])
+
+AC_CONFIG_FILES([
+ Makefile
+ src/Makefile
+ src/lib/Makefile
+ src/hesinfo/Makefile
+ man/Makefile
+ src/hesiod.pc
+])
+AC_OUTPUT
Added: trunk/athena/lib/hesiod/debian/README.debian
===================================================================
--- trunk/athena/lib/hesiod/debian/README.debian (rev 0)
+++ trunk/athena/lib/hesiod/debian/README.debian 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,10 @@
+hesiod for Debian
+----------------------
+
+This is the hesiod name service library, available from
+ftp://athena-dist.mit.edu/pub/ATHENA/hesiod. Hesiod is derived from BIND,
+the Berkeley Internet Name Daemon, and can leverage the existing DNS
+infrastructure of a network to provide name service for a variety of
+applications.
+
+Steve Langasek <vorlon@debian.org>, Tue, 31 Oct 2000 23:27:22 -0600
Added: trunk/athena/lib/hesiod/debian/changelog
===================================================================
--- trunk/athena/lib/hesiod/debian/changelog (rev 0)
+++ trunk/athena/lib/hesiod/debian/changelog 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,253 @@
+hesiod (3.2.1-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Alexander Chernyakhovsky <achernya@mit.edu> Tue, 02 Apr 2013 17:21:02 -0400
+
+hesiod (3.2.0-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Alexander Chernyakhovsky <achernya@mit.edu> Sun, 24 Mar 2013 23:44:40 -0400
+
+hesiod (3.1.1-1) unstable; urgency=low
+
+ [ Evan Broder ]
+ * Use libidn to internationalize a domain name.
+
+ -- Alexander Chernyakhovsky <achernya@mit.edu> Sun, 24 Mar 2013 04:18:06 -0400
+
+hesiod (3.0.2-21) unstable; urgency=low
+
+ * Danish debconf transaltion by Joe Dalton; Closes: #619058
+ * Add build-{indep,arch} targets.
+ * Drop the old, wrong, bad watch file.
+ * Bumped Standards-Version.
+
+ -- Karl Ramm <kcr@debian.org> Wed, 01 Feb 2012 09:32:17 -0500
+
+hesiod (3.0.2-20) unstable; urgency=low
+
+ * New ES debconf translation thanks to Fernando González de Requena.
+ Closes: #528971
+ * Fix up dependencies, don't call dh_undocumented anymore, remove broken
+ watch file (I already _know_ there's a new version), help shut
+ lintian up.
+
+ -- Karl Ramm <kcr@debian.org> Thu, 14 Jan 2010 18:35:37 -0500
+
+hesiod (3.0.2-19) unstable; urgency=low
+
+ * Acknowledge NMUs.
+ * Only fiddle with hesiod.conf at the configuration stage. Closes: #435876
+ * Set the debconf priority for rhs to low; Closes: #321530
+ Automatically deal with perhaps the one case ever where the obvious
+ default is wrong.
+ * JA debconf translation, thanks to Hideki Yamane. Closes: #512866
+
+ -- Karl Ramm <kcr@debian.org> Thu, 12 Mar 2009 01:08:20 -0400
+
+hesiod (3.0.2-18.3) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * Fix pending l10n issues. Debconf translations:
+ - Swedish. Closes: #492065
+
+ -- Christian Perrier <bubulle@debian.org> Thu, 09 Oct 2008 22:29:31 +0200
+
+hesiod (3.0.2-18.2) unstable; urgency=low
+
+ * Non-maintainer upload to fix longstanding l10n issues
+ * Debconf templates and debian/control reviewed by the debian-l10n-
+ english team as part of the Smith review project. Closes: #452495
+ * [Debconf translation updates]
+ - Basque. Closes: #453298
+ - Galician. Closes: #453329, #412660
+ - Vietnamese. Closes: #453375
+ - Finnish. Closes: #453649
+ - Italian. Closes: #454644
+ - French. Closes: #454696
+ - Czech. Closes: #455551
+ - Russian. Closes: #455966
+ - Portuguese. Closes: #456361, #420364, #439696
+ - Norwegian Bokmål. Closes: #456406
+ - Portuguese. Closes: #456361
+ - Italian. Closes: #456510
+ - Vietnamese. Closes: #453375, #427051
+ - Czech. Closes: #455551
+ - Spanish. Closes: #426175
+ - Dutch. Closes: #468304
+ - Brazilian Portuguese. Closes: #470930
+ * [Lintian] Set debhelper compatibility in debian/compat
+ * [Lintian] No longer ignoer errors from "make distclean"
+ * [Lintian] Move libhesiod-dev to libdevel section
+
+ -- Christian Perrier <bubulle@debian.org> Sat, 15 Mar 2008 00:09:08 +0100
+
+hesiod (3.0.2-18.1) unstable; urgency=low
+
+ * Non-maintainer upload to fix longstanding l10n issues
+ * Debconf templates translations updates:
+ - Portuguese. Closes: #394024
+ - French. Closes: #394066
+ - German. Closes: #396429
+ - Czech. Closes: #396715
+ - Basque. Closes: #398575
+ - Russian. Closes: #404411
+
+ -- Christian Perrier <bubulle@debian.org> Fri, 19 Jan 2007 20:00:08 +0100
+
+hesiod (3.0.2-18) unstable; urgency=low
+
+ * New maintainer. Closes: #203001
+ * Make debconf templates lintian compliant (add colons)
+ * Assert Standards-Version: 3.7.2
+
+ -- Karl Ramm <kcr@debian.org> Mon, 16 Oct 2006 03:14:28 -0400
+
+hesiod (3.0.2-17.1) unstable; urgency=low
+
+ * Non-maintainer upload, with maintainer's permission, to fix pending l10n issues
+ * Debconf translations:
+ - Fixed German. Closes: #314045
+ - Added Dutch. Closes: #263714
+ - Added Czech. Closes: #312150
+ - Added Vietnamese. Closes: #311897
+ - Added Swedish. Closes: #337769
+ - Added Basque. Sent during the call for updates of the NMU.
+ - Added Russian. Sent during the call for updates of the NMU.
+
+ -- Christian Perrier <bubulle@debian.org> Tue, 3 Oct 2006 18:45:29 +0200
+
+hesiod (3.0.2-16) unstable; urgency=low
+
+ * Use ${misc:Depends} instead of depending on debconf directly, for
+ compatibility with cdebconf.
+
+ -- Steve Langasek <vorlon@debian.org> Fri, 5 Aug 2005 01:05:31 -0700
+
+hesiod (3.0.2-15.1) unstable; urgency=low
+
+ * Non-maintainer upload with maintainer permission.
+ * Fix configure not detecting correctly libresolv on some systems where
+ the symbols it tries to link to are macros.
+ Bug #200160 is now a wishlist.
+ * Fix manpages using hyphen as a minus sign.
+
+ -- Guillem Jover <guillem@debian.org> Fri, 14 May 2004 05:24:52 +0200
+
+hesiod (3.0.2-15) unstable; urgency=low
+
+ * Maintenance release: incorporate pt_BR and fr debconf translations;
+ thanks to André Luís Lopes <andrelop@debian.org> and Christian
+ Perrier <bubulle@debian.org>. (Closes: #206179, #207074.)
+
+ -- Steve Langasek <vorlon@debian.org> Sun, 24 Aug 2003 21:54:39 -0500
+
+hesiod (3.0.2-14) unstable; urgency=low
+
+ * Adjust debconf handling to derive sane defaults from
+ /etc/resolv.conf, so the question priorities can be lowered
+ (closes: #202585).
+ * Migrate debconf templates to po-debconf for l10n and integrate
+ the translations that were hiding on the DDTP site.
+ * Link libhesiod against -lresolv (closes: #194462).
+
+ -- Steve Langasek <vorlon@debian.org> Sat, 26 Jul 2003 14:52:38 -0500
+
+hesiod (3.0.2-13) unstable; urgency=low
+
+ * Correct the hesiod.conf path listed in the hesinfo manpages. Thanks
+ to John T. Rose <rose@iastate.edu> for reporting.
+
+ -- Steve Langasek <vorlon@debian.org> Sun, 8 Dec 2002 21:35:20 -0600
+
+hesiod (3.0.2-12) unstable; urgency=medium
+
+ * Significant bug in dpkg-reconfigure: the one thing in the config
+ users are really going to want to change doesn't get updated
+ properly. (closes: #144401)
+ * Remove /etc/hesiod.conf on purge (closes: #144400)
+
+ -- Steve Langasek <vorlon@debian.org> Mon, 22 Apr 2002 16:14:21 -0500
+
+hesiod (3.0.2-11) unstable; urgency=low
+
+ * fix package priorities to match the archive.
+ * fix /usr/share/doc symlinks.
+
+ -- Steve Langasek <vorlon@debian.org> Wed, 20 Mar 2002 22:39:39 -0600
+
+hesiod (3.0.2-10) unstable; urgency=medium
+
+ * The "just because no one uses it doesn't mean I should let it
+ release like this" release.
+ * Add proper dependency on debconf.
+ * Fix unsafe ldconfig handling in maintainer scripts. I guess that
+ could accidentally destroy someone's print job during an upgrade, if
+ you timed it just right.
+
+ -- Steve Langasek <vorlon@debian.org> Wed, 20 Mar 2002 22:03:11 -0600
+
+hesiod (3.0.2-9) unstable; urgency=low
+
+ * Nor should /etc/hesiod.conf belong to our package.
+
+ -- Steve Langasek <vorlon@debian.org> Mon, 22 Jan 2001 19:15:22 -0600
+
+hesiod (3.0.2-8) unstable; urgency=low
+
+ * If we're going to edit /etc/hesiod.conf, it should *not* be a conffile.
+
+ -- Steve Langasek <vorlon@debian.org> Tue, 16 Jan 2001 00:31:20 -0600
+
+hesiod (3.0.2-7) unstable; urgency=low
+
+ * Incorporated debconf support from David Maze's package <dmaze@mit.edu>
+ * Fixed configure args to use the correct sysconfdir setting
+
+ -- Steve Langasek <vorlon@dodds.net> Tue, 02 Jan 2001 11:24:14 -0600
+
+hesiod (3.0.2-6) unstable; urgency=low
+
+ * use dh_links to create symlinks between doc directories.
+
+ -- Steve Langasek <vorlon@dodds.net> Tue, 26 Dec 2000 19:15:23 -0600
+
+hesiod (3.0.2-5) unstable; urgency=low
+
+ * Removed debian/shlibs.local again, using LD_LIBRARY_PATH to let
+ dpkg-shlibdeps detect dependencies (per conversation with Ben Collins)
+ * Switched to using DH_COMPAT=2 during build.
+ * Use dh_makeshlibs for auto-generation of shlibs file
+
+ -- Steve Langasek <vorlon@dodds.net> Tue, 19 Dec 2000 00:14:50 -0600
+
+hesiod (3.0.2-4) unstable; urgency=low
+
+ * Added debian/shlibs.local to ensure proper dependencies; fixes warning
+ from dpkg-shlibdeps
+
+ -- Steve Langasek <vorlon@dodds.net> Tue, 19 Dec 2000 00:14:50 -0600
+
+hesiod (3.0.2-3) unstable; urgency=low
+
+ * Fixed sharedlib to properly link as PIC code.
+ * Moved .so symlink to the dev package. Now builds lintian-clean.
+
+ -- Steve Langasek <vorlon@dodds.net> Wed, 29 Nov 2000 12:48:24 -0600
+
+hesiod (3.0.2-2) unstable; urgency=low
+
+ * Fixed to include a proper libhesiod package (addition of soname,
+ ldconfig called on install, .shlibs file created)
+
+ -- Steve Langasek <vorlon@dodds.net> Mon, 06 Nov 2000 00:55:13 -0600
+
+hesiod (3.0.2-1) unstable; urgency=low
+
+ * Initial release.
+
+ -- Steve Langasek <vorlon@dodds.net> Tue, 31 Oct 2000 23:27:22 -0600
+
+
Added: trunk/athena/lib/hesiod/debian/compat
===================================================================
--- trunk/athena/lib/hesiod/debian/compat (rev 0)
+++ trunk/athena/lib/hesiod/debian/compat 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1 @@
+9
Added: trunk/athena/lib/hesiod/debian/control
===================================================================
--- trunk/athena/lib/hesiod/debian/control (rev 0)
+++ trunk/athena/lib/hesiod/debian/control 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,54 @@
+Source: hesiod
+Section: libs
+Priority: extra
+Maintainer: Karl Ramm <kcr@debian.org>
+Uploaders: Alexander Chernyakhovsky <achernya@mit.edu>
+DM-Upload-Allowed: yes
+Standards-Version: 3.9.4
+Build-Depends: debhelper (>= 9), dpkg-dev (>= 1.16.1~), dh-exec (>=0.3), autotools-dev, dh-autoreconf, libidn11-dev
+Vcs-git: git://github.com/achernya/hesiod.git
+Vcs-browser: https://github.com/achernya/hesiod
+
+Package: hesiod
+Architecture: any
+Section: utils
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Project Athena's DNS-based directory service - utilities
+ Hesiod is a name service library that can provide general name service
+ for a variety of applications. It is derived from BIND, the Berkeley
+ Internet Name Daemon, and leverages the existing DNS infrastructure of a
+ network. It is used on a number of university networks, including MIT
+ and Iowa State University.
+ .
+ This package is only useful on networks that already use
+ Hesiod.
+
+Package: libhesiod0
+Architecture: any
+Multi-Arch: same
+Section: libs
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Project Athena's DNS-based directory service - libraries
+ Hesiod is a name service library that can provide general name service
+ for a variety of applications. It is derived from BIND, the Berkeley
+ Internet Name Daemon, and leverages the existing DNS infrastructure of a
+ network. It is used on a number of university networks, including MIT
+ and Iowa State University.
+ .
+ This package contains Hesiod's shared library.
+
+Package: libhesiod-dev
+Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Section: libdevel
+Depends: libhesiod0 (= ${binary:Version}), ${misc:Depends}
+Description: Project Athena's DNS-based directory service - development files
+ Hesiod is a name service library that can provide general name service
+ for a variety of applications. It is derived from BIND, the Berkeley
+ Internet Name Daemon, and leverages the existing DNS infrastructure of a
+ network. It is used on a number of university networks, including MIT
+ and Iowa State University.
+ .
+ This package contains Hesiod's include files and static library.
Added: trunk/athena/lib/hesiod/debian/copyright
===================================================================
--- trunk/athena/lib/hesiod/debian/copyright (rev 0)
+++ trunk/athena/lib/hesiod/debian/copyright 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,49 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: hesiod
+Source: https://github.com/achernya/hesiod
+
+Files: *
+Copyright: 1996, Massachusetts Institute of Technology.
+License: BSD-2-clause
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ .
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ .
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Files: src/lib/hesiod.*
+Copyright: 1996, Internet Software Consortium.
+License: ISC
+ Permission to use, copy, modify, and distribute this software for
+ any purpose with or without fee is hereby granted, provided that the
+ above copyright notice and this permission notice appear in all
+ copies.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
Added: trunk/athena/lib/hesiod/debian/hesiod.dirs
===================================================================
--- trunk/athena/lib/hesiod/debian/hesiod.dirs (rev 0)
+++ trunk/athena/lib/hesiod/debian/hesiod.dirs 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,4 @@
+etc
+usr/lib
+usr/include
+usr/share/man/man1
Added: trunk/athena/lib/hesiod/debian/hesiod.install
===================================================================
--- trunk/athena/lib/hesiod/debian/hesiod.install (rev 0)
+++ trunk/athena/lib/hesiod/debian/hesiod.install 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,2 @@
+usr/bin/hesinfo
+usr/share/man/man1/*.1
Added: trunk/athena/lib/hesiod/debian/hesiod.links
===================================================================
--- trunk/athena/lib/hesiod/debian/hesiod.links (rev 0)
+++ trunk/athena/lib/hesiod/debian/hesiod.links 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1 @@
+usr/share/doc/libhesiod0 usr/share/doc/hesiod
Added: trunk/athena/lib/hesiod/debian/libhesiod-dev.install
===================================================================
--- trunk/athena/lib/hesiod/debian/libhesiod-dev.install (rev 0)
+++ trunk/athena/lib/hesiod/debian/libhesiod-dev.install 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,6 @@
+#!/usr/bin/dh-exec
+usr/include/*
+usr/lib/${DEB_HOST_MULTIARCH}/libhesiod.so
+usr/lib/${DEB_HOST_MULTIARCH}/libhesiod.a
+usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/hesiod.pc
+usr/share/man/man3/*.3
Property changes on: trunk/athena/lib/hesiod/debian/libhesiod-dev.install
___________________________________________________________________
Added: svn:executable
+ *
Added: trunk/athena/lib/hesiod/debian/libhesiod-dev.links
===================================================================
--- trunk/athena/lib/hesiod/debian/libhesiod-dev.links (rev 0)
+++ trunk/athena/lib/hesiod/debian/libhesiod-dev.links 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1 @@
+usr/share/doc/libhesiod0 usr/share/doc/libhesiod-dev
Added: trunk/athena/lib/hesiod/debian/libhesiod0.config
===================================================================
--- trunk/athena/lib/hesiod/debian/libhesiod0.config (rev 0)
+++ trunk/athena/lib/hesiod/debian/libhesiod0.config 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,29 @@
+#!/bin/sh -e
+
+# Source debconf library.
+. /usr/share/debconf/confmodule
+if [ -f /etc/hesiod.conf ]; then
+ . /etc/hesiod.conf || true
+ if [ "$lhs" ]; then
+ db_set hesiod/lhs $lhs
+ fi
+ if [ "$rhs" ]; then
+ db_set hesiod/rhs $rhs
+ fi
+ if [ "$classes" ]; then
+ db_set hesiod/classes $classes
+ fi
+elif [ -f /etc/resolv.conf ]; then
+ rhs=`sed -n -e's/^[[:space:]]*search[[:space:]]\+\([^[:space:]]\+\)\([[:space:]]\+.*$\)*/\1/p' \
+ < /etc/resolv.conf | head -n 1`
+ if [ "$rhs" ]; then
+ if test "$rhs" = "mit.edu"; then
+ rhs=athena.mit.edu
+ fi
+ db_set hesiod/rhs ".$rhs"
+ fi
+fi
+db_input low hesiod/rhs || true
+db_input low hesiod/lhs || true
+db_input low hesiod/classes || true
+db_go || true
Added: trunk/athena/lib/hesiod/debian/libhesiod0.docs
===================================================================
--- trunk/athena/lib/hesiod/debian/libhesiod0.docs (rev 0)
+++ trunk/athena/lib/hesiod/debian/libhesiod0.docs 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1 @@
+README NEWS debian/README.debian
Added: trunk/athena/lib/hesiod/debian/libhesiod0.install
===================================================================
--- trunk/athena/lib/hesiod/debian/libhesiod0.install (rev 0)
+++ trunk/athena/lib/hesiod/debian/libhesiod0.install 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,3 @@
+#!/usr/bin/dh-exec
+usr/lib/${DEB_HOST_MULTIARCH}/libhesiod.so.*
+usr/share/man/man5/*.5
Property changes on: trunk/athena/lib/hesiod/debian/libhesiod0.install
___________________________________________________________________
Added: svn:executable
+ *
Added: trunk/athena/lib/hesiod/debian/libhesiod0.postinst
===================================================================
--- trunk/athena/lib/hesiod/debian/libhesiod0.postinst (rev 0)
+++ trunk/athena/lib/hesiod/debian/libhesiod0.postinst 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,62 @@
+#!/bin/sh -e
+
+# Source debconf library.
+. /usr/share/debconf/confmodule
+
+# Load debconf values
+db_version 2.0
+db_get hesiod/rhs
+rhs="$RET"
+db_get hesiod/lhs
+lhs="$RET"
+db_get hesiod/classes
+classes="$RET"
+
+hesconf=/etc/hesiod.conf
+
+createhesconf() {
+ cat <<EOF > "$hesconf"
+# This file determines the behavior of the Hesiod library.
+
+# This line should pretty much always be the same, unless you have a
+# funny environment.
+lhs=$lhs
+
+# This determines the Hesiod domain. You must specify an rhs line.
+rhs=$rhs
+
+# This line specifies the class search order. You can reverse the
+# order or leave out IN or HS if you want. Don't add spaces after the
+# beginning of the value.
+classes=$classes
+EOF
+}
+
+edithesconf() {
+ sed -e "s/^lhs=.*/lhs=$lhs/" \
+ -e "s/^rhs=.*/rhs=$rhs/" \
+ -e "s/^classes=.*/classes=$classes/" \
+ -i "$hesconf"
+}
+
+case "$1" in
+ configure)
+ if [ ! -f "$hesconf" ]; then
+ createhesconf
+ else
+ edithesconf
+ fi
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+#DEBHELPER#
+
+exit 0
Added: trunk/athena/lib/hesiod/debian/libhesiod0.postrm
===================================================================
--- trunk/athena/lib/hesiod/debian/libhesiod0.postrm (rev 0)
+++ trunk/athena/lib/hesiod/debian/libhesiod0.postrm 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,7 @@
+#!/bin/sh -e
+
+if [ "$1" = "purge" ]; then
+ rm -f /etc/hesiod.conf
+fi
+
+#DEBHELPER#
Added: trunk/athena/lib/hesiod/debian/libhesiod0.templates
===================================================================
--- trunk/athena/lib/hesiod/debian/libhesiod0.templates (rev 0)
+++ trunk/athena/lib/hesiod/debian/libhesiod0.templates 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,42 @@
+# These templates have been reviewed by the debian-l10n-english
+# team
+#
+# If modifications/additions/rewording are needed, please ask
+# debian-l10n-english@lists.debian.org for advice.
+#
+# Even minor modifications require translation updates and such
+# changes should be coordinated with translators and reviewers.
+
+Template: hesiod/rhs
+Type: string
+Default: .athena.mit.edu
+_Description: Hesiod domain for searches:
+ Please enter the Hesiod RHS (right hand-side) to do searches in.
+ .
+ If the Hesiod server is 'ns.example.org' then the LHS will be '.ns', the
+ RHS will be '.example.org' (note leading periods) and directory lookups
+ will be performed as DNS requests to (e.g.) 'sam.passwd.ns.example.org'.
+
+Template: hesiod/lhs
+Type: string
+Default: .ns
+_Description: Hesiod prefix for searches:
+ Please enter the Hesiod LHS (left hand-side) to do searches in.
+ .
+ If the Hesiod server is 'ns.example.org' then the LHS will be '.ns', the
+ RHS will be '.example.org' (note leading periods) and directory lookups
+ will be performed as DNS requests to (e.g.) 'sam.passwd.ns.example.org'.
+
+Template: hesiod/classes
+Type: string
+Default: IN,HS
+_Description: DNS class search order:
+ Hesiod looks up names using DNS TXT records. In addition to using the
+ standard IN DNS class for Internet names, it also uses by default the
+ special HS class.
+ .
+ Please enter the class search order (the default value is suitable for
+ most sites). There should be no spaces in this search order value.
+ .
+ Sites using
+ older Hesiod installations may need to use the 'HS,IN' search order.
Added: trunk/athena/lib/hesiod/debian/po/POTFILES.in
===================================================================
--- trunk/athena/lib/hesiod/debian/po/POTFILES.in (rev 0)
+++ trunk/athena/lib/hesiod/debian/po/POTFILES.in 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1 @@
+[type: gettext/rfc822deb] libhesiod0.templates
Added: trunk/athena/lib/hesiod/debian/po/cs.po
===================================================================
--- trunk/athena/lib/hesiod/debian/po/cs.po (rev 0)
+++ trunk/athena/lib/hesiod/debian/po/cs.po 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,131 @@
+# translation of hesiod_3.0.2-18_cs.po to czech
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+# Jakub Kasparec <mr.k@centrum.cz>, 2006.
+# Miroslav Kure <kurem@debian.cz>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: hesiod\n"
+"Report-Msgid-Bugs-To: Source: hesiod@packages.debian.org\n"
+"POT-Creation-Date: 2007-12-13 12:21+0530\n"
+"PO-Revision-Date: 2007-12-24 14:30+0100\n"
+"Last-Translator: Miroslav Kure <kurem@debian.cz>\n"
+"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Hesiod domain for searches:"
+msgstr "Doména Hesiodu pro vyhledávání:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Please enter the Hesiod RHS (right hand-side) to do searches in."
+msgstr "Zadejte prosím pravou část domény, ve které se má prohledávat."
+
+#. Type: string
+#. Description
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001 ../libhesiod0.templates:3001
+msgid ""
+"If the Hesiod server is 'ns.example.org' then the LHS will be '.ns', the RHS "
+"will be '.example.org' (note leading periods) and directory lookups will be "
+"performed as DNS requests to (e.g.) 'sam.passwd.ns.example.org'."
+msgstr ""
+"Jmenuje-li se Hesiod server „ns.priklad.org“, pak levá strana bude „.ns“, "
+"pravá pak „.priklad.org“ (všimněte si úvodních teček) a vyhledávání v "
+"adresáři bude probíhat formou DNS dotazů na (například) „sam.passwd.ns."
+"priklad.org“."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Hesiod prefix for searches:"
+msgstr "Prefix Hesiodu pro vyhledávání:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Please enter the Hesiod LHS (left hand-side) to do searches in."
+msgstr "Zadejte prosím levou část domény, ve které se má prohledávat."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid "DNS class search order:"
+msgstr "Pořadí prohledávání DNS tříd:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Hesiod looks up names using DNS TXT records. In addition to using the "
+"standard IN DNS class for Internet names, it also uses by default the "
+"special HS class."
+msgstr ""
+"Hesiod vyhledává jména za použití DNS TXT záznamů. Jako doplňku k použití "
+"standardní třídy IN DNS pro internetová jména se jako výchozí používá také "
+"speciální třída HS."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Please enter the class search order (the default value is suitable for most "
+"sites). There should be no spaces in this search order value."
+msgstr ""
+"Zadejte prosím pořadí prohledávání tříd (výchozí hodnota se hodí pro většinu "
+"serverů. V této hodnotě by se neměly vyskytovat mezery."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Sites using older Hesiod installations may need to use the 'HS,IN' search "
+"order."
+msgstr ""
+"Na serverech, na kterých se stále používá starší verze Hesiodu, zřejmě "
+"budete muset zadat pořadí „HS,IN“."
+
+#~| msgid ""
+#~| "Hesiod looks up keys using the standard Domain Name System. Enter the "
+#~| "right-hand side of the domain name to do searches in. This name should "
+#~| "begin with a \".\"."
+#~ msgid ""
+#~ "Hesiod looks up keys using the standard Domain Name System. Please enter "
+#~ "the rightmost part of the domain name to do searches in. This name should "
+#~ "begin with a '.' character."
+#~ msgstr ""
+#~ "Hesiod vyhledává klíče s použitím standardního DNS (jmenného doménového "
+#~ "systému). Zadejte doménové jméno (jeho pravou část), které se má "
+#~ "prohledávat. Toto jméno by mělo začínat znakem „.“."
+
+#~| msgid ""
+#~| "Hesiod lookups generally happen in a subdomain of the main domain. Enter "
+#~| "the name of the subdomain here. This name should begin with a \".\". "
+#~| "At most sites, this entry should be \".ns\"."
+#~ msgid ""
+#~ "Hesiod lookups generally happen in a subdomain of the main domain. Please "
+#~ "enter the name of the subdomain. This name should begin with a '.' "
+#~ "character. This entry is '.ns' at many sites."
+#~ msgstr ""
+#~ "Vyhledávání Hesiodu se obecně děje v poddoméně domény. Zadejte jméno této "
+#~ "poddomény. Jméno by mělo začínat „.“. U většiny serverů to pravděpodobně "
+#~ "bude „.ns“."
Added: trunk/athena/lib/hesiod/debian/po/da.po
===================================================================
--- trunk/athena/lib/hesiod/debian/po/da.po (rev 0)
+++ trunk/athena/lib/hesiod/debian/po/da.po 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,96 @@
+# Danish translation hesiod.
+# Copyright (C) 2011 THE PACKAGE'S COPYRIGHT HOLDER.
+# This file is distributed under the same license as the postgresql-common package.
+# Joe Hansen (joedalton2@yahoo.dk), 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: hesiod\n"
+"Report-Msgid-Bugs-To: Source: hesiod@packages.debian.org\n"
+"POT-Creation-Date: 2007-12-13 12:21+0530\n"
+"PO-Revision-Date: 2011-03-20 19:25+0200\n"
+"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
+"Language-Team: Danish <debian-l10n-danish@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Hesiod domain for searches:"
+msgstr "Hesioddomæne til søgninger:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Please enter the Hesiod RHS (right hand-side) to do searches in."
+msgstr "Indtast venligst Hesiod-RHS'en (højre side) som søgninger skal foretages i."
+
+#. Type: string
+#. Description
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001 ../libhesiod0.templates:3001
+msgid ""
+"If the Hesiod server is 'ns.example.org' then the LHS will be '.ns', the RHS "
+"will be '.example.org' (note leading periods) and directory lookups will be "
+"performed as DNS requests to (e.g.) 'sam.passwd.ns.example.org'."
+msgstr ""
+"Hvis Hesiodserveren er »ns.example.org«, så vil LHS'en være ».ns«, "
+"RHS'en vil være ».example.org« (bemærk foranstillede perioder) og "
+"mappeopslag vil blive udført som DNS-forespørgsler til (f.eks.) "
+"»sam.passwd.ns.example.org«."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Hesiod prefix for searches:"
+msgstr "Hesiodpræfiks til søgninger:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Please enter the Hesiod LHS (left hand-side) to do searches in."
+msgstr "Indtast venligst Hesiod-LHS'en (venstre side) som søgninger skal foretages i."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid "DNS class search order:"
+msgstr "Søgerækkefølge for DNS-klasse:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Hesiod looks up names using DNS TXT records. In addition to using the "
+"standard IN DNS class for Internet names, it also uses by default the "
+"special HS class."
+msgstr ""
+"Hesiod slår navne op ved brug af DNS TXT-poster. Udover at bruge "
+"standard IN DNS-klassen for internetnavne, bruger den også som standard "
+"den specielle HS-klasse."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Please enter the class search order (the default value is suitable for most "
+"sites). There should be no spaces in this search order value."
+msgstr ""
+"Indtast venligst søgerækkefølgen for klassen (standardværdien er egnet "
+"for de fleste sider). Der bør ikke være mellemrum i denne søgerækkefølges "
+"værdi."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Sites using older Hesiod installations may need to use the 'HS,IN' search "
+"order."
+msgstr ""
+"Sider som bruger ældre installationer af Hesiod kan bruge søgerækkefølgen "
+"»HS,IN«."
+
+
Added: trunk/athena/lib/hesiod/debian/po/de.po
===================================================================
--- trunk/athena/lib/hesiod/debian/po/de.po (rev 0)
+++ trunk/athena/lib/hesiod/debian/po/de.po 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,133 @@
+# Translation of hesiod debconf templates to German
+# Copyright (C) Helge Kreutzmann <debian@helgefjell.de>, 2006, 2007.
+# This file is distributed under the same license as the hesiod package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: hesiod 3.0.2-18.2\n"
+"Report-Msgid-Bugs-To: Source: hesiod@packages.debian.org\n"
+"POT-Creation-Date: 2007-12-13 12:21+0530\n"
+"PO-Revision-Date: 2007-12-13 19:38+0100\n"
+"Last-Translator: Helge Kreutzmann <debian@helgefjell.de>\n"
+"Language-Team: de <debian-l10n-german@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Hesiod domain for searches:"
+msgstr "Hesiod-Domain, in der gesucht werden soll:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Please enter the Hesiod RHS (right hand-side) to do searches in."
+msgstr ""
+"Bitte geben Sie die RHS (rechte Seite, right hand-side) von Hesiod fr "
+"Suchen ein."
+
+#. Type: string
+#. Description
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001 ../libhesiod0.templates:3001
+msgid ""
+"If the Hesiod server is 'ns.example.org' then the LHS will be '.ns', the RHS "
+"will be '.example.org' (note leading periods) and directory lookups will be "
+"performed as DNS requests to (e.g.) 'sam.passwd.ns.example.org'."
+msgstr ""
+"Falls der Hesiod-Server ns.example.org ist, dann ist die linke Seite (LHS, "
+"left hand side) .ns, die RHS ist dann .example.org (beachten Sie die "
+"einleitenden Punkte) und Verzeichnisabfragen werden als DNS-Anfragen an (z."
+"B.) sam.passwd.ns.example.org gerichtet."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Hesiod prefix for searches:"
+msgstr "Hesiod-Prfix fr Recherchen:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Please enter the Hesiod LHS (left hand-side) to do searches in."
+msgstr ""
+"Bitte geben Sie die LHS (linke Seite, left hand-side) von Hesiod fr Suchen "
+"ein."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid "DNS class search order:"
+msgstr "Such-Reihenfolge der DNS-Klassen:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Hesiod looks up names using DNS TXT records. In addition to using the "
+"standard IN DNS class for Internet names, it also uses by default the "
+"special HS class."
+msgstr ""
+"Hesiod schlgt Namen in DNS TXT-Datenstzen nach. Zustzlich zur Verwendung "
+"der normalen IN DNS-Klasse fr Internet-Namen verwendet es standardmig "
+"auch spezielle HS-Klassen."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Please enter the class search order (the default value is suitable for most "
+"sites). There should be no spaces in this search order value."
+msgstr ""
+"Bitte geben Sie die Klassen-Suchreihenfolge ein (der voreingestellte Wert "
+"ist fr die meisten Sites geeignet). Es sollte im Wert der Suchreihenfolge "
+"keine Leerzeichen geben."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Sites using older Hesiod installations may need to use the 'HS,IN' search "
+"order."
+msgstr ""
+"Sites, die eine ltere Hesiod-Installation verwenden, knnten die "
+"Suchreihenfolge HS,IN bentigen."
+
+#~ msgid ""
+#~ "Hesiod looks up keys using the standard Domain Name System. Please enter "
+#~ "the rightmost part of the domain name to do searches in. This name should "
+#~ "begin with a '.' character."
+#~ msgstr ""
+#~ "Hesiod sucht Schlssel mit Hilfe des normalen Domain Name Systems. Bitte "
+#~ "geben Sie hier den am weitesten rechts stehenden Teil des Domainnamens "
+#~ "ein, in dem gesucht werden soll. Dieser Name sollte mit einem Punkt (.) "
+#~ "beginnen."
+
+#~ msgid ""
+#~ "Hesiod lookups generally happen in a subdomain of the main domain. Please "
+#~ "enter the name of the subdomain. This name should begin with a '.' "
+#~ "character. This entry is '.ns' at many sites."
+#~ msgstr ""
+#~ "Hesiod-Recherchen finden generell in einer Subdomne der Hauptdomne "
+#~ "statt. Bitte geben Sie den Namen der Subdomne ein. Der Name sollte mit "
+#~ "einem . beginnen. Dieser Eintrag lautet bei vielen Sites .ns."
+
+#~ msgid ""
+#~ "Hesiod looks up names using DNS TXT records. In addition to using the "
+#~ "standard IN DNS class for Internet names, it also uses by default the "
+#~ "special HS class. You can change the class search order here, or leave "
+#~ "out IN or HS if you want to. Don't insert extra spaces in the value. "
+#~ "The default search path is \"IN,HS\" to search both classes. At some "
+#~ "sites where older hesiod installations are still in use, you may need to "
+#~ "specify \"HS,IN\" instead."
+#~ msgstr ""
+#~ "Hesiod lst die Namen anhand von DNS-TXT-Eintrgen auf. Zustzlich zu der "
+#~ "Standard-IN-DNS-Klasse fr Internet-Namen kann auch der Gebrauch der "
+#~ "speziellen HS-Klasse voreingestellt werden. Sie knnen Sie Klassen-Such-"
+#~ "Reihenfolge hier verndern oder auch IN bzw. HS herausnehmen. Bitte fgen "
+#~ "Sie keine Leerzeichen ein. Der Standard-Suchpfad ist IN,HS fr die Suche "
+#~ "in beiden Klassen. In einigen Betrieben mit lteren Hesiod-Installationen "
+#~ "brauchen Sie vielleicht stattdessen HS,IN."
Added: trunk/athena/lib/hesiod/debian/po/es.po
===================================================================
--- trunk/athena/lib/hesiod/debian/po/es.po (rev 0)
+++ trunk/athena/lib/hesiod/debian/po/es.po 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,111 @@
+# hesiod po-debconf translation to Spanish.
+# Copyright (C) 2009 Software in the Public Interest.
+# This file is distributed under the same license as the hesiod package.
+#
+# Changes:
+# - Initial translation
+# Fernando González de Requena <fgrequena@gmail.com>, 2009.
+#
+#
+# Traductores, si no conoce el formato PO, merece la pena leer la
+# documentación de gettext, especialmente las secciones dedicadas a este
+# formato, por ejemplo ejecutando:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Equipo de traducción al español, por favor lean antes de traducir
+# los siguientes documentos:
+#
+# - El proyecto de traducción de Debian al español
+# http://www.debian.org/intl/spanish/
+# especialmente las notas y normas de traducción en
+# http://www.debian.org/intl/spanish/notas
+#
+# - La guía de traducción de po's de debconf:
+# /usr/share/doc/po-debconf/README-trans
+# o http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Si tiene dudas o consultas sobre esta traducción consulte con el último
+# traductor (campo Last-Translator) y ponga en copia a la lista de
+# traducción de Debian al español (<debian-l10n-spanish@lists.debian.org>)
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: hesiod 3.0.2-19\n"
+"Report-Msgid-Bugs-To: Source: hesiod@packages.debian.org\n"
+"POT-Creation-Date: 2007-12-13 12:21+0530\n"
+"PO-Revision-Date: 2009-05-04 18:37+0200\n"
+"Last-Translator: Fernando González de Requena <fgrequena@gmail.com>\n"
+"Language-Team: Spanish <debian-l10n-spanish@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Hesiod domain for searches:"
+msgstr "Dominio de Hesiod para las búsquedas:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Please enter the Hesiod RHS (right hand-side) to do searches in."
+msgstr "Introduzca el RHS («right hand-side», lado derecho) en el que hacer las búsquedas."
+
+#. Type: string
+#. Description
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001 ../libhesiod0.templates:3001
+msgid ""
+"If the Hesiod server is 'ns.example.org' then the LHS will be '.ns', the RHS "
+"will be '.example.org' (note leading periods) and directory lookups will be "
+"performed as DNS requests to (e.g.) 'sam.passwd.ns.example.org'."
+msgstr "Si el servidor Hesiod es «ns.example.org», el LHS será «.ns», el RHS será «.example.org» (tenga en cuenta los puntos al inicio), y las búsquedas de directorio se realizarán como peticiones de DNS a (p. ej.) «sam.passwd.ns.example.org»."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Hesiod prefix for searches:"
+msgstr "Prefijo de Hesiod para búsquedas:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Please enter the Hesiod LHS (left hand-side) to do searches in."
+msgstr "Introduzca el LHS («left hand-side», parte izquierda) en el que realizar las búsquedas."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid "DNS class search order:"
+msgstr "Orden de búsqueda para las clases DNS:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Hesiod looks up names using DNS TXT records. In addition to using the "
+"standard IN DNS class for Internet names, it also uses by default the "
+"special HS class."
+msgstr "Hesiod busca los nombres utilizando registros DNS TXT. Además de usar la clase estándar IN DNS para los nombres de Internet, también utiliza de manera predeterminada la clase especial HS."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Please enter the class search order (the default value is suitable for most "
+"sites). There should be no spaces in this search order value."
+msgstr "Introduzca el orden de búsqueda para las clases (el valor por omisión es adecuado para la mayor parte de los sitios). No debe haber espacios en el valor del orden de búsqueda."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Sites using older Hesiod installations may need to use the 'HS,IN' search "
+"order."
+msgstr "Los sitios que utilizan instalaciones antiguas de Hesiod pueden necesitar usar el orden de búsqueda «HS,IN»."
+
Added: trunk/athena/lib/hesiod/debian/po/eu.po
===================================================================
--- trunk/athena/lib/hesiod/debian/po/eu.po (rev 0)
+++ trunk/athena/lib/hesiod/debian/po/eu.po 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,105 @@
+# translation of hesiod-eu.po to Euskara
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+# Piarres Beobide <pi@beobide.net>, 2006, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: hesiod-eu\n"
+"Report-Msgid-Bugs-To: Source: hesiod@packages.debian.org\n"
+"POT-Creation-Date: 2007-12-13 12:21+0530\n"
+"PO-Revision-Date: 2007-12-13 09:58+0100\n"
+"Last-Translator: Piarres Beobide <pi@beobide.net>\n"
+"Language-Team: Euskara <Librezale@librezale.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Hesiod domain for searches:"
+msgstr "Bilaketetarako hesiod domeinua:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Please enter the Hesiod RHS (right hand-side) to do searches in."
+msgstr "Mesedez idatzi bilaketak bertan egiteko Hesiod RHS-a (eskuinaldea)."
+
+#. Type: string
+#. Description
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001 ../libhesiod0.templates:3001
+msgid ""
+"If the Hesiod server is 'ns.example.org' then the LHS will be '.ns', the RHS "
+"will be '.example.org' (note leading periods) and directory lookups will be "
+"performed as DNS requests to (e.g.) 'sam.passwd.ns.example.org'."
+msgstr ""
+"Adibidez Hesiod zerbitzaria 'ns.adibidea.org' bada orduan LHS-a '.ns' izango "
+"litzateke eta RHS '.adibidea.org' izan beharko litzateke (ohartu hasierako "
+"puntuez) eta direktorioa bilaketak DNS eskakizun bat bezala egin ahal izango "
+"dira (adibidez) 'ion.pasahitza.ns.adibide.org'."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Hesiod prefix for searches:"
+msgstr "Bilaketetako hesiod aurrizkia:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Please enter the Hesiod LHS (left hand-side) to do searches in."
+msgstr "Mesedez idatzi bilaketak bertan egiteko hesiod LHS-a (ezkerraldea)."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid "DNS class search order:"
+msgstr "DNS klase bilaketa ordena:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Hesiod looks up names using DNS TXT records. In addition to using the "
+"standard IN DNS class for Internet names, it also uses by default the "
+"special HS class."
+msgstr ""
+"Hesiod-ek izenak DNS TXT erregistroak erabiliaz bilatuko du. Estandarra den "
+"DNS IN klasea erabiliaz gain HS klase berezia ere erabiltzen du lehenespen "
+"bezala."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Please enter the class search order (the default value is suitable for most "
+"sites). There should be no spaces in this search order value."
+msgstr ""
+"Mesedez idatzi klase bilaketa ordena (lehenetsiriko balioa erabilgarria da "
+"leku gehienentzat). Ez zuriunerik utzi bilaketa orden balioen artean."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Sites using older Hesiod installations may need to use the 'HS,IN' search "
+"order."
+msgstr ""
+"Hesiod instalazio zaharragoak erabiltzen duten guneek 'HS;IN' bilaketa "
+"ordena erabili behar dute."
Added: trunk/athena/lib/hesiod/debian/po/fi.po
===================================================================
--- trunk/athena/lib/hesiod/debian/po/fi.po (rev 0)
+++ trunk/athena/lib/hesiod/debian/po/fi.po 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,90 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: hesiod 3.0.2-18.2\n"
+"Report-Msgid-Bugs-To: Source: hesiod@packages.debian.org\n"
+"POT-Creation-Date: 2007-12-13 12:21+0530\n"
+"PO-Revision-Date: 2007-12-13 11:35+0200\n"
+"Last-Translator: Esko Arajärvi <edu@iki.fi>\n"
+"Language-Team: Finnish <debian-l10n-finnish@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Finnish\n"
+"X-Poedit-Country: Finland\n"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Hesiod domain for searches:"
+msgstr "Hauissa käytettävä Hesiod-verkkoalue:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Please enter the Hesiod RHS (right hand-side) to do searches in."
+msgstr "Anna Hesiod RHS (oikea puoli), jossa haut tehdään."
+
+#. Type: string
+#. Description
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001 ../libhesiod0.templates:3001
+msgid ""
+"If the Hesiod server is 'ns.example.org' then the LHS will be '.ns', the RHS "
+"will be '.example.org' (note leading periods) and directory lookups will be "
+"performed as DNS requests to (e.g.) 'sam.passwd.ns.example.org'."
+msgstr ""
+"Jos Hesiod-palvelin on ”ns.esimerkki.fi”, on LHS (vasen puoli) ”.ns” ja RHS "
+"(oikea puoli) ”.esimerkki.fi” (huomaa edeltävät pisteet), ja hakemistohaut "
+"tehdään DNS-kyselyinä (esimerkiksi) osoitteeseen ”sam.passwd.ns.esimerkki."
+"fi”."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Hesiod prefix for searches:"
+msgstr "Hauissa käytettävä Hesiod-etuliite:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Please enter the Hesiod LHS (left hand-side) to do searches in."
+msgstr "Anna Hesiod LHS (vasen puoli), jossa haut tehdään."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid "DNS class search order:"
+msgstr "DNS-luokkien hakujärjestys:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Hesiod looks up names using DNS TXT records. In addition to using the "
+"standard IN DNS class for Internet names, it also uses by default the "
+"special HS class."
+msgstr ""
+"Hesiod etsii nimiä käyttäen DNS TXT -tietueita. Sen lisäksi, että se käyttää "
+"Internet-nimien kanssa standardia IN DNS -luokkaa, se käyttää myös "
+"oletuksena erityistä HS-luokkaa."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Please enter the class search order (the default value is suitable for most "
+"sites). There should be no spaces in this search order value."
+msgstr ""
+"Anna luokkien hakujärjestys (oletusarvo on sopiva useimmille sivustoille). "
+"Hakujärjestysarvossa ei tulisi olla välilyöntejä."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Sites using older Hesiod installations may need to use the 'HS,IN' search "
+"order."
+msgstr ""
+"Vanhempia Hesiod-asennuksia käyttävien sivujen tarvitsee ehkä käyttää "
+"hakujärjestystä ”HS,IN”."
Added: trunk/athena/lib/hesiod/debian/po/fr.po
===================================================================
--- trunk/athena/lib/hesiod/debian/po/fr.po (rev 0)
+++ trunk/athena/lib/hesiod/debian/po/fr.po 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,100 @@
+# Translation of hesiod debconf templates to French
+# Copyright (C) 2006-2007 Christian Perrier <bubulle@debian.org>
+# This file is distributed under the same license as the hesiod package.
+#
+# Christian Perrier <bubulle@debian.org>, 2006-2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: Source: hesiod@packages.debian.org\n"
+"POT-Creation-Date: 2007-12-13 12:21+0530\n"
+"PO-Revision-Date: 2007-12-13 12:27+0530\n"
+"Last-Translator: Christian Perrier <bubulle@debian.org>\n"
+"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Hesiod domain for searches:"
+msgstr "Domaine Hesiod pour les recherches :"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Please enter the Hesiod RHS (right hand-side) to do searches in."
+msgstr ""
+"Veuillez indiquer la « RHS » (« right hand-side » : partie droite) Hesiod dans "
+"laquelle auront lieu les recherches."
+
+#. Type: string
+#. Description
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001 ../libhesiod0.templates:3001
+msgid ""
+"If the Hesiod server is 'ns.example.org' then the LHS will be '.ns', the RHS "
+"will be '.example.org' (note leading periods) and directory lookups will be "
+"performed as DNS requests to (e.g.) 'sam.passwd.ns.example.org'."
+msgstr ""
+"Si le serveur Hesiod est « ns.example.org », la partie gauche sera alors « ."
+"ns » et la partie droite « .example.org » (veuillez noter les points "
+"initiaux). Les recherches dans le répertoires se feront alors sous forme de "
+"requêtes DNS sur, par exemple, « sam.passwd.ns.example.org »."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Hesiod prefix for searches:"
+msgstr "Préfixe Hesiod pour les recherches :"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Please enter the Hesiod LHS (left hand-side) to do searches in."
+msgstr ""
+"Veuillez indiquer la « LHS » (« left hand-side » : partie gauche) Hesiod dans "
+"laquelle auront lieu les recherches."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid "DNS class search order:"
+msgstr "Ordre de recherche dans les classes DNS :"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Hesiod looks up names using DNS TXT records. In addition to using the "
+"standard IN DNS class for Internet names, it also uses by default the "
+"special HS class."
+msgstr ""
+"Hesiod effectue ses recherches en utilisant les enregistrements TXT du "
+"service de noms de domaine (DNS). En plus d'utiliser la classe standard IN "
+"du DNS pour rechercher les noms Internet, il utilise également par défaut la "
+"classe spéciale HS."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Please enter the class search order (the default value is suitable for most "
+"sites). There should be no spaces in this search order value."
+msgstr ""
+"Veuillez indiquer l'ordre de recherche dans les classes (la valeur par "
+"défaut est adaptée à la plupart des sites). Ce réglage ne doit pas "
+"comprendre d'espace."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Sites using older Hesiod installations may need to use the 'HS,IN' search "
+"order."
+msgstr ""
+"Sur certains sites où des installations anciennes de Hesiod sont encore "
+"utilisées, il pourrait être nécessaire d'indiquer plutôt « HS,IN »."
Added: trunk/athena/lib/hesiod/debian/po/gl.po
===================================================================
--- trunk/athena/lib/hesiod/debian/po/gl.po (rev 0)
+++ trunk/athena/lib/hesiod/debian/po/gl.po 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,110 @@
+# Galician translation of hesiod's debconf templates
+# This file is distributed under the same license as the hesiod package.
+# Jacobo Tarrio <jtarrio@debian.org>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: hesiod\n"
+"Report-Msgid-Bugs-To: Source: hesiod@packages.debian.org\n"
+"POT-Creation-Date: 2007-12-13 12:21+0530\n"
+"PO-Revision-Date: 2007-12-13 18:41+0000\n"
+"Last-Translator: Jacobo Tarrio <jtarrio@debian.org>\n"
+"Language-Team: Galician <proxecto@trasno.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Hesiod domain for searches:"
+msgstr "Dominio Hesiod para as buscas:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Please enter the Hesiod RHS (right hand-side) to do searches in."
+msgstr "Introduza o RHS (lado dereito) de Hesiod no que facer as buscas."
+
+#. Type: string
+#. Description
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001 ../libhesiod0.templates:3001
+msgid ""
+"If the Hesiod server is 'ns.example.org' then the LHS will be '.ns', the RHS "
+"will be '.example.org' (note leading periods) and directory lookups will be "
+"performed as DNS requests to (e.g.) 'sam.passwd.ns.example.org'."
+msgstr ""
+"Se o servidor Hesiod é \"ns.exemplo.org\", a parte esquerda (LHS) ha ser \"."
+"ns\", a parte dereita (RHS) ha ser \".exemplo.org\" (teña en conta os puntos "
+"ao principio) e as buscas no directorio hanse realizar coma consultas DNS a "
+"(por exemplo) \"sam.passwd.ns.exemplo.org\"."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Hesiod prefix for searches:"
+msgstr "Prefixo Hesiod para as buscas:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Please enter the Hesiod LHS (left hand-side) to do searches in."
+msgstr "Introduza o LHS (lado esquerdo) de Hesiod no que facer as buscas."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid "DNS class search order:"
+msgstr "Orde de busca de clases DNS:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Hesiod looks up names using DNS TXT records. In addition to using the "
+"standard IN DNS class for Internet names, it also uses by default the "
+"special HS class."
+msgstr ""
+"Hesiod busca os nomes empregando rexistros DNS TXT. Ademáis de usar a clase "
+"DNS estándar IN para os nomes de Internet, tamén emprega por defecto a clase "
+"especial HS."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Please enter the class search order (the default value is suitable for most "
+"sites). There should be no spaces in this search order value."
+msgstr ""
+"Introduza a orde de busca de clases (o valor por defecto é axeitado para a "
+"maioría dos sitios). Non debería haber espazos neste valor de orde de busca."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Sites using older Hesiod installations may need to use the 'HS,IN' search "
+"order."
+msgstr ""
+"Os sitios que empreguen instalacións Hesiod antigos poden ter que empregar a "
+"orde de busca \"HS,IN\"."
+
+#~ msgid ""
+#~ "Hesiod looks up keys using the standard Domain Name System. Please enter "
+#~ "the rightmost part of the domain name to do searches in. This name should "
+#~ "begin with a '.' character."
+#~ msgstr ""
+#~ "Hesiod busca as claves empregando o sistema DNS estándar. Introduza a "
+#~ "parte da dereita do nome de dominio no que buscar. Este nome debe comezar "
+#~ "cun punto (\".\")."
+
+#~ msgid ""
+#~ "Hesiod lookups generally happen in a subdomain of the main domain. Please "
+#~ "enter the name of the subdomain. This name should begin with a '.' "
+#~ "character. This entry is '.ns' at many sites."
+#~ msgstr ""
+#~ "As buscas Hesiod adoitan facerse nun subdominio do dominio principal. "
+#~ "Introduza o nome do subdominio. Este nome debería comezar cun punto (\"."
+#~ "\"). En moitos sitios, esta entrada é \".ns\"."
Added: trunk/athena/lib/hesiod/debian/po/it.po
===================================================================
--- trunk/athena/lib/hesiod/debian/po/it.po (rev 0)
+++ trunk/athena/lib/hesiod/debian/po/it.po 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,94 @@
+# Italian (it) translation of debconf templates for hesiod
+# Copyright (C) 2007 Software in the Public Interest
+# This file is distributed under the same license as the hesiod package.
+# Luca Monducci <luca.mo@tiscali.it>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: hesiod 3.0.2 debconf templates\n"
+"Report-Msgid-Bugs-To: Source: hesiod@packages.debian.org\n"
+"POT-Creation-Date: 2007-12-13 12:21+0530\n"
+"PO-Revision-Date: 2007-12-16 09:32+0100\n"
+"Last-Translator: Luca Monducci <luca.mo@tiscali.it>\n"
+"Language-Team: Italian <debian-l10n-italian@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Hesiod domain for searches:"
+msgstr "Dominio Hesiod per le ricerche:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Please enter the Hesiod RHS (right hand-side) to do searches in."
+msgstr ""
+"Inserire l'Hesiod RHS (la parte di destra) in cui effettuare le ricerche."
+
+#. Type: string
+#. Description
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001 ../libhesiod0.templates:3001
+msgid ""
+"If the Hesiod server is 'ns.example.org' then the LHS will be '.ns', the RHS "
+"will be '.example.org' (note leading periods) and directory lookups will be "
+"performed as DNS requests to (e.g.) 'sam.passwd.ns.example.org'."
+msgstr ""
+"Se il server Hesiod è \"ns.esempio.org\" allora l'LHS è \".ns\", l'RHS è \"."
+"esempio.org\" (notare il punto iniziale) e le ricerche saranno effettuate "
+"come richieste DNS verso (per esempio) \"sam.passwd.ns.esempio.org\"."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Hesiod prefix for searches:"
+msgstr "Prefisso Hesiod per le ricerche:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Please enter the Hesiod LHS (left hand-side) to do searches in."
+msgstr ""
+"Inserire l'Hesiod LHS (la parte di sinistra) in cui effettuare le ricerche."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid "DNS class search order:"
+msgstr "Ordine di ricerca classe DNS:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Hesiod looks up names using DNS TXT records. In addition to using the "
+"standard IN DNS class for Internet names, it also uses by default the "
+"special HS class."
+msgstr ""
+"Hesiod ricerca i nomi usando i record TXT nel DNS. Inoltre, per usare la "
+"classe standard IN del DNS per i nomi Internet, viene anche usata la classe "
+"speciale HS."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Please enter the class search order (the default value is suitable for most "
+"sites). There should be no spaces in this search order value."
+msgstr ""
+"Inserire l'ordine di ricerca delle classi (il valore predefinito è adatto "
+"per la maggior parte dei siti). Non si devono inserire spazi fra i valori."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Sites using older Hesiod installations may need to use the 'HS,IN' search "
+"order."
+msgstr ""
+"Nei siti in cui sono installate vecchie versioni di Hesiod potrebbe essere "
+"necessario usare \"HS,IN\" come ordine di ricerca."
Added: trunk/athena/lib/hesiod/debian/po/ja.po
===================================================================
--- trunk/athena/lib/hesiod/debian/po/ja.po (rev 0)
+++ trunk/athena/lib/hesiod/debian/po/ja.po 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,91 @@
+# Copyright (C) 2007-2009 Karl Ramm <kcr@debian.org>
+# This file is distributed under the same license as the hesiod package.
+# Hideki Yamane (Debian-JP) <henrich@debian.or.jp>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: hesiod 3.0.2-18.3\n"
+"Report-Msgid-Bugs-To: Source: hesiod@packages.debian.org\n"
+"POT-Creation-Date: 2007-12-13 12:21+0530\n"
+"PO-Revision-Date: 2009-01-06 22:26+0900\n"
+"Last-Translator: Hideki Yamane (Debian-JP) <henrich@debian.or.jp>\n"
+"Language-Team: Japanese <debian-japanese@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Hesiod domain for searches:"
+msgstr "検索対象の Hesiod ドメイン:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Please enter the Hesiod RHS (right hand-side) to do searches in."
+msgstr "検索対象の Hesiod RHS (right hand-side、右手側) を入力してください。"
+
+#. Type: string
+#. Description
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001 ../libhesiod0.templates:3001
+msgid ""
+"If the Hesiod server is 'ns.example.org' then the LHS will be '.ns', the RHS "
+"will be '.example.org' (note leading periods) and directory lookups will be "
+"performed as DNS requests to (e.g.) 'sam.passwd.ns.example.org'."
+msgstr ""
+"もし、Hesiod サーバが「ns.example.org」の場合、LHS は「.ns」、RHS は「."
+"example.org」になります。ディレクトリ参照は DNS リクエストのように動作します "
+"(例)「sam.passwd.ns.example.org」。"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Hesiod prefix for searches:"
+msgstr "検索対象の Hesiod プレフィックス:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Please enter the Hesiod LHS (left hand-side) to do searches in."
+msgstr "検索対象の Hesiod LHS (heft hand-side、左手側) を入力してください。"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid "DNS class search order:"
+msgstr "DNS クラスの検索順:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Hesiod looks up names using DNS TXT records. In addition to using the "
+"standard IN DNS class for Internet names, it also uses by default the "
+"special HS class."
+msgstr ""
+"Hesiod は、DNS TXT レコードを使って名前を検索します。その際はインターネット名"
+"に使われている通常の IN DNS クラスに加えて、デフォルトで特別な HS クラスも使"
+"用します。"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Please enter the class search order (the default value is suitable for most "
+"sites). There should be no spaces in this search order value."
+msgstr ""
+"クラスの検索順を入力してください (大抵のサイトはデフォルトの挙動が適していま"
+"す)。この検索順の値には空白を入れてはいけません。"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Sites using older Hesiod installations may need to use the 'HS,IN' search "
+"order."
+msgstr ""
+"古い Hesiod のインストールを使っているサイトでは「HS,IN」という検索順を使う必"
+"要があるでしょう。"
Added: trunk/athena/lib/hesiod/debian/po/nb.po
===================================================================
--- trunk/athena/lib/hesiod/debian/po/nb.po (rev 0)
+++ trunk/athena/lib/hesiod/debian/po/nb.po 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,94 @@
+# translation of nb.po_[orw2uc].po to Norwegian Bokmål
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Bjørn Steensrud <bjornst@skogkatt.homelinux.org>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: nb.po_[orw2uc]\n"
+"Report-Msgid-Bugs-To: Source: hesiod@packages.debian.org\n"
+"POT-Creation-Date: 2007-12-13 12:21+0530\n"
+"PO-Revision-Date: 2007-12-16 14:48+0100\n"
+"Last-Translator: Bjørn Steensrud <bjornst@skogkatt.homelinux.org>\n"
+"Language-Team: Norwegian Bokmål <i18n-nb@lister.ping.uio.no>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Hesiod domain for searches:"
+msgstr "Hesiod-domene for søking:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Please enter the Hesiod RHS (right hand-side) to do searches in."
+msgstr "Oppgi Hesiod RHS (Right Hand Side, høyreside) der det skal søkes."
+
+#. Type: string
+#. Description
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001 ../libhesiod0.templates:3001
+msgid ""
+"If the Hesiod server is 'ns.example.org' then the LHS will be '.ns', the RHS "
+"will be '.example.org' (note leading periods) and directory lookups will be "
+"performed as DNS requests to (e.g.) 'sam.passwd.ns.example.org'."
+msgstr ""
+"Hvis Hesiod-tjeneren er «ns.example.org», så er venstresiden (LHS) «.ns», "
+"høyresiden (RHS) blir «.example.org» (merk innledende punktum), og "
+"katalogoppslag blir utført som DNS-forespørsler til f.eks. «sam.passwd.ns."
+"example.org»."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Hesiod prefix for searches:"
+msgstr "Hesiod-prefiks for søking:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Please enter the Hesiod LHS (left hand-side) to do searches in."
+msgstr "Oppgi Hesiod LHS (Left Hand Side, venstreside) der det skal søkes."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid "DNS class search order:"
+msgstr "Søkerekkefølge for DNS -klasser:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Hesiod looks up names using DNS TXT records. In addition to using the "
+"standard IN DNS class for Internet names, it also uses by default the "
+"special HS class."
+msgstr ""
+"Hesiod slår opp navn ved å bruke DNS TXT-poster. I tillegg til å bruke "
+"standard DNS-klassen IN for internettnavn, så bruker den som standard også "
+"den spesielle HS-klassen."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Please enter the class search order (the default value is suitable for most "
+"sites). There should be no spaces in this search order value."
+msgstr ""
+"Oppgi søkerekkefølge for klassene (standardverdien passer de fleste steder.) "
+"Det skal ikke være mellomrom i denne søkelisteverdien."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Sites using older Hesiod installations may need to use the 'HS,IN' search "
+"order."
+msgstr ""
+"Steder som bruker eldre Hesiod-installasjoner kan trenge å bruke "
+"søkerekkefølgen «HS,IN»."
Added: trunk/athena/lib/hesiod/debian/po/nl.po
===================================================================
--- trunk/athena/lib/hesiod/debian/po/nl.po (rev 0)
+++ trunk/athena/lib/hesiod/debian/po/nl.po 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,140 @@
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: hesiod 3.0.2-15.1\n"
+"Report-Msgid-Bugs-To: Source: hesiod@packages.debian.org\n"
+"POT-Creation-Date: 2007-12-13 12:21+0530\n"
+"PO-Revision-Date: 2008-02-29 10:27+0100\n"
+"Last-Translator: Bart Cornelis <cobaco@skolelinux.no>\n"
+"Language-Team: Debian l10n Dutch <debian-l10n-dutch@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Dutch\n"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Hesiod domain for searches:"
+msgstr "Domein voor Hesiod-zoekopdrachten:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Please enter the Hesiod RHS (right hand-side) to do searches in."
+msgstr ""
+"In welke Hesiod RHS (Right Hand-Side/Rechterkant) wilt u zoekopdrachten "
+"uitvoeren?"
+
+#. Type: string
+#. Description
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001 ../libhesiod0.templates:3001
+msgid ""
+"If the Hesiod server is 'ns.example.org' then the LHS will be '.ns', the RHS "
+"will be '.example.org' (note leading periods) and directory lookups will be "
+"performed as DNS requests to (e.g.) 'sam.passwd.ns.example.org'."
+msgstr ""
+"Wanneer de Hesiod-server 'ns.example.org' is dan is de LHS '.ns' en de RHS '."
+"example.org' (Let op de leidende punten!). Zoekopdrachten worden dan "
+"uitgevoerd als DNS-zoekopdrachten naar (bv.) 'sam.passwd.ns.example.org'."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Hesiod prefix for searches:"
+msgstr "Prefix voor Hesiod-zoekopdrachten:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Please enter the Hesiod LHS (left hand-side) to do searches in."
+msgstr ""
+"In welke Hesiod LHS (Left Hand-Side/Linkerkant) wilt u zoekopdrachten "
+"uitvoeren?"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid "DNS class search order:"
+msgstr "Zoekvolgorde voor DNS-klassen:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Hesiod looks up names using DNS TXT records. In addition to using the "
+"standard IN DNS class for Internet names, it also uses by default the "
+"special HS class."
+msgstr ""
+"Hesiod zoekt namen op d.m.v DNS-TXT-records. Naast de standaard IN-DNS-"
+"klasse voor Internet namen gebruikt Hesiod ook de speciale HS-klasse."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Please enter the class search order (the default value is suitable for most "
+"sites). There should be no spaces in this search order value."
+msgstr ""
+"Wat is de zoekvolgorde voor klassen? De standaardwaarde is geschikt voor de "
+"meeste sites. Er mogen zich in de hier ingevulde waarde geen spaties "
+"bevinden."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Sites using older Hesiod installations may need to use the 'HS,IN' search "
+"order."
+msgstr ""
+"Sites die oudere Hesiod-installaties gebruiken dienen mogelijk de "
+"zoekvolgorde 'HS,IN' te gebruiken."
+
+#~ msgid ""
+#~ "Hesiod looks up keys using the standard Domain Name System. Enter the "
+#~ "right-hand side of the domain name to do searches in. This name should "
+#~ "begin with a \".\"."
+#~ msgstr ""
+#~ "Hesiod zoekt sleutels aan de hand van het standaard DNS. Om een "
+#~ "domeinnaam op te zoeken dient u het rechterdeel ervan in te voeren (dit "
+#~ "moet met een punt beginnen)."
+
+#~ msgid ""
+#~ "Hesiod lookups generally happen in a subdomain of the main domain. Enter "
+#~ "the name of the subdomain here. This name should begin with a \".\". At "
+#~ "most sites, this entry should be \".ns\"."
+#~ msgstr ""
+#~ "Hesiod-zoekopdrachten gebeuren gewoonlijk in een subdomein van het "
+#~ "basisdomein. Wat is de naam van het subdomein? Dit dient te starten met "
+#~ "een punt, en voor de meeste sites is dit '.ns'."
+
+#~ msgid ""
+#~ "Hesiod looks up names using DNS TXT records. In addition to using the "
+#~ "standard IN DNS class for Internet names, it also uses by default the "
+#~ "special HS class. You can change the class search order here, or leave "
+#~ "out IN or HS if you want to. Don't insert extra spaces in the value. "
+#~ "The default search path is \"IN,HS\" to search both classes. At some "
+#~ "sites where older hesiod installations are still in use, you may need to "
+#~ "specify \"HS,IN\" instead."
+#~ msgstr ""
+#~ "Hesiod zoekt namen op aan de hand van DNS TXT-records. Naast gebruik van "
+#~ "de standaard 'IN' DNS-klasse voor Internetnamen, gebruikt het ook "
+#~ "standaard de speciale klasse 'HS'. U kunt hier de zoekvolgorde aan uw "
+#~ "wensen aanpassen (en desgewenst daarbij IN of HS weglaten). Voeg geen "
+#~ "extra spaties toe. Het standaard zoekpad is 'IN,HS' om in beide klassen "
+#~ "te zoeken. Voor sommige sites waar nog oudere hesiod-installaties worden "
+#~ "gebruikt, moet u misschien in plaats daarvan 'HS,IN' opgeven."
Added: trunk/athena/lib/hesiod/debian/po/pt.po
===================================================================
--- trunk/athena/lib/hesiod/debian/po/pt.po (rev 0)
+++ trunk/athena/lib/hesiod/debian/po/pt.po 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,93 @@
+# Portuguese translation of hesiod's debconf messages.
+# Rui Branco <ruipb@debianpt.org>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: hesiod 3.0.2-18.2\n"
+"Report-Msgid-Bugs-To: Source: hesiod@packages.debian.org\n"
+"POT-Creation-Date: 2007-12-13 12:21+0530\n"
+"PO-Revision-Date: 2007-12-15 18:53+0000\n"
+"Last-Translator: Rui Branco <ruipb@debianpt.org>\n"
+"Language-Team: Portuguese <traduz@debianpt.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Hesiod domain for searches:"
+msgstr "Domínio Hesiod para efectuar procuras:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Please enter the Hesiod RHS (right hand-side) to do searches in."
+msgstr ""
+"Por favor introduz o RHS do Hesiod (lado direito) para efectuar pesquisas."
+
+#. Type: string
+#. Description
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001 ../libhesiod0.templates:3001
+msgid ""
+"If the Hesiod server is 'ns.example.org' then the LHS will be '.ns', the RHS "
+"will be '.example.org' (note leading periods) and directory lookups will be "
+"performed as DNS requests to (e.g.) 'sam.passwd.ns.example.org'."
+msgstr ""
+"Se o servidor Hesiod é 'ns.exemplo.org' então o LHS será 'ns', o RHS será ' "
+"exemplo.org' (note as plicas) e as pesquisas nos directórios serão "
+"efectuadas como pedidos DNS (ex.) 'sam.passwd.ns.exemplo.org'."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Hesiod prefix for searches:"
+msgstr "Prefixo Hesiod para procuras:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Please enter the Hesiod LHS (left hand-side) to do searches in."
+msgstr ""
+"Por favor introduz o LHS do Hesiod (lado esquerdo) para efectuar pesquisas."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid "DNS class search order:"
+msgstr "Ordem de procura por classes de DNS:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Hesiod looks up names using DNS TXT records. In addition to using the "
+"standard IN DNS class for Internet names, it also uses by default the "
+"special HS class."
+msgstr ""
+"O Hesiod procura nome utilizando os registos DNS TXT. Para além de usar as "
+"classes standard IN DNS para os nomes na Internet, também utiliza as classes "
+"especiais HS por omissão."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Please enter the class search order (the default value is suitable for most "
+"sites). There should be no spaces in this search order value."
+msgstr ""
+"Por favor introduza a ordem de procura de classes (o valor por omissão é "
+"adequado para a maior parte dos sites). Não deverá existir espaços entre os "
+"valores da ordem de procura."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Sites using older Hesiod installations may need to use the 'HS,IN' search "
+"order."
+msgstr ""
+"Os sites que utilizem instalações antigas de Hesiod podem precisar de usar a "
+"ordem 'HS,IN'."
Added: trunk/athena/lib/hesiod/debian/po/pt_BR.po
===================================================================
--- trunk/athena/lib/hesiod/debian/po/pt_BR.po (rev 0)
+++ trunk/athena/lib/hesiod/debian/po/pt_BR.po 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,100 @@
+# hesiod Brazilian Portuguese translation
+# Copyright (c) 2008 hesiod's COPYRIGHT HOLDER
+# This file is distributed under the same license as the hesiod package.
+# Eder L. Marques (frolic) <frolic@debian-ce.org>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: hesiod\n"
+"Report-Msgid-Bugs-To: Source: hesiod@packages.debian.org\n"
+"POT-Creation-Date: 2007-12-13 12:21+0530\n"
+"PO-Revision-Date: 2008-03-11 11:33-0300\n"
+"Last-Translator: Eder L. Marques (frolic) <frolic@debian-ce.org>\n"
+"Language-Team: l10n Portuguese <debian-l10n-portuguese@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"pt_BR utf-8\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Hesiod domain for searches:"
+msgstr "Domínio do hesiod para pesquisas:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Please enter the Hesiod RHS (right hand-side) to do searches in."
+msgstr ""
+"Por favor, informe o Hesiod RHS (\"right hand-side\") onde as pesquisas "
+"devem ser feitas."
+
+#. Type: string
+#. Description
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001 ../libhesiod0.templates:3001
+msgid ""
+"If the Hesiod server is 'ns.example.org' then the LHS will be '.ns', the RHS "
+"will be '.example.org' (note leading periods) and directory lookups will be "
+"performed as DNS requests to (e.g.) 'sam.passwd.ns.example.org'."
+msgstr ""
+"Se o servidor Hesiod é 'ns.exemplo.org', então o LHS será '.ns', o RHS será "
+"'.exemplo.org' (observe os pontos finais) e pesquisas de diretório serão "
+"realizadas como pedidos DNS para (e.g) 'sam.passwd.ns.exemplo.org'."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Hesiod prefix for searches:"
+msgstr "Prefixo do Hesiod para pesquisas:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Please enter the Hesiod LHS (left hand-side) to do searches in."
+msgstr ""
+"Por favor, informe o Hesiod LHS (\"left hand-side\") onde as pesquisas devem "
+"ser feitas."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid "DNS class search order:"
+msgstr "Ordem de pesquisa da classe DNS:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Hesiod looks up names using DNS TXT records. In addition to using the "
+"standard IN DNS class for Internet names, it also uses by default the "
+"special HS class."
+msgstr ""
+"O Hesiod consulta nomes usando registros DNS TXT. Além de utilizar a classe "
+"padrão DNS IN para nomes de internet, ele também usa por padrão a classe "
+"especial HS."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Please enter the class search order (the default value is suitable for most "
+"sites). There should be no spaces in this search order value."
+msgstr ""
+"Por favor, informe a ordem da classe de pesquisa (o valor padrão é adequado "
+"para a maioria dos sites) Não deve haver espaços no valor desta ordem de "
+"pesquisa."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Sites using older Hesiod installations may need to use the 'HS,IN' search "
+"order."
+msgstr ""
+"Sites usando instalações antigas do Hesiod podem precisar usar a ordem de "
+"pesquisa 'HS,IN'."
Added: trunk/athena/lib/hesiod/debian/po/ru.po
===================================================================
--- trunk/athena/lib/hesiod/debian/po/ru.po (rev 0)
+++ trunk/athena/lib/hesiod/debian/po/ru.po 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,104 @@
+# translation of ru.po to Russian
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans#
+# Developers do not need to manually edit POT or PO files.
+#
+# Yuri Kozlov <kozlov.y@gmail.com>, 2006, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: 3.0.2-18.2\n"
+"Report-Msgid-Bugs-To: Source: hesiod@packages.debian.org\n"
+"POT-Creation-Date: 2007-12-13 12:21+0530\n"
+"PO-Revision-Date: 2007-12-13 20:45+0300\n"
+"Last-Translator: Yuri Kozlov <kozlov.y@gmail.com>\n"
+"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Hesiod domain for searches:"
+msgstr "Домен Hesiod для поисков:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Please enter the Hesiod RHS (right hand-side) to do searches in."
+msgstr "Введите Hesiod RHS (правую часть) поиска."
+
+#. Type: string
+#. Description
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001 ../libhesiod0.templates:3001
+msgid ""
+"If the Hesiod server is 'ns.example.org' then the LHS will be '.ns', the RHS "
+"will be '.example.org' (note leading periods) and directory lookups will be "
+"performed as DNS requests to (e.g.) 'sam.passwd.ns.example.org'."
+msgstr ""
+"Если сервер Hesiod -- 'ns.example.org', то LHS будет равна '.ns', а RHS -- '."
+"example.org' (с точками в начале), и поиск в каталоге будет выполняться как "
+"запросы DNS к (например) 'sam.passwd.ns.example.org'."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Hesiod prefix for searches:"
+msgstr "Префикс Hesiod для поисков:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Please enter the Hesiod LHS (left hand-side) to do searches in."
+msgstr "Введите Hesiod LHS (левую часть) поиска."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid "DNS class search order:"
+msgstr "Порядок поиска в классах DNS:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Hesiod looks up names using DNS TXT records. In addition to using the "
+"standard IN DNS class for Internet names, it also uses by default the "
+"special HS class."
+msgstr ""
+"Hesiod ищет данные в TXT записях DNS. Кроме используемого по умолчанию "
+"специального класса HS, используется стандартный IN класс DNS для имён "
+"интернет."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Please enter the class search order (the default value is suitable for most "
+"sites). There should be no spaces in this search order value."
+msgstr ""
+"Укажите порядок просмотра классов (значение по умолчанию подходит для "
+"большинства установок). Не вставляйте дополнительные пробелы в значение "
+"порядка поиска."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Sites using older Hesiod installations may need to use the 'HS,IN' search "
+"order."
+msgstr ""
+"Для установленных ранних версий Hesiod, может потребоваться указать порядок "
+"поиска 'HS,IN'."
Added: trunk/athena/lib/hesiod/debian/po/sv.po
===================================================================
--- trunk/athena/lib/hesiod/debian/po/sv.po (rev 0)
+++ trunk/athena/lib/hesiod/debian/po/sv.po 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,106 @@
+# translation of hesiod_3.0.2-18.2_sv.po to Swedish
+#
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+#
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+# Developers do not need to manually edit POT or PO files.
+#
+# Martin gren <martin.agren@gmail.com>, 2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: hesiod_3.0.2-18.2_sv\n"
+"Report-Msgid-Bugs-To: Source: hesiod@packages.debian.org\n"
+"POT-Creation-Date: 2007-12-13 12:21+0530\n"
+"PO-Revision-Date: 2008-07-23 17:51+0200\n"
+"Last-Translator: Martin gren <martin.agren@gmail.com>\n"
+"Language-Team: Swedish <debian-l10n-swedish@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: swe\n"
+"X-Poedit-Country: swe\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Hesiod domain for searches:"
+msgstr "Hesiod-domn fr skningar:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Please enter the Hesiod RHS (right hand-side) to do searches in."
+msgstr "Ange Hesiod-RHS (hgersida, eng. right hand side) att ska i."
+
+#. Type: string
+#. Description
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001 ../libhesiod0.templates:3001
+msgid ""
+"If the Hesiod server is 'ns.example.org' then the LHS will be '.ns', the RHS "
+"will be '.example.org' (note leading periods) and directory lookups will be "
+"performed as DNS requests to (e.g.) 'sam.passwd.ns.example.org'."
+msgstr ""
+"Om Hesiod-servern r \"ns.example.org\", kommer LHS att vara \".ns\", RHS \"."
+"example.org\" (observera inledande punkter) och kataloguppslag kommer att "
+"gras som DNS-frfrgningar till (t. ex.) \"sam.passwd.ns.example.org\"."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Hesiod prefix for searches:"
+msgstr "Hesiod-prefix fr skningar:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Please enter the Hesiod LHS (left hand-side) to do searches in."
+msgstr "Ange Hesiod-LHS (vnstersida, eng. left hand side) att ska i."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid "DNS class search order:"
+msgstr "Skordning fr DNS-klasser:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Hesiod looks up names using DNS TXT records. In addition to using the "
+"standard IN DNS class for Internet names, it also uses by default the "
+"special HS class."
+msgstr ""
+"Hesiod slr upp namn med hjlp av DNS-TXT-register. Frutom DNS' "
+"standardklass IN fr internetnamn anvnder den ocks den speciella HS-"
+"klassen."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Please enter the class search order (the default value is suitable for most "
+"sites). There should be no spaces in this search order value."
+msgstr ""
+"Ange klasskningsordning (standardvrdet r lmpligt fr de flesta platser). "
+"Inga blanksteg fr frekomma i detta skordningsvrde."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Sites using older Hesiod installations may need to use the 'HS,IN' search "
+"order."
+msgstr ""
+"Platser som anvnder ldre Hesiod-installationer kan behva anvnda "
+"skordningen \"HS,IN\"."
Added: trunk/athena/lib/hesiod/debian/po/templates.pot
===================================================================
--- trunk/athena/lib/hesiod/debian/po/templates.pot (rev 0)
+++ trunk/athena/lib/hesiod/debian/po/templates.pot 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,83 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: Source: hesiod@packages.debian.org\n"
+"POT-Creation-Date: 2007-12-13 12:21+0530\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Hesiod domain for searches:"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Please enter the Hesiod RHS (right hand-side) to do searches in."
+msgstr ""
+
+#. Type: string
+#. Description
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001 ../libhesiod0.templates:3001
+msgid ""
+"If the Hesiod server is 'ns.example.org' then the LHS will be '.ns', the RHS "
+"will be '.example.org' (note leading periods) and directory lookups will be "
+"performed as DNS requests to (e.g.) 'sam.passwd.ns.example.org'."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Hesiod prefix for searches:"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Please enter the Hesiod LHS (left hand-side) to do searches in."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid "DNS class search order:"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Hesiod looks up names using DNS TXT records. In addition to using the "
+"standard IN DNS class for Internet names, it also uses by default the "
+"special HS class."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Please enter the class search order (the default value is suitable for most "
+"sites). There should be no spaces in this search order value."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Sites using older Hesiod installations may need to use the 'HS,IN' search "
+"order."
+msgstr ""
Added: trunk/athena/lib/hesiod/debian/po/vi.po
===================================================================
--- trunk/athena/lib/hesiod/debian/po/vi.po (rev 0)
+++ trunk/athena/lib/hesiod/debian/po/vi.po 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,117 @@
+# Vietnamese Translation for hesiod.
+# Copyright © 2007 Free Software Foundation, Inc.
+# Clytie Siddall <clytie@riverland.net.au>, 2005-2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: hesiod 3.0.2-18.2\n"
+"Report-Msgid-Bugs-To: Source: hesiod@packages.debian.org\n"
+"POT-Creation-Date: 2007-12-13 12:21+0530\n"
+"PO-Revision-Date: 2007-12-21 23:02+1030\n"
+"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
+"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: LocFactoryEditor 1.7b1\n"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Hesiod domain for searches:"
+msgstr "Miền Hesiod để tìm kiếm:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001
+msgid "Please enter the Hesiod RHS (right hand-side) to do searches in."
+msgstr "Hãy nhập RHS (bên phải) Hesiod trong đó cần tìm kiếm."
+
+#. Type: string
+#. Description
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:2001 ../libhesiod0.templates:3001
+msgid ""
+"If the Hesiod server is 'ns.example.org' then the LHS will be '.ns', the RHS "
+"will be '.example.org' (note leading periods) and directory lookups will be "
+"performed as DNS requests to (e.g.) 'sam.passwd.ns.example.org'."
+msgstr ""
+"Nếu máy phục vụ Hesiod là « ns.example.org » thì LHS (bên trái) là « .ns », "
+"RHS (bên phải) là « .example.org » (phải ghi dấu chấm đi trước), và các công "
+"việc tra cứu thư mục sẽ được thực hiện như yêu cầu DNS đến (v.d.) « sam."
+"passwd.ns.example.org »."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Hesiod prefix for searches:"
+msgstr "Tiền tố Hesiod để tìm kiếm:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:3001
+msgid "Please enter the Hesiod LHS (left hand-side) to do searches in."
+msgstr "Hãy nhập LHS (bên trái) Hesiod trong đó cần tìm kiếm."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid "DNS class search order:"
+msgstr "Thứ tự tìm kiếm hạng DNS:"
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Hesiod looks up names using DNS TXT records. In addition to using the "
+"standard IN DNS class for Internet names, it also uses by default the "
+"special HS class."
+msgstr ""
+"Trình Hesiod tra cứu tên dùng các mục ghi TXT kiểu DNS. Thêm vào dùng hạng "
+"DNS IN cho tên Internet, mặc định là nó cũng dùng hạng HS đặc biệt."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Please enter the class search order (the default value is suitable for most "
+"sites). There should be no spaces in this search order value."
+msgstr ""
+"Hãy nhập vào đây thứ tự tìm kiếm qua các hạng (giá trị mặc định thích hợp "
+"với phần lớn địa chỉ). Không cho phép dấu cách trong giá trị thứ tự tìm kiếm."
+
+#. Type: string
+#. Description
+#: ../libhesiod0.templates:4001
+msgid ""
+"Sites using older Hesiod installations may need to use the 'HS,IN' search "
+"order."
+msgstr ""
+"Địa chỉ dùng bản cài đặt Hesiod cũ thì có thể cần phải dùng thứ tự tìm kiếm « "
+"HS,IN »."
+
+# Hesiod looks up keys using the standard Domain Name System. Enter the
+# right-hand side of the domain name to do searches in. This name should
+# begin with a \".\".
+#~ msgid ""
+#~ "Hesiod looks up keys using the standard Domain Name System. Please enter "
+#~ "the rightmost part of the domain name to do searches in. This name should "
+#~ "begin with a '.' character."
+#~ msgstr ""
+#~ "Trình Hesiod tra cứu khóa dùng Hệ thống Tên Miền (DNS) chuẩn. Hãy nhập "
+#~ "phần tận bên phải của tên miền qua đó cần tìm kiếm. Tên này nên bắt đầu "
+#~ "với một dấu chấm « . », v.d. « .vnoss.org »."
+
+# Hesiod lookups generally happen in a subdomain of the main domain. Enter
+# the name of the subdomain here. This name should begin with a \".\". At
+# most sites, this entry should be \".ns\".
+#~ msgid ""
+#~ "Hesiod lookups generally happen in a subdomain of the main domain. Please "
+#~ "enter the name of the subdomain. This name should begin with a '.' "
+#~ "character. This entry is '.ns' at many sites."
+#~ msgstr ""
+#~ "Việc tra cứu Hesiod thường xây ra trong một miền con của miền chính. Hãy "
+#~ "nhập vào đây tên của miền con đó. Tên nên bắt đầu với một dấu chấm « . ». "
+#~ "Tại phần lớn địa chỉ Internet, mục nhập này là « .ns »."
Added: trunk/athena/lib/hesiod/debian/rules
===================================================================
--- trunk/athena/lib/hesiod/debian/rules (rev 0)
+++ trunk/athena/lib/hesiod/debian/rules 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,17 @@
+#!/usr/bin/make -f
+
+DPKG_EXPORT_BUILDFLAGS = 1
+include /usr/share/dpkg/buildflags.mk
+
+%:
+ dh $@ --with autoreconf
+
+override_dh_auto_configure:
+ dh_auto_configure -- \
+ --sysconfdir=/etc
+
+override_dh_installdocs:
+ dh_installdocs -plibhesiod0
+
+override_dh_installchangelogs:
+ dh_installchangelogs -plibhesiod0
Property changes on: trunk/athena/lib/hesiod/debian/rules
___________________________________________________________________
Added: svn:executable
+ *
Added: trunk/athena/lib/hesiod/debian/source/format
===================================================================
--- trunk/athena/lib/hesiod/debian/source/format (rev 0)
+++ trunk/athena/lib/hesiod/debian/source/format 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1 @@
+3.0 (quilt)
Added: trunk/athena/lib/hesiod/m4/.gitignore
===================================================================
--- trunk/athena/lib/hesiod/m4/.gitignore (rev 0)
+++ trunk/athena/lib/hesiod/m4/.gitignore 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,5 @@
+libtool.m4
+ltoptions.m4
+ltsugar.m4
+ltversion.m4
+lt~obsolete.m4
Added: trunk/athena/lib/hesiod/man/Makefile.am
===================================================================
--- trunk/athena/lib/hesiod/man/Makefile.am (rev 0)
+++ trunk/athena/lib/hesiod/man/Makefile.am 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,20 @@
+dist_man1_MANS = hesinfo.1
+
+dist_man3_MANS = \
+ hesiod.3 \
+ hesiod_end.3 \
+ hesiod_free_list.3 \
+ hesiod_free_passwd.3 \
+ hesiod_free_postoffice.3 \
+ hesiod_free_servent.3 \
+ hesiod_free_string.3 \
+ hesiod_getmailhost.3 \
+ hesiod_getpwnam.3 \
+ hesiod_getpwuid.3 \
+ hesiod_getservbyname.3 \
+ hesiod_init.3 \
+ hesiod_parse_result.3 \
+ hesiod_resolve.3 \
+ hesiod_to_bind.3
+
+dist_man5_MANS = hesiod.conf.5
Added: trunk/athena/lib/hesiod/man/hesinfo.1
===================================================================
--- trunk/athena/lib/hesiod/man/hesinfo.1 (rev 0)
+++ trunk/athena/lib/hesiod/man/hesinfo.1 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,235 @@
+.\" $Id: hesinfo.1,v 1.1 1998-09-03 01:12:49 ghudson Exp $
+.\"
+.\" Copyright 1987, 1996 by the Massachusetts Institute of Technology.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\"
+.\" * Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\"
+.\" * Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in
+.\" the documentation and/or other materials provided with the
+.\" distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+.\" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+.\" COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+.\" INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+.\" OF THE POSSIBILITY OF SUCH DAMAGE.
+.TH HESINFO 1 "27 October 1996"
+.SH NAME
+hesinfo \- find out what is stored in the Hesiod database
+.SH SYNOPSIS
+.nf
+hesinfo \fI[-bl]\fR \fIHesiodName\fR \fIHesiodNameType\fR
+.SH DESCRIPTION
+.I hesinfo
+takes two arguments, a name to be resolved and a string, known
+as a HesiodNameType. It then prints the information returned by
+the Hesiod nameserver.
+.PP
+The value returned by
+.B hesinfo
+is of the type
+.I HesiodNameType.
+.PP
+.I hesinfo
+understands the following options:
+.TP
+.B -l
+Selects long format.
+.TP
+.B -b
+Prints the fully-qualified string passed to the nameserver.
+
+.PP
+.SS VALID Hesiod_Names
+The following types of identifiers may be used in the
+.I HesiodName
+argument to
+.B hesinfo.
+These values will be resolved by accessing the
+.B hesiod
+database.
+
+.TP
+.B \<username>
+the 8-character-or-less string used to identify users or classes
+(e.g. joeuser, root, 1.00, etc).
+Used with the
+.I Hesiod_Name_Types
+.BR passwd,
+.BR pobox,
+and
+.BR filsys.
+
+
+.TP
+.B \<uid>
+the id number assigned to a user.
+
+.TP
+.B \<groupid>
+the id number assigned to a group.
+
+.TP
+.B \<groupname>
+a name identifying a unique group.
+
+.TP
+.B \<file-system-name>
+the name of an athena file system.
+
+.TP
+.B \<rvd server>:<pack>
+the name of an rvd's server and pack seperated by a colon.
+
+.TP
+.B \<nfs server>:<partition>
+the name of an nfs server and its partition seperated by a colon.
+
+.TP
+.B \<workstation-name>
+the machine name of an Athena workstation (e.g. E40-343-3).
+
+.TP
+.B \<service-name>
+name of an Athena service (e.g. Zephyr).
+
+.TP
+.B \<service-type>
+name of Unix service (valid entries are defined in /etc/services).
+
+.TP
+.B \<printer-name>
+name of a printer.
+
+.TP
+.B \<printer-cluster-name>
+name of an Athena print cluster.
+
+.TP
+.B \<foo>
+some
+.B hesinfo
+calls (e.g.
+.B prclusterlist
+) do not require a specific
+.I HesiodName
+argument. However, you must include a dummy string (e.g. 'foo') for
+.B hesinfo
+ to work properly.
+
+
+
+
+.PP
+.SS VALID Hesiod_Name_Types
+The following symbols are valid substitutions for the
+.I HesiodNameType
+argument to
+.B hesinfo.
+
+.TP
+.B \ passwd
+returns string suitable for inclusion in
+.I /etc/passwd,
+searching with
+.B <username>.
+
+.TP
+.B \ pobox
+returns information on the pobox assigned to the user specified by
+.I HesiodName,
+searching with
+.B <username>.
+
+
+.TP
+.B \ uid
+returns string suitable for inclusion in
+.I /etc/passwd,
+searching with
+.B <uid>.
+
+.TP
+.B \ gid
+returns string suitable for inclusion in
+.I /etc/group,
+searching with
+.B <groupid>.
+
+.TP
+.B \ group
+returns string suitable for inclusion in
+.I /etc/group,
+searching with
+.B <groupname>.
+
+.TP
+.B \ grplist
+returns subgroups included in superset
+defined by
+.B <groupname>.
+
+.TP
+.B \ filsys
+returns file system type, export point, server, mount mode, and import point
+for the following valid
+.I HesiodNames
+(see above)
+.B - <file system name>, <username>, <rvd server>:<pack>,
+.B and <nfs server>:<partition>
+
+.TP
+.B \ cluster
+returns information about the local cluster the workstation, specified by
+.B <workstation name>.
+Included is information about the local file and print servers. This
+information is accesses by
+.B clusterinfo
+at boot time.
+
+.TP
+.B \ sloc
+returns network name of service host for
+.B <service-name>.
+
+.TP
+.B \ service
+returns Internet protocol type and protocol service port for
+.B <service-type>.
+
+.TP
+.B \ pcap
+returns a valid entry for /etc/printcap for
+.B <printer-name>.
+
+.TP
+.B \ prcluserlist
+returns a list of print clusters.
+
+.TP
+.B \ prcluster
+returns a list of printers in a cluster specified by
+.B <printer-cluster-name>.
+
+.SH FILES
+/etc/athena/hesiod.conf
+.SH "SEE ALSO"
+`Hesiod - Project Athena Technical Plan -- Name Service', named(8), hesiod(3)
+.SH AUTHOR
+Steve Dyer, IBM/Project Athena
+.br
+Copyright 1987, 1988, 1996 by the Massachusetts Institute of Technology.
+.br
Added: trunk/athena/lib/hesiod/man/hesiod.3
===================================================================
--- trunk/athena/lib/hesiod/man/hesiod.3 (rev 0)
+++ trunk/athena/lib/hesiod/man/hesiod.3 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,160 @@
+.\" $Id: hesiod.3,v 1.12 2000-01-05 16:28:51 ghudson Exp $
+.\"
+.\" Copyright 1988, 1996, 2000 by the Massachusetts Institute of Technology.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\"
+.\" * Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\"
+.\" * Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in
+.\" the documentation and/or other materials provided with the
+.\" distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+.\" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+.\" COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+.\" INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+.\" OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.TH HESIOD 3 "30 November 1996"
+.SH NAME
+hesiod, hesiod_init, hesiod_resolve, hesiod_free_list, hesiod_to_bind, hesiod_free_string, hesiod_end \- Hesiod name server interface library
+.SH SYNOPSIS
+.nf
+.B #include <hesiod.h>
+.PP
+.B int hesiod_init(void **\fIcontext\fP)
+.B char **hesiod_resolve(void *\fIcontext\fP, const char *\fIname\fP,
+.B const char *\fItype\fP)
+.B void hesiod_free_list(void *\fIcontext\fP, char **\fIlist\fP);
+.B char *hesiod_to_bind(void *\fIcontext\fP, const char *\fIname\fP,
+.B const char *\fItype\fP)
+.B void hesiod_free_string(void *\fIcontext\fP, char *\fIstr\fP);
+.B char **hesiod_parse_result(void *\fIcontext\fP,
+.B unsigned const char *\fIresult\fP, int \fIrlen\fP)
+.B void hesiod_end(void *\fIcontext\fP)
+.PP
+.B cc file.c \-lhesiod
+.fi
+.SH DESCRIPTION
+This family of functions allows you to perform lookups of Hesiod
+information, which is stored as text records in the Domain Name
+Service. To perform lookups, you must first initialize a
+.IR context ,
+an opaque object which stores information used internally by the
+library between calls.
+.I hesiod_init
+initializes a context, storing a pointer to the context in the
+location pointed to by the
+.I context
+argument.
+.I hesiod_end
+frees the resources used by a context.
+.PP
+.I hesiod_resolve
+is the primary interface to the library. If successful, it returns a
+list of one or more strings giving the records matching
+.I name
+and
+.IR type .
+The last element of the list is followed by a NULL pointer. It is the
+caller's responsibility to call
+.I hesiod_free_list
+to free the resources used by the returned list.
+.PP
+.I hesiod_to_bind
+converts
+.I name
+and
+.I type
+into the DNS name used by
+.IR hesiod_resolve .
+It is the caller's responsibility to free the returned string using
+.IR hesiod_free_string .
+.PP
+.I hesiod_parse_result
+parses the result of a name server query into text records. It is the
+caller's responsibility to call
+.I hesiod_free_list
+to free the resources used by the returned list.
+.SH RETURN VALUES
+If successful,
+.I hesiod_init
+returns 0; otherwise it returns \-1 and sets
+.I errno
+to indicate the error. On failure,
+.I hesiod_resolve
+and
+.I hesiod_to_bind
+return NULL and set the global variable
+.I errno
+to indicate the error.
+.SH ENVIRONMENT
+If the environment variable
+.B HES_DOMAIN
+is set, it will override the domain in the Hesiod configuration file.
+If the environment variable
+.B HESIOD_CONFIG
+is set, it specifies the location of the Hesiod configuration file.
+.SH SEE ALSO
+`Hesiod - Project Athena Technical Plan -- Name Service', named(8),
+hesiod.conf(5)
+.SH ERRORS
+Hesiod calls may fail because of:
+.IP ENOMEM
+Insufficient memory was available to carry out the requested
+operation.
+.IP ENOEXEC
+.I hesiod_init
+failed because the Hesiod configuration file was invalid.
+.IP ECONNREFUSED
+.I hesiod_resolve
+failed because no name server could be contacted to answer the query.
+.IP EMSGSIZE
+.I hesiod_resolve
+or
+.I hesiod_to_bind
+failed because the query or response was too big to fit into the
+packet buffers.
+.IP ENOENT
+.I hesiod_resolve
+failed because the name server had no text records matching
+.I name
+and
+.IR type ,
+or
+.I hesiod_to_bind
+failed because the
+.I name
+argument had a domain extension which could not be resolved with type
+``rhs-extension'' in the local Hesiod domain.
+.IP EINVAL
+.I hesiod_to_bind
+failed to convert the resulting domain name from UTF-8 to an
+internationalized domain name.
+.SH AUTHOR
+Steve Dyer, IBM/Project Athena
+.br
+Greg Hudson, MIT Team Athena
+.br
+Copyright 1987, 1988, 1995, 1996, 2000 by the Massachusetts Institute
+of Technology.
+.SH BUGS
+The strings corresponding to the
+.I errno
+values set by the Hesiod functions are not particularly indicative of
+what went wrong, especially for
+.I ENOEXEC
+and
+.IR ENOENT .
Added: trunk/athena/lib/hesiod/man/hesiod.conf.5
===================================================================
--- trunk/athena/lib/hesiod/man/hesiod.conf.5 (rev 0)
+++ trunk/athena/lib/hesiod/man/hesiod.conf.5 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,63 @@
+.\" $Id: hesiod.conf.5,v 1.3 2006-03-27 20:53:15 ghudson Exp $
+.\"
+.\" Copyright 1996 by the Massachusetts Institute of Technology.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\"
+.\" * Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\"
+.\" * Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in
+.\" the documentation and/or other materials provided with the
+.\" distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+.\" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+.\" COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+.\" INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+.\" OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.TH HESIOD.CONF 5 "30 November 1996"
+.SH NAME
+hesiod.conf \- Configuration file for the Hesiod library
+.SH DESCRIPTION
+The file hesiod.conf determines the behavior of the Hesiod library.
+Blank lines and lines beginning with a `#' character are ignored. All
+other lines should be of the form
+.I variable
+=
+.IR value ,
+where the value should be a single word. Possible variables and
+values are:
+.IP lhs
+Specifies the domain prefix used for Hesiod queries. In almost all
+cases, you should specify ``lhs=.ns''. The default value if you do
+not specify an lhs value is no domain prefix, which is not compatible
+with most Hesiod domains.
+.IP rhs
+Specifies the default Hesiod domain; this value may be overridden by
+the
+.B HES_DOMAIN
+environment variable. You must specify an rhs line for the Hesiod
+library to work properly.
+.IP classes
+Specifies which DNS classes Hesiod should do lookups in. Possible
+values are IN (the preferred class) and HS (the deprecated class,
+still used by some sites). You may specify both classes separated by
+a comma to try one class first and then the other if no entry is
+available in the first class. The default value of the classes
+variable is ``IN,HS''.
+.SH SEE ALSO
+hesiod(3)
+.SH BUGS
+There default value for ``lhs'' should probably be more reasonable.
Added: trunk/athena/lib/hesiod/man/hesiod_end.3
===================================================================
--- trunk/athena/lib/hesiod/man/hesiod_end.3 (rev 0)
+++ trunk/athena/lib/hesiod/man/hesiod_end.3 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,2 @@
+.so man3/hesiod.3
+.\" $Id: hesiod_end.3,v 1.2 1997-04-01 19:37:46 ghudson Exp $
Added: trunk/athena/lib/hesiod/man/hesiod_free_list.3
===================================================================
--- trunk/athena/lib/hesiod/man/hesiod_free_list.3 (rev 0)
+++ trunk/athena/lib/hesiod/man/hesiod_free_list.3 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,2 @@
+.so man3/hesiod.3
+.\" $Id: hesiod_free_list.3,v 1.2 1997-04-01 19:37:47 ghudson Exp $
Added: trunk/athena/lib/hesiod/man/hesiod_free_passwd.3
===================================================================
--- trunk/athena/lib/hesiod/man/hesiod_free_passwd.3 (rev 0)
+++ trunk/athena/lib/hesiod/man/hesiod_free_passwd.3 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,2 @@
+.so man3/hesiod_getpwnam.3
+.\" $Id: hesiod_free_passwd.3,v 1.2 1997-04-01 19:37:47 ghudson Exp $
Added: trunk/athena/lib/hesiod/man/hesiod_free_postoffice.3
===================================================================
--- trunk/athena/lib/hesiod/man/hesiod_free_postoffice.3 (rev 0)
+++ trunk/athena/lib/hesiod/man/hesiod_free_postoffice.3 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,2 @@
+.so man3/hesiod_getmailhost.3
+.\" $Id: hesiod_free_postoffice.3,v 1.2 1997-04-01 19:37:47 ghudson Exp $
Added: trunk/athena/lib/hesiod/man/hesiod_free_servent.3
===================================================================
--- trunk/athena/lib/hesiod/man/hesiod_free_servent.3 (rev 0)
+++ trunk/athena/lib/hesiod/man/hesiod_free_servent.3 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,2 @@
+.so man3/hesiod_getservbyname.3
+.\" $Id: hesiod_free_servent.3,v 1.2 1997-04-01 19:37:48 ghudson Exp $
Added: trunk/athena/lib/hesiod/man/hesiod_free_string.3
===================================================================
--- trunk/athena/lib/hesiod/man/hesiod_free_string.3 (rev 0)
+++ trunk/athena/lib/hesiod/man/hesiod_free_string.3 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,2 @@
+.so man3/hesiod.3
+.\" $Id: hesiod_free_string.3,v 1.1 2000-01-05 16:28:51 ghudson Exp $
Added: trunk/athena/lib/hesiod/man/hesiod_getmailhost.3
===================================================================
--- trunk/athena/lib/hesiod/man/hesiod_getmailhost.3 (rev 0)
+++ trunk/athena/lib/hesiod/man/hesiod_getmailhost.3 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,79 @@
+.\" $Id: hesiod_getmailhost.3,v 1.1 1996-12-08 21:38:11 ghudson Exp $
+.\"
+.\" Copyright 1996 by the Massachusetts Institute of Technology.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\"
+.\" * Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\"
+.\" * Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in
+.\" the documentation and/or other materials provided with the
+.\" distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+.\" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+.\" COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+.\" INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+.\" OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.TH HESIOD 3 "30 November 1996"
+.SH NAME
+hesiod_getmailhost, hesiod_free_postoffice \- Hesiod functions for retrieving user to postoffice mappings
+.SH SYNOPSIS
+.nf
+.B #include <hesiod.h>
+.PP
+.B struct hesiod_postoffice *hesiod_getmailhost(void *\fIcontext\fP,
+.B const char *\fIuser\fP)
+.B void hesiod_free_postoffice(void *\fIcontext\fP,
+.B struct hesiod_postoffice *\fIpo\fP)
+.PP
+.B cc file.c -lhesiod
+.fi
+.SH DESCRIPTION
+This family of functions allows you to retrieve user to postoffice
+mappings using Hesiod. To perform lookups, you need an initialized
+Hesiod context; see hesiod(3) for details. Information is returned in
+a
+.I hesiod_postoffice
+structure, which has the following fields:
+.IP hesiod_po_type
+The type of postoffice box, typically ``POP''.
+.IP hesiod_po_host
+The hostname where the postoffice box resides.
+.IP hesiod_po_name
+The account name on the given postoffice server.
+.PP
+It is the caller's responsibility to call
+.I hesiod_free_postoffice
+with the returned postoffice entry to free the resources used by the
+postoffice entry.
+.PP
+Hesiod queries for postoffice information are made using the ``pobox''
+Hesiod type, using the username as the Hesiod name. The corresponding
+entries should be space-separated lists of strings giving the type of
+postoffice box, the hostname, and the account name.
+.SH RETURN VALUES
+On failure,
+.I hesiod_getservbyname
+returns NULL and sets the global variable
+.I errno
+to indicate the error.
+.SH ERRORS
+.I hesiod_getmailhost
+may fail for any of the reasons the routine
+.I hesiod_resolve
+may fail.
+.SH SEE ALSO
+hesiod(3)
Added: trunk/athena/lib/hesiod/man/hesiod_getpwnam.3
===================================================================
--- trunk/athena/lib/hesiod/man/hesiod_getpwnam.3 (rev 0)
+++ trunk/athena/lib/hesiod/man/hesiod_getpwnam.3 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,76 @@
+.\" $Id: hesiod_getpwnam.3,v 1.1 1996-12-08 21:38:24 ghudson Exp $
+.\"
+.\" Copyright 1996 by the Massachusetts Institute of Technology.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\"
+.\" * Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\"
+.\" * Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in
+.\" the documentation and/or other materials provided with the
+.\" distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+.\" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+.\" COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+.\" INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+.\" OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.TH HESIOD 3 "30 November 1996"
+.SH NAME
+hesiod_getpwnam, hesiod_getpwuid, hesiod_free_passwd \- Hesiod functions for retrieving passwd information
+.SH SYNOPSIS
+.nf
+.B #include <hesiod.h>
+.PP
+.B struct passwd *hesiod_getpwnam(void *\fIcontext\fP, const char *\fIname\fP)
+.B struct passwd *hesiod_getpwuid(void *\fIcontext\fP, uid_t \fIuid\fP)
+.B void hesiod_free_passwd(void *\fIcontext\fP, struct passwd *\fIpw\fP)
+.PP
+.B cc file.c \-lhesiod
+.fi
+.SH DESCRIPTION
+This family of functions allows you to retrieve passwd database
+information using Hesiod. To perform lookups, you need an initialized
+Hesiod context; see hesiod(3) for details. You may look up passwd
+information by name or by uid; information is returned in the same
+format as by
+.I getpwnam
+or
+.IR getpwuid .
+It is the caller's responsibility to call
+.I hesiod_free_passwd
+with the returned passwd entry to free the resources used by the
+passwd entry.
+.PP
+Hesiod queries for passwd information are made using the ``passwd'' or
+``uid'' Hesiod type, using either the username or the decimal
+representation of the uid as the Hesiod name. The corresponding
+records should be a colon-separated list of fields giving the
+username, encrypted password, uid, gid, GECOS information, home
+directory, and shell of the user.
+.SH RETURN VALUES
+On failure,
+.I hesiod_getpwnam
+and
+.I hesiod_getpwuid
+return NULL and set the global variable
+.I errno
+to indicate the error.
+.SH ERRORS
+These calls may fail for any of the reasons the routine
+.I hesiod_resolve
+may fail.
+.SH SEE ALSO
+hesiod(3)
Added: trunk/athena/lib/hesiod/man/hesiod_getpwuid.3
===================================================================
--- trunk/athena/lib/hesiod/man/hesiod_getpwuid.3 (rev 0)
+++ trunk/athena/lib/hesiod/man/hesiod_getpwuid.3 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,2 @@
+.so man3/hesiod_getpwnam.3
+.\" $Id: hesiod_getpwuid.3,v 1.2 1997-04-01 19:37:48 ghudson Exp $
Added: trunk/athena/lib/hesiod/man/hesiod_getservbyname.3
===================================================================
--- trunk/athena/lib/hesiod/man/hesiod_getservbyname.3 (rev 0)
+++ trunk/athena/lib/hesiod/man/hesiod_getservbyname.3 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,75 @@
+.\" $Id: hesiod_getservbyname.3,v 1.1 1996-12-08 21:38:45 ghudson Exp $
+.\"
+.\" Copyright 1996 by the Massachusetts Institute of Technology.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\"
+.\" * Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\"
+.\" * Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in
+.\" the documentation and/or other materials provided with the
+.\" distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+.\" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+.\" COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+.\" INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+.\" OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.TH HESIOD 3 "30 November 1996"
+.SH NAME
+hesiod_getservbyname, hesiod_free_servent \- Hesiod functions for retrieving service information
+.SH SYNOPSIS
+.nf
+.B #include <hesiod.h>
+.PP
+.B struct servent *hesiod_getservbyname(void *\fIcontext\fP,
+.B const char *\fIname\fP, const char *\fIproto\fP)
+.B void hesiod_free_servent(void *\fIcontext\fP, struct servent *\fIserv\fP)
+.PP
+.B cc file.c -lhesiod
+.fi
+.SH DESCRIPTION
+This family of functions allows you to retrieve service to port
+mappings using Hesiod. To perform lookups, you need an initialized
+Hesiod context; see hesiod(3) for details. Information is returned in
+the same format as by
+.IR getservbyname .
+It is the caller's responsibility to call
+.I hesiod_free_servent
+with the returned service entry to free the resources used by the
+service entry.
+.PP
+Hesiod queries for service information are made using the ``service''
+Hesiod type, using the service name as the Hesiod name. The
+corresponding records should be space-separated lists of strings
+giving the service name, protocol, port number (in decimal), and zero
+or more aliases for the service. There may be multiple records per
+service name;
+.I hesiod_getservbyname
+will pick the first one whose protocol matches
+.IR proto .
+.SH RETURN VALUES
+On failure,
+.I hesiod_getservbyname
+returns NULL and sets the global variable
+.I errno
+to indicate the error.
+.SH ERRORS
+.I hesiod_getservbyname
+may fail for any of the reasons the routine
+.I hesiod_resolve
+may fail.
+.SH SEE ALSO
+hesiod(3)
Added: trunk/athena/lib/hesiod/man/hesiod_init.3
===================================================================
--- trunk/athena/lib/hesiod/man/hesiod_init.3 (rev 0)
+++ trunk/athena/lib/hesiod/man/hesiod_init.3 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,2 @@
+.so man3/hesiod.3
+.\" $Id: hesiod_init.3,v 1.2 1997-04-01 19:37:49 ghudson Exp $
Added: trunk/athena/lib/hesiod/man/hesiod_parse_result.3
===================================================================
--- trunk/athena/lib/hesiod/man/hesiod_parse_result.3 (rev 0)
+++ trunk/athena/lib/hesiod/man/hesiod_parse_result.3 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,2 @@
+.so man3/hesiod.3
+.\" $Id: hesiod_parse_result.3,v 1.1 1998-09-02 17:30:06 ghudson Exp $
Added: trunk/athena/lib/hesiod/man/hesiod_resolve.3
===================================================================
--- trunk/athena/lib/hesiod/man/hesiod_resolve.3 (rev 0)
+++ trunk/athena/lib/hesiod/man/hesiod_resolve.3 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,2 @@
+.so man3/hesiod.3
+.\" $Id: hesiod_resolve.3,v 1.2 1997-04-01 19:37:49 ghudson Exp $
Added: trunk/athena/lib/hesiod/man/hesiod_to_bind.3
===================================================================
--- trunk/athena/lib/hesiod/man/hesiod_to_bind.3 (rev 0)
+++ trunk/athena/lib/hesiod/man/hesiod_to_bind.3 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,2 @@
+.so man3/hesiod.3
+.\" $Id: hesiod_to_bind.3,v 1.2 1997-04-01 19:37:49 ghudson Exp $
Added: trunk/athena/lib/hesiod/src/.gitignore
===================================================================
--- trunk/athena/lib/hesiod/src/.gitignore (rev 0)
+++ trunk/athena/lib/hesiod/src/.gitignore 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1 @@
+hesiod.pc
Added: trunk/athena/lib/hesiod/src/Makefile.am
===================================================================
--- trunk/athena/lib/hesiod/src/Makefile.am (rev 0)
+++ trunk/athena/lib/hesiod/src/Makefile.am 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,4 @@
+SUBDIRS = lib hesinfo
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = hesiod.pc
Added: trunk/athena/lib/hesiod/src/hesinfo/.gitignore
===================================================================
--- trunk/athena/lib/hesiod/src/hesinfo/.gitignore (rev 0)
+++ trunk/athena/lib/hesiod/src/hesinfo/.gitignore 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1 @@
+hesinfo
Added: trunk/athena/lib/hesiod/src/hesinfo/Makefile.am
===================================================================
--- trunk/athena/lib/hesiod/src/hesinfo/Makefile.am (rev 0)
+++ trunk/athena/lib/hesiod/src/hesinfo/Makefile.am 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,5 @@
+AM_CFLAGS = -I${srcdir}/../lib/
+
+bin_PROGRAMS = hesinfo
+hesinfo_SOURCES = hesinfo.c
+hesinfo_LDADD = ../lib/libhesiod.la
Added: trunk/athena/lib/hesiod/src/hesinfo/hesinfo.c
===================================================================
--- trunk/athena/lib/hesiod/src/hesinfo/hesinfo.c (rev 0)
+++ trunk/athena/lib/hesiod/src/hesinfo/hesinfo.c 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,127 @@
+/* Copyright 1988, 1996 by the Massachusetts Institute of Technology.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/* This file is a simple driver for the Hesiod library. */
+
+static const char rcsid[] = "$Id: hesinfo.c,v 1.5 2000-01-05 22:00:46 ghudson Exp $";
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <errno.h>
+#include "hesiod.h"
+
+extern int optind;
+
+int main(int argc, char **argv)
+{
+ char **list, **p, *bindname, *name, *type;
+ int lflag = 0, errflg = 0, bflag = 0, c;
+ void *context;
+
+ while ((c = getopt(argc, argv, "lb")) != EOF)
+ {
+ switch (c)
+ {
+ case 'l':
+ lflag = 1;
+ break;
+ case 'b':
+ bflag = 1;
+ break;
+ default:
+ errflg++;
+ break;
+ }
+ }
+ if (argc - optind != 2 || errflg)
+ {
+ fprintf(stderr,"Usage: %s [-bl] name type\n",argv[0]);
+ fprintf(stderr,"\t-l selects long format\n");
+ fprintf(stderr,"\t-b also does hes_to_bind conversion\n");
+ return 2;
+ }
+
+ name = argv[optind];
+ type = argv[optind + 1];
+
+ if (hesiod_init(&context) < 0)
+ {
+ if (errno == ENOEXEC)
+ fprintf(stderr, "hesiod_init: Invalid Hesiod configuration file.\n");
+ else
+ perror("hesiod_init");
+ }
+
+ /* Display bind name if requested. */
+ if (bflag)
+ {
+ if (lflag)
+ printf("hes_to_bind(%s, %s) expands to\n", name, type);
+ bindname = hesiod_to_bind(context, name, type);
+ if (!bindname)
+ {
+ if (lflag)
+ printf("nothing\n");
+ if (errno == ENOENT)
+ fprintf(stderr, "hesiod_to_bind: Unknown rhs-extension.\n");
+ else
+ perror("hesiod_to_bind");
+ exit(1);
+ }
+ printf("%s\n", bindname);
+ hesiod_free_string(context, bindname);
+ if (lflag)
+ printf("which ");
+ }
+
+ if (lflag)
+ printf("resolves to\n");
+
+ /* Do the hesiod resolve and check for errors. */
+ list = hesiod_resolve(context, name, type);
+ if (!list)
+ {
+ if (lflag)
+ printf("nothing\n");
+ if (errno == ENOENT)
+ fprintf(stderr, "hesiod_resolve: Hesiod name not found.\n");
+ else
+ perror("hesiod_resolve");
+ return 1;
+ }
+
+ /* Display the results. */
+ for (p = list; *p; p++)
+ printf("%s\n", *p);
+
+ hesiod_free_list(context, list);
+ hesiod_end(context);
+ return 0;
+}
Added: trunk/athena/lib/hesiod/src/hesiod.pc.in
===================================================================
--- trunk/athena/lib/hesiod/src/hesiod.pc.in (rev 0)
+++ trunk/athena/lib/hesiod/src/hesiod.pc.in 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: @PACKAGE@
+Description: Project Athena's DNS-based directory service
+Version: @PACKAGE_VERSION@
+Requires:
+Libs: -L${libdir} -l@PACKAGE_NAME@
+Libs.private: @SUPPORTING_LIBS@
+Cflags: -I${includedir}
Added: trunk/athena/lib/hesiod/src/lib/.gitignore
===================================================================
--- trunk/athena/lib/hesiod/src/lib/.gitignore (rev 0)
+++ trunk/athena/lib/hesiod/src/lib/.gitignore 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1 @@
+hestest
Added: trunk/athena/lib/hesiod/src/lib/Makefile.am
===================================================================
--- trunk/athena/lib/hesiod/src/lib/Makefile.am (rev 0)
+++ trunk/athena/lib/hesiod/src/lib/Makefile.am 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,21 @@
+AM_CFLAGS = -DSYSCONFDIR=\"${sysconfdir}\"
+
+include_HEADERS = hesiod.h
+
+lib_LTLIBRARIES = libhesiod.la
+libhesiod_la_SOURCES = \
+ hesiod.c \
+ hesmailhost.c \
+ hespwnam.c \
+ hesservbyname.c \
+ hescompat.c
+libhesiod_la_LIBADD = @SUPPORTING_LIBS@
+
+noinst_PROGRAMS = hestest
+hestest_SOURCES = hestest.c
+hestest_LDADD = libhesiod.la
+
+TESTS_ENVIRONMENT = ./hestest
+TESTS = hestest.conf
+
+EXTRA_DIST = hesiod.conf.sample hestest.conf
Added: trunk/athena/lib/hesiod/src/lib/hescompat.c
===================================================================
--- trunk/athena/lib/hesiod/src/lib/hescompat.c (rev 0)
+++ trunk/athena/lib/hesiod/src/lib/hescompat.c 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,178 @@
+/* Copyright 1996 by the Massachusetts Institute of Technology.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/* This file is part of the Hesiod library. It implements
+ * backward-compatibility interfaces.
+ */
+
+static const char rcsid[] = "$Id: hescompat.c,v 1.3 1999-10-23 19:29:15 danw Exp $";
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+#include "hesiod.h"
+
+static int inited = 0;
+static void *context;
+static char *bindname, **list;
+static struct passwd *pw;
+static struct servent *serv;
+static struct hesiod_postoffice *po;
+static struct hes_postoffice compatpo;
+static int errval = HES_ER_UNINIT;
+
+static int init_context(void);
+static void translate_errors(void);
+
+int hes_init(void)
+{
+ init_context();
+ return errval;
+}
+
+char *hes_to_bind(const char *name, const char *type)
+{
+ if (init_context() < 0)
+ return NULL;
+ if (bindname)
+ free(bindname);
+ bindname = hesiod_to_bind(context, name, type);
+ if (!bindname)
+ translate_errors();
+ return bindname;
+}
+
+char **hes_resolve(const char *name, const char *type)
+{
+ if (init_context() < 0)
+ return NULL;
+
+ /* In the old Hesiod interface, the caller was responsible for freeing
+ * the returned strings but not the vector of strings itself.
+ */
+ if (list)
+ free(list);
+
+ list = hesiod_resolve(context, name, type);
+ if (!list)
+ translate_errors();
+ return list;
+}
+
+int hes_error(void)
+{
+ return errval;
+}
+
+struct passwd *hes_getpwnam(const char *name)
+{
+ if (init_context() < 0)
+ return NULL;
+ if (pw)
+ hesiod_free_passwd(context, pw);
+ pw = hesiod_getpwnam(context, name);
+ if (!pw)
+ translate_errors();
+ return pw;
+}
+
+struct passwd *hes_getpwuid(uid_t uid)
+{
+ if (init_context() < 0)
+ return NULL;
+ if (pw)
+ hesiod_free_passwd(context, pw);
+ pw = hesiod_getpwuid(context, uid);
+ if (!pw)
+ translate_errors();
+ return pw;
+}
+
+struct servent *hes_getservbyname(const char *name, const char *proto)
+{
+ if (init_context() < 0)
+ return NULL;
+ if (serv)
+ hesiod_free_servent(context, serv);
+ serv = hesiod_getservbyname(context, name, proto);
+ if (!serv)
+ translate_errors();
+ return serv;
+}
+
+struct hes_postoffice *hes_getmailhost(const char *name)
+{
+ if (init_context() < 0)
+ return NULL;
+ if (po)
+ hesiod_free_postoffice(context, po);
+ po = hesiod_getmailhost(context, name);
+ if (!po)
+ {
+ translate_errors();
+ return NULL;
+ }
+ compatpo.po_type = po->hesiod_po_type;
+ compatpo.po_host = po->hesiod_po_host;
+ compatpo.po_name = po->hesiod_po_name;
+ return &compatpo;
+}
+
+static int init_context(void)
+{
+ if (!inited)
+ {
+ inited = 1;
+ if (hesiod_init(&context) < 0)
+ {
+ errval = HES_ER_CONFIG;
+ return -1;
+ }
+ errval = HES_ER_OK;
+ }
+ return 0;
+}
+
+static void translate_errors(void)
+{
+ switch (errno)
+ {
+ case ENOENT:
+ errval = HES_ER_NOTFOUND;
+ break;
+ case ECONNREFUSED:
+ case EMSGSIZE:
+ errval = HES_ER_NET;
+ break;
+ case ENOMEM:
+ default:
+ /* Not a good match, but the best we can do. */
+ errval = HES_ER_CONFIG;
+ break;
+ }
+}
Added: trunk/athena/lib/hesiod/src/lib/hesiod.c
===================================================================
--- trunk/athena/lib/hesiod/src/lib/hesiod.c (rev 0)
+++ trunk/athena/lib/hesiod/src/lib/hesiod.c 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,527 @@
+/* Copyright (c) 1996 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+/* Copyright 1996, 2000 by the Massachusetts Institute of Technology.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/* This file is part of the hesiod library. It implements the core
+ * portion of the hesiod resolver.
+ *
+ * This file is loosely based on an interim version of hesiod.c from
+ * the BIND IRS library, which was in turn based on an earlier version
+ * of this file. Extensive changes have been made on each step of the
+ * path.
+ *
+ * This implementation is not truly thread-safe at the moment because
+ * it uses res_send() and accesses _res.
+ */
+
+static const char rcsid[] = "$Id: hesiod.c,v 1.30 2002-04-03 21:40:55 ghudson Exp $";
+
+#include "config.h"
+#include <sys/types.h>
+#include <netinet/in.h>
+#define BIND_4_COMPAT
+#define BIND_8_COMPAT
+#include <arpa/nameser.h>
+#include <errno.h>
+#include <netdb.h>
+#include <resolv.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <ctype.h>
+#ifdef HAVE_LIBIDN
+#include <idna.h>
+#include <idn-free.h>
+#endif
+#include "hesiod.h"
+
+/* A few operating systems don't define this. */
+#ifndef T_TXT
+#define T_TXT 16
+#endif
+
+/* Defaults if the configuration file is not present. */
+#define DEF_RHS ".athena.mit.edu"
+#define DEF_LHS ".ns"
+
+/* Maximum size of a Hesiod response from the DNS. */
+#define MAX_HESRESP 1024
+
+/* The contents of a Hesiod context. */
+struct hesiod_p {
+ char *lhs; /* normally ".ns" */
+ char *rhs; /* AKA the default hesiod domain */
+};
+
+char **hesiod__uidresolve(void *context, const char *uidstr);
+static int read_config_file(struct hesiod_p *ctx, const char *filename);
+static char **get_txt_records(struct hesiod_p *ctx, const char *name);
+static int cistrcmp(const char *s1, const char *s2);
+
+/* This function is called to initialize a hesiod_p. */
+int hesiod_init(void **context)
+{
+ struct hesiod_p *ctx;
+ const char *p, *configname;
+
+ ctx = malloc(sizeof(struct hesiod_p));
+ if (ctx)
+ {
+ *context = ctx;
+ configname = ((getuid() == geteuid()) && (getgid() == getegid())) ? getenv("HESIOD_CONFIG") : NULL;
+ if (!configname)
+ configname = SYSCONFDIR "/hesiod.conf";
+ if (read_config_file(ctx, configname) >= 0)
+ {
+ /* The default rhs can be overridden by an environment variable. */
+ p = ((getuid() == geteuid()) && (getgid() == getegid())) ? getenv("HES_DOMAIN") : NULL;
+ if (p)
+ {
+ if (ctx->rhs)
+ free(ctx->rhs);
+ ctx->rhs = malloc(strlen(p) + 2);
+ if (ctx->rhs)
+ {
+ *ctx->rhs = '.';
+ strcpy(ctx->rhs + 1, (*p == '.') ? p + 1 : p);
+ return 0;
+ }
+ else
+ errno = ENOMEM;
+ }
+ else
+ return 0;
+ }
+ }
+ else
+ errno = ENOMEM;
+
+ if (ctx->lhs)
+ free(ctx->lhs);
+ if (ctx->rhs)
+ free(ctx->rhs);
+ if (ctx)
+ free(ctx);
+ return -1;
+}
+
+/* This function deallocates the hesiod_p. */
+void hesiod_end(void *context)
+{
+ struct hesiod_p *ctx = (struct hesiod_p *) context;
+
+ free(ctx->rhs);
+ if (ctx->lhs)
+ free(ctx->lhs);
+ free(ctx);
+}
+
+/* This function takes a hesiod (name, type) and returns a DNS
+ * name which is to be resolved.
+ */
+char *hesiod_to_bind(void *context, const char *name, const char *type)
+{
+ struct hesiod_p *ctx = (struct hesiod_p *) context;
+ char bindname[MAXDNAME], *p, *ret, *idn_ret, **rhs_list = NULL;
+ const char *rhs;
+ int len, rc;
+
+ if (strlen(name) > sizeof(bindname) - 1)
+ {
+ errno = EMSGSIZE;
+ return NULL;
+ }
+ strcpy(bindname, name);
+
+ /* Find the right right hand side to use, possibly truncating bindname. */
+ p = strchr(bindname, '@');
+ if (p)
+ {
+ *p++ = 0;
+ if (strchr(p, '.'))
+ rhs = name + (p - bindname);
+ else
+ {
+ rhs_list = hesiod_resolve(context, p, "rhs-extension");
+ if (rhs_list)
+ rhs = *rhs_list;
+ else
+ {
+ errno = ENOENT;
+ return NULL;
+ }
+ }
+ } else
+ rhs = ctx->rhs;
+
+ /* See if we have enough room. */
+ len = strlen(bindname) + 1 + strlen(type);
+ if (ctx->lhs)
+ len += strlen(ctx->lhs) + ((ctx->lhs[0] != '.') ? 1 : 0);
+ len += strlen(rhs) + ((rhs[0] != '.') ? 1 : 0);
+ if (len > sizeof(bindname) - 1)
+ {
+ if (rhs_list)
+ hesiod_free_list(context, rhs_list);
+ errno = EMSGSIZE;
+ return NULL;
+ }
+
+ /* Put together the rest of the domain. */
+ strcat(bindname, ".");
+ strcat(bindname, type);
+ if (ctx->lhs)
+ {
+ if (ctx->lhs[0] != '.')
+ strcat(bindname, ".");
+ strcat(bindname, ctx->lhs);
+ }
+ if (rhs[0] != '.')
+ strcat(bindname, ".");
+ strcat(bindname, rhs);
+
+ /* rhs_list is no longer needed, since we're done with rhs. */
+ if (rhs_list)
+ hesiod_free_list(context, rhs_list);
+
+ /* Make a copy of the result and return it to the caller. */
+#ifdef HAVE_LIBIDN
+ rc = idna_to_ascii_lz(bindname, &idn_ret, 0);
+ if (rc != IDNA_SUCCESS)
+ {
+ errno = EINVAL;
+ return NULL;
+ }
+ ret = strdup(idn_ret);
+ idn_free(idn_ret);
+#else
+ ret = strdup(bindname);
+#endif
+ if (!ret)
+ {
+ errno = ENOMEM;
+ return NULL;
+ }
+ return ret;
+}
+
+/* This is the core function. Given a hesiod name and type, it
+ * returns an array of strings returned by the resolver.
+ */
+char **hesiod_resolve(void *context, const char *name, const char *type)
+{
+ struct hesiod_p *ctx = (struct hesiod_p *) context;
+ char *bindname, **retvec;
+
+ bindname = hesiod_to_bind(context, name, type);
+ if (!bindname)
+ return NULL;
+
+ retvec = get_txt_records(ctx, bindname);
+
+ hesiod_free_string(context, bindname);
+ return retvec;
+}
+
+void hesiod_free_list(void *context, char **list)
+{
+ char **p;
+
+ for (p = list; *p; p++)
+ free(*p);
+ free(list);
+}
+
+void hesiod_free_string(void *context, char *str)
+{
+ free(str);
+}
+
+/* This function parses the /etc/hesiod.conf file. Returns 0 on success,
+ * -1 on failure. On failure, it might leave values in ctx->lhs or
+ * ctx->rhs which need to be freed by the caller. */
+static int read_config_file(struct hesiod_p *ctx, const char *filename)
+{
+ char *key, *data, *p, **which;
+ char buf[MAXDNAME + 7];
+ FILE *fp;
+
+ /* Try to open the configuration file. */
+ fp = fopen(filename, "r");
+ if (!fp)
+ {
+ /* Use compiled in default domain names. */
+ ctx->lhs = malloc(strlen(DEF_LHS) + 1);
+ ctx->rhs = malloc(strlen(DEF_RHS) + 1);
+ if (ctx->lhs && ctx->rhs)
+ {
+ strcpy(ctx->lhs, DEF_LHS);
+ strcpy(ctx->rhs, DEF_RHS);
+ return 0;
+ }
+ else
+ {
+ errno = ENOMEM;
+ return -1;
+ }
+ }
+
+ ctx->lhs = NULL;
+ ctx->rhs = NULL;
+ while (fgets(buf, sizeof(buf), fp) != NULL)
+ {
+ p = buf;
+ if (*p == '#' || *p == '\n' || *p == '\r')
+ continue;
+ while(*p == ' ' || *p == '\t')
+ p++;
+ key = p;
+ while(*p != ' ' && *p != '\t' && *p != '=')
+ p++;
+ *p++ = 0;
+
+ while(isspace((unsigned char)*p) || *p == '=')
+ p++;
+ data = p;
+ while(!isspace((unsigned char)*p))
+ p++;
+ *p = 0;
+
+ if (cistrcmp(key, "lhs") == 0 || cistrcmp(key, "rhs") == 0)
+ {
+ which = (cistrcmp(key, "lhs") == 0) ? &ctx->lhs : &ctx->rhs;
+ *which = malloc(strlen(data) + 1);
+ if (!*which)
+ {
+ errno = ENOMEM;
+ return -1;
+ }
+ strcpy(*which, data);
+ }
+ }
+ fclose(fp);
+
+ /* Make sure that the rhs is set. */
+ if (!ctx->rhs)
+ {
+ errno = ENOEXEC;
+ return -1;
+ }
+
+ return 0;
+}
+
+/* Given a DNS class and a DNS name, do a lookup for TXT records, and
+ * return a list of them.
+ */
+static char **get_txt_records(struct hesiod_p *ctx, const char *name)
+{
+ unsigned char qbuf[PACKETSZ], *abuf;
+ char **tmp;
+ int n, i, len;
+
+ /* Make sure the resolver is initialized. */
+ if ((_res.options & RES_INIT) == 0 && res_init() == -1)
+ return NULL;
+
+ /* Construct the query. */
+ n = res_mkquery(QUERY, name, C_IN, T_TXT, NULL, 0, NULL, qbuf, PACKETSZ);
+ if (n < 0)
+ {
+ errno = EMSGSIZE;
+ return NULL;
+ }
+
+ /* Send the query. */
+ abuf = NULL;
+ len = 1024;
+ i = n;
+ do
+ {
+ abuf = realloc(abuf, len);
+ if (abuf == NULL)
+ {
+ n = -1;
+ break;
+ }
+ n = res_send(qbuf, i, abuf, len);
+ if (n < len)
+ {
+ break;
+ }
+ len = n + 1024;
+ } while(1);
+ if (n < (ssize_t) sizeof(HEADER))
+ {
+ errno = ECONNREFUSED;
+ free(abuf);
+ return NULL;
+ }
+
+ tmp = hesiod_parse_result(ctx, abuf, n);
+
+ free(abuf);
+
+ return tmp;
+}
+
+char **hesiod_parse_result(void *ctx, const unsigned char *abuf, int alen)
+{
+ HEADER *hp;
+ unsigned const char *p, *eom, *eor;
+ char *dst, **list;
+ int ancount, qdcount, i, j, skip, type, class, len, n;
+
+ /* Parse the header of the result. */
+ hp = (HEADER *) abuf;
+ ancount = ntohs(hp->ancount);
+ qdcount = ntohs(hp->qdcount);
+ p = abuf + sizeof(HEADER);
+ eom = abuf + alen;
+
+ /* Skip questions, trying to get to the answer section which follows. */
+ for (i = 0; i < qdcount; i++)
+ {
+ skip = dn_skipname(p, eom);
+ if (skip < 0 || p + skip + QFIXEDSZ > eom)
+ {
+ errno = EMSGSIZE;
+ return NULL;
+ }
+ p += skip + QFIXEDSZ;
+ }
+
+ /* Allocate space for the text record answers. */
+ list = malloc((ancount + 1) * sizeof(char *));
+ if (!list)
+ {
+ errno = ENOMEM;
+ return NULL;
+ }
+
+ /* Parse the answers. */
+ j = 0;
+ for (i = 0; i < ancount; i++)
+ {
+ /* Parse the header of this answer. */
+ skip = dn_skipname(p, eom);
+ if (skip < 0 || p + skip + 10 > eom)
+ break;
+ type = p[skip + 0] << 8 | p[skip + 1];
+ class = p[skip + 2] << 8 | p[skip + 3];
+ len = p[skip + 8] << 8 | p[skip + 9];
+ p += skip + 10;
+ if (p + len > eom)
+ {
+ errno = EMSGSIZE;
+ break;
+ }
+
+ /* Skip entries of the wrong type. */
+ if (type != T_TXT)
+ {
+ p += len;
+ continue;
+ }
+
+ /* Allocate space for this answer. */
+ list[j] = malloc(len);
+ if (!list[j])
+ {
+ errno = ENOMEM;
+ break;
+ }
+ dst = list[j++];
+
+ /* Copy answer data into the allocated area. */
+ eor = p + len;
+ while (p < eor)
+ {
+ n = (unsigned char) *p++;
+ if (p + n > eor)
+ {
+ errno = EMSGSIZE;
+ break;
+ }
+ memcpy(dst, p, n);
+ p += n;
+ dst += n;
+ }
+ if (p < eor)
+ {
+ errno = EMSGSIZE;
+ break;
+ }
+ *dst = 0;
+ }
+
+ /* If we didn't terminate the loop normally, something went wrong. */
+ if (i < ancount)
+ {
+ for (i = 0; i < j; i++)
+ free(list[i]);
+ free(list);
+ return NULL;
+ }
+
+ if (j == 0)
+ {
+ errno = ENOENT;
+ free(list);
+ return NULL;
+ }
+
+ list[j] = NULL;
+ return list;
+}
+
+static int cistrcmp(const char *s1, const char *s2)
+{
+ while (*s1 && *s2 && tolower(*s1) == tolower(*s2))
+ {
+ s1++;
+ s2++;
+ }
+ return tolower(*s1) - tolower(*s2);
+}
Added: trunk/athena/lib/hesiod/src/lib/hesiod.conf.sample
===================================================================
--- trunk/athena/lib/hesiod/src/lib/hesiod.conf.sample (rev 0)
+++ trunk/athena/lib/hesiod/src/lib/hesiod.conf.sample 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,8 @@
+# This file determines the behavior of the Hesiod library.
+
+# This line should pretty much always be the same, unless you have a
+# funny environment.
+lhs=.ns
+
+# This determines the Hesiod domain. You must specify an rhs line.
+rhs=.athena.mit.edu
Added: trunk/athena/lib/hesiod/src/lib/hesiod.h
===================================================================
--- trunk/athena/lib/hesiod/src/lib/hesiod.h (rev 0)
+++ trunk/athena/lib/hesiod/src/lib/hesiod.h 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,75 @@
+/* $Id: hesiod.h,v 1.5 2000-01-05 16:28:51 ghudson Exp $ */
+
+/*
+ * Copyright (c) 1996 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+#ifndef HESIOD__INCLUDED
+#define HESIOD__INCLUDED
+
+#include <sys/types.h>
+#include <pwd.h>
+#include <netdb.h>
+
+/* Application-visible define to signal that we have the new interfaces. */
+#define HESIOD_INTERFACES
+
+struct hesiod_postoffice {
+ char *hesiod_po_type;
+ char *hesiod_po_host;
+ char *hesiod_po_name;
+};
+
+int hesiod_init(void **context);
+void hesiod_end(void *context);
+char *hesiod_to_bind(void *context, const char *name, const char *type);
+char **hesiod_resolve(void *context, const char *name, const char *type);
+char **hesiod_parse_result(void *context, const unsigned char *abuf, int alen);
+void hesiod_free_string(void *context, char *str);
+void hesiod_free_list(void *context, char **list);
+struct passwd *hesiod_getpwnam(void *context, const char *name);
+struct passwd *hesiod_getpwuid(void *context, uid_t uid);
+void hesiod_free_passwd(void *context, struct passwd *pw);
+struct servent *hesiod_getservbyname(void *context, const char *name,
+ const char *proto);
+void hesiod_free_servent(void *context, struct servent *serv);
+struct hesiod_postoffice *hesiod_getmailhost(void *context, const char *user);
+void hesiod_free_postoffice(void *context, struct hesiod_postoffice *po);
+
+/* Compatibility stuff. */
+
+#define HES_ER_UNINIT -1 /* uninitialized */
+#define HES_ER_OK 0 /* no error */
+#define HES_ER_NOTFOUND 1 /* Hesiod name not found by server */
+#define HES_ER_CONFIG 2 /* local problem (no config file?) */
+#define HES_ER_NET 3 /* network problem */
+
+struct hes_postoffice {
+ char *po_type;
+ char *po_host;
+ char *po_name;
+};
+
+int hes_init(void);
+char *hes_to_bind(const char *name, const char *type);
+char **hes_resolve(const char *name, const char *type);
+int hes_error(void);
+struct passwd *hes_getpwnam(const char *name);
+struct passwd *hes_getpwuid(uid_t uid);
+struct servent *hes_getservbyname(const char *name, const char *proto);
+struct hes_postoffice *hes_getmailhost(const char *name);
+
+#endif
Added: trunk/athena/lib/hesiod/src/lib/hesmailhost.c
===================================================================
--- trunk/athena/lib/hesiod/src/lib/hesmailhost.c (rev 0)
+++ trunk/athena/lib/hesiod/src/lib/hesmailhost.c 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,90 @@
+/* Copyright 1988, 1996 by the Massachusetts Institute of Technology.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/* This file contains hesiod_postoffice, which retrieves post-office
+ * information for a user.
+ */
+
+static const char rcsid[] = "$Id: hesmailhost.c,v 1.9 1999-10-23 19:29:15 danw Exp $";
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include <string.h>
+#include <errno.h>
+#include <netdb.h>
+#include <pwd.h>
+#include "hesiod.h"
+
+struct hesiod_postoffice *hesiod_getmailhost(void *context, const char *user)
+{
+ char *p, **list;
+ struct hesiod_postoffice *po;
+
+ /* Get the result, sanity-check it, and copy it into linebuf. */
+ list = hesiod_resolve(context, user, "pobox");
+ if (!list)
+ return NULL;
+ p = malloc(strlen(*list) + 1);
+ if (!p)
+ {
+ hesiod_free_list(context, list);
+ errno = ENOMEM;
+ return NULL;
+ }
+ strcpy(p, *list);
+ hesiod_free_list(context, list);
+
+ /* Allocate memory for the result. */
+ po = (struct hesiod_postoffice *) malloc(sizeof(struct hesiod_postoffice));
+ if (!po)
+ {
+ free(p);
+ errno = ENOMEM;
+ return NULL;
+ }
+
+ /* Break up linebuf into fields. */
+ po->hesiod_po_type = p;
+ while (!isspace((unsigned char)*p))
+ p++;
+ *p++ = 0;
+ po->hesiod_po_host = p;
+ while (!isspace((unsigned char)*p))
+ p++;
+ *p++ = 0;
+ po->hesiod_po_name = p;
+
+ return po;
+}
+
+void hesiod_free_postoffice(void *context, struct hesiod_postoffice *po)
+{
+ free(po->hesiod_po_type);
+ free(po);
+}
Added: trunk/athena/lib/hesiod/src/lib/hespwnam.c
===================================================================
--- trunk/athena/lib/hesiod/src/lib/hespwnam.c (rev 0)
+++ trunk/athena/lib/hesiod/src/lib/hespwnam.c 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,144 @@
+/* Copyright 1988, 1996 by the Massachusetts Institute of Technology.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/* This file is part of the Hesiod library. It implements
+ * hesiod_getpwnam and hesiod_getpwuid, for retrieving passwd
+ * information about a user.
+ */
+
+static const char rcsid[] = "$Id: hespwnam.c,v 1.16 2002-04-03 21:40:55 ghudson Exp $";
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <pwd.h>
+#include <errno.h>
+#include <netdb.h>
+#include "hesiod.h"
+#include "config.h"
+
+extern char **hesiod__uidresolve(void *context, const char *uidstr);
+
+static struct passwd *getpwcommon(void *context, const char *arg, int which);
+static char *next_field(char *ptr);
+
+struct passwd *hesiod_getpwnam(void *context, const char *name)
+{
+ return getpwcommon(context, name, 0);
+}
+
+struct passwd *hesiod_getpwuid(void *context, uid_t uid)
+{
+ char uidstr[16];
+
+ sprintf(uidstr, "%u", (unsigned int)uid);
+ return getpwcommon(context, uidstr, 1);
+}
+
+void hesiod_free_passwd(void *context, struct passwd *pw)
+{
+ free(pw->pw_name);
+ free(pw);
+}
+
+static struct passwd *getpwcommon(void *context, const char *arg, int which)
+{
+ char *p, **list;
+ struct passwd *pw;
+
+ /* Get the response and copy the first entry into a buffer. */
+ list = hesiod_resolve(context, arg, which ? "uid" : "passwd");
+ if (!list)
+ return NULL;
+ p = malloc(strlen(*list) + 1);
+ if (!p)
+ {
+ hesiod_free_list(context, list);
+ errno = ENOMEM;
+ return NULL;
+ }
+ strcpy(p, *list);
+ hesiod_free_list(context, list);
+
+ /* Allocate memory for the result. */
+ pw = (struct passwd *) malloc(sizeof(struct passwd));
+ if (!pw)
+ {
+ free(p);
+ errno = ENOMEM;
+ return NULL;
+ }
+
+ /* Split up buf into fields. */
+ pw->pw_name = p;
+ p = next_field(p);
+ pw->pw_passwd = p;
+ p = next_field(p);
+ pw->pw_uid = atoi(p);
+ p = next_field(p);
+ pw->pw_gid = atoi(p);
+ p = next_field(p);
+ pw->pw_gecos = p;
+ p = next_field(p);
+ pw->pw_dir = p;
+ p = next_field(p);
+ pw->pw_shell = p;
+ while (*p && *p != '\n')
+ p++;
+ *p = 0;
+
+#ifdef HAVE_PW_QUOTA
+ pw->pw_quota = 0;
+#endif
+#ifdef HAVE_PW_COMMENT
+ pw->pw_comment = "";
+#endif
+#ifdef HAVE_PW_CLASS
+ pw->pw_class = "";
+#endif
+#ifdef HAVE_PW_CHANGE
+ pw->pw_change = 0;
+#endif
+#ifdef HAVE_PW_EXPIRE
+ pw->pw_expire = 0;
+#endif
+
+ return pw;
+}
+
+/* Null-terminate the current colon-separated field in the passwd entry and
+ * return a pointer to the beginning of the next one.
+ */
+static char *next_field(char *ptr)
+{
+ while (*ptr && *ptr != '\n' && *ptr != ':')
+ ptr++;
+ if (*ptr)
+ *ptr++ = '\0';
+ return ptr;
+}
Added: trunk/athena/lib/hesiod/src/lib/hesservbyname.c
===================================================================
--- trunk/athena/lib/hesiod/src/lib/hesservbyname.c (rev 0)
+++ trunk/athena/lib/hesiod/src/lib/hesservbyname.c 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,128 @@
+/*
+ * Copyright (c) 2013, Alex Chernyakhovsky <achernya@mit.edu>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <netdb.h>
+#include <ctype.h>
+#include <errno.h>
+#include <netinet/in.h>
+
+#include "hesiod.h"
+
+// strcasecmp is sufficiently strange that it's better to define our
+// own case-insensitive string comparison function
+static int
+hesiod_strcasecmp(const char* first, const char* second);
+
+struct servent *
+hesiod_getservbyname(void *context, const char *name,
+ const char *proto) {
+ char **list, **iterator;
+ char service[256], protocol[256];
+ int port, retval;
+ struct servent *result = NULL;
+ list = hesiod_resolve(context, name, "service");
+
+ if (list == NULL) {
+ // No results
+ return NULL;
+ }
+
+ for (iterator = list; (*iterator != NULL); iterator++) {
+ retval = sscanf(*iterator, "%256s %256s %d", service, protocol, &port);
+ if (retval != 3) {
+ // Malformed record, skip it for now
+ continue;
+ }
+ if (hesiod_strcasecmp(protocol, proto) != 0) {
+ // Protocol doesn't match
+ continue;
+ }
+ // Found the entry! Do memory allocations first.
+ result = (struct servent *) malloc(sizeof(struct servent));
+ if (result != NULL) {
+ result->s_name =
+ (char *) malloc(sizeof(char) * (strlen(service) + 1));
+ result->s_proto =
+ (char *) malloc(sizeof(char) * (strlen(protocol) + 1));
+ result->s_aliases = (char **) malloc(sizeof(char*) * 1);
+ }
+ // Make sure we got valid buffers from malloc
+ if ((result == NULL) || (result->s_name == NULL) ||
+ (result->s_proto == NULL) || (result->s_aliases == NULL)) {
+ // Set errno to note we ran out of memory, as subsequent
+ // malloc() calls may have clobbered it. Go ahead an try
+ // to delete the structure we allocated.
+ hesiod_free_servent(context, result);
+ errno = ENOMEM;
+ return NULL;
+ }
+
+ // Perform the assignments
+ strcpy(result->s_name, service);
+ strcpy(result->s_proto, protocol);
+ result->s_port = htons(port);
+ *result->s_aliases = NULL;
+
+ break;
+ }
+
+ hesiod_free_list(context, list);
+ return result;
+}
+
+void
+hesiod_free_servent(void *context, struct servent *serv) {
+ if (serv == NULL) {
+ return;
+ }
+ if (serv->s_name != NULL) {
+ free(serv->s_name);
+ }
+ if (serv->s_proto != NULL) {
+ free(serv->s_proto);
+ }
+ if (serv->s_aliases != NULL) {
+ free(serv->s_aliases);
+ }
+ free(serv);
+}
+
+static int
+hesiod_strcasecmp(const char* first, const char* second) {
+ while ((*first) && (*second) &&
+ (tolower(*first) == tolower(*second))) {
+ first++;
+ second++;
+ }
+ return tolower(*first) - tolower(*second);
+}
Added: trunk/athena/lib/hesiod/src/lib/hestest.c
===================================================================
--- trunk/athena/lib/hesiod/src/lib/hestest.c (rev 0)
+++ trunk/athena/lib/hesiod/src/lib/hestest.c 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,445 @@
+/* Copyright 1988, 1996 by the Massachusetts Institute of Technology.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/* This file is a test driver for the Hesiod library. */
+
+static const char rcsid[] = "$Id: hestest.c,v 1.3 1999-10-23 19:29:16 danw Exp $";
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include <string.h>
+#include <netdb.h>
+#include <errno.h>
+#include <pwd.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <stdarg.h>
+#include "hesiod.h"
+
+static char *word_end(char *s);
+static char *find_word(char *s);
+static char *get_word(char *p, char *buf);
+static char *get_field(char *p, int delim, char *buf);
+static int compare_vector(char **vector, char *spec);
+static int compare_pwnam(struct passwd *pw, char *spec);
+static int compare_serv(struct servent *serv, char *spec);
+static int compare_office(struct hesiod_postoffice *office, char *spec);
+static int compare_compat_office(struct hes_postoffice *office, char *spec);
+static void free_ptrs(char **ptrs);
+static void failure(const char *fmt, ...);
+
+int saw_failure = 0;
+
+int main(int argc, char **argv)
+{
+ FILE *fp;
+ char buf[1024], *p, *q, name[128], type[128], proto[128], **list;
+ int line, errval;
+ struct passwd *pw;
+ struct servent *serv;
+ struct hesiod_postoffice *po;
+ struct hes_postoffice *compatpo;
+ void *context;
+
+ if (argc != 2)
+ {
+ fprintf(stderr, "Usage: %s filename\n", argv[0]);
+ return 1;
+ }
+
+ fp = fopen(argv[1], "r");
+ if (!fp)
+ {
+ fprintf(stderr, "Couldn't open %s for reading.\n", argv[1]);
+ return 1;
+ }
+
+ if (hesiod_init(&context) < 0)
+ {
+ fprintf(stderr, "Can't initialize hesiod library.\n");
+ return 1;
+ }
+
+ line = 0;
+ while (fgets(buf, sizeof(buf), fp))
+ {
+ line++;
+
+ /* Strip off trailing spaces (inefficiently). */
+ while (isspace((unsigned char)buf[strlen(buf) - 1]))
+ buf[strlen(buf) - 1] = 0;
+
+ /* Get the first word, discard comment lines and invalid lines. */
+ q = word_end(p = find_word(buf));
+ if (*p == '#' || !*p)
+ continue;
+
+ if (*q && q - p == 7 && strncmp(p, "resolve", 7) == 0)
+ {
+ /* Test for hesiod_resolve and hes_resolve. */
+ q = get_word(find_word(q), name);
+ q = get_word(find_word(q), type);
+ p = find_word(q);
+ list = hesiod_resolve(context, name, type);
+ errval = errno;
+ if (!list && !(*p == 'E' && p[1] == 0))
+ {
+ failure("Line %d failed (hesiod_resolve error %d).\n", line,
+ errval);
+ continue;
+ }
+ if (list && compare_vector(list, p) < 0)
+ {
+ failure("Line %d failed in hesiod_resolve().\n", line);
+ hesiod_free_list(context, list);
+ continue;
+ }
+ if (list)
+ hesiod_free_list(context, list);
+ list = hes_resolve(name, type);
+ if (!list)
+ {
+ if (*p == 'E' && p[1] == 0)
+ printf("Line %d passed (%d, %d).\n", line, errval,
+ hes_error());
+ else
+ failure("Line %d failed (hes_resolve error %d).\n", line,
+ hes_error());
+ continue;
+ }
+ if (compare_vector(list, p) < 0)
+ failure("Line %d failed in hes_resolve().\n", line);
+ else
+ printf("Line %d passed.\n", line);
+ free_ptrs(list);
+ }
+ else if (*q && q - p == 8 && strncmp(p, "getpwnam", 8) == 0)
+ {
+ /* Test for hesiod_getpwnam and hes_getpwnam. */
+ q = get_word(find_word(q), name);
+ p = find_word(q);
+ pw = hesiod_getpwnam(context, name);
+ errval = errno;
+ if (!pw && !(*p == 'E' && p[1] == 0))
+ {
+ failure("Line %d failed (hesiod_getpwnam error %d).\n", line,
+ errval);
+ continue;
+ }
+ if (pw && compare_pwnam(pw, p) < 0)
+ {
+ failure("Line %d failed in hesiod_getpwnam().\n", line);
+ continue;
+ }
+ if (pw)
+ hesiod_free_passwd(context, pw);
+ pw = hes_getpwnam(name);
+ if (!pw)
+ {
+ if (*p == 'E' && p[1] == 0)
+ printf("Line %d passed (%d, %d).\n", line, errval,
+ hes_error());
+ else
+ failure("Line %d failed (hes_getpwnam error %d).\n", line,
+ hes_error());
+ continue;
+ }
+ if (compare_pwnam(pw, p) < 0)
+ failure("Line %d failed in hes_getpwnam().\n", line);
+ else
+ printf("Line %d passed.\n", line);
+ }
+ else if (*q && q - p == 8 && strncmp(p, "getpwuid", 8) == 0)
+ {
+ /* Test for hesiod_getpwuid and hes_getpwuid. */
+ q = get_word(find_word(q), name);
+ p = find_word(q);
+ pw = hesiod_getpwuid(context, atoi(name));
+ errval = errno;
+ if (!pw && !(*p == 'E' && p[1] == 0))
+ {
+ failure("Line %d failed (hesiod_getpwuid error %d).\n", line,
+ errval);
+ continue;
+ }
+ if (pw && compare_pwnam(pw, p) < 0)
+ {
+ failure("Line %d failed in hesiod_getpwuid().\n", line);
+ continue;
+ }
+ if (pw)
+ hesiod_free_passwd(context, pw);
+ pw = hes_getpwuid(atoi(name));
+ if (!pw)
+ {
+ if (*p == 'E' && p[1] == 0)
+ printf("Line %d passed (%d, %d).\n", line, errval,
+ hes_error());
+ else
+ failure("Line %d failed (hes_getpwuid error %d).\n", line,
+ hes_error());
+ continue;
+ }
+ if (compare_pwnam(pw, p) < 0)
+ failure("Line %d failed in hes_getpwuid().\n", line);
+ else
+ printf("Line %d passed.\n", line);
+ }
+ else if (*q && q - p == 13 && strncmp(p, "getservbyname", 13) == 0)
+ {
+ /* Test for hesiod_getservbyname and hes_getservbyname. */
+ q = get_word(find_word(q), name);
+ q = get_word(find_word(q), proto);
+ p = find_word(q);
+ serv = hesiod_getservbyname(context, name, proto);
+ errval = errno;
+ if (!serv && !(*p == 'E' && p[1] == 0))
+ {
+ failure("Line %d failed (hesiod_getservbyname error %d).\n",
+ line, errno);
+ continue;
+ }
+ if (serv && compare_serv(serv, p) < 0)
+ {
+ failure("Line %d failed in hesiod_getservbyname.\n", line);
+ continue;
+ }
+ if (serv)
+ hesiod_free_servent(context, serv);
+ serv = hes_getservbyname(name, proto);
+ if (!serv)
+ {
+ if (*p == 'E' && p[1] == 0)
+ printf("Line %d passed (%d, %d).\n", line, errval,
+ hes_error());
+ else
+ failure("Line %d failed (hes_getservbyname error %d).\n", line,
+ hes_error());
+ continue;
+ }
+ if (compare_serv(serv, p) < 0)
+ failure("Line %d failed in hes_getservbyname().\n", line);
+ else
+ printf("Line %d passed.\n", line);
+ }
+ else if (*q && q - p == 11 && strncmp(p, "getmailhost", 11) == 0)
+ {
+ /* Test for hesiod_getmailhost and hes_getmailhost. */
+ q = get_word(find_word(q), name);
+ p = find_word(q);
+ po = hesiod_getmailhost(context, name);
+ errval = errno;
+ if (!po && !(*p == 'E' && p[1] == 0))
+ {
+ failure("Line %d failed (hesiod_getmailhost error %d).\n",
+ line, errval);
+ continue;
+ }
+ if (po && compare_office(po, p) < 0)
+ {
+ failure("Line %d failed in hesiod_getmailhost.\n", line);
+ continue;
+ }
+ if (po)
+ hesiod_free_postoffice(context, po);
+ compatpo = hes_getmailhost(name);
+ if (!compatpo)
+ {
+ if (*p == 'E' && p[1] == 0)
+ printf("Line %d passed (%d, %d).\n", line, errval,
+ hes_error());
+ else
+ failure("Line %d failed (hes_getmailhost error %d).\n", line,
+ hes_error());
+ continue;
+ }
+ if (compare_compat_office(compatpo, p) < 0)
+ failure("Line %d failed in hes_getmailhost().\n", line);
+ else
+ printf("Line %d passed.\n", line);
+
+ }
+ else
+ {
+ fprintf(stderr, "Line %d invalid: %s\n", line, buf);
+ return 2;
+ }
+ }
+
+ return saw_failure;
+}
+
+static char *word_end(char *s)
+{
+ while (*s && !isspace((unsigned char)*s))
+ s++;
+ return s;
+}
+
+static char *find_word(char *s)
+{
+ while (isspace((unsigned char)*s))
+ s++;
+ return s;
+}
+
+static char *get_word(char *p, char *buf)
+{
+ char *q = word_end(p);
+
+ strncpy(buf, p, q - p);
+ buf[q - p] = 0;
+ return q;
+}
+
+static char *get_field(char *p, int delim, char *buf)
+{
+ char *q = strchr(p, delim);
+
+ if (q) {
+ strncpy(buf, p, q - p);
+ buf[q - p] = 0;
+ return q + 1;
+ } else {
+ strcpy(buf, p);
+ return NULL;
+ }
+}
+
+static int compare_vector(char **vector, char *spec)
+{
+ char field[100];
+
+ for (; *vector; vector++) {
+ spec = get_field(spec, '\\', field);
+ if ((!spec && vector[1]) || strcmp(*vector, field) != 0)
+ return -1;
+ }
+ return (spec) ? -1 : 0;
+}
+
+static int compare_pwnam(struct passwd *pw, char *spec)
+{
+ char field[100];
+
+ spec = get_field(spec, ':', field);
+ if (!spec || strcmp(pw->pw_name, field) != 0)
+ return -1;
+ spec = get_field(spec, ':', field);
+ if (!spec || strcmp(pw->pw_passwd, field) != 0)
+ return -1;
+ spec = get_field(spec, ':', field);
+ if (pw->pw_uid != atoi(field))
+ return -1;
+ spec = get_field(spec, ':', field);
+ if (pw->pw_gid != atoi(field))
+ return -1;
+ spec = get_field(spec, ':', field);
+ if (!spec || strcmp(pw->pw_gecos, field) != 0)
+ return -1;
+ spec = get_field(spec, ':', field);
+ if (!spec || strcmp(pw->pw_dir, field) != 0)
+ return -1;
+ spec = get_field(spec, ':', field);
+ if (spec || strcmp(pw->pw_shell, field) != 0)
+ return -1;
+ return 0;
+}
+
+static int compare_serv(struct servent *serv, char *spec)
+{
+ char field[100], **aliases;
+
+ spec = get_field(spec, ':', field);
+ if (!spec || strcmp(serv->s_name, field) != 0)
+ return -1;
+ spec = get_field(spec, ':', field);
+ if (!spec || strcmp(serv->s_proto, field) != 0)
+ return -1;
+ spec = get_field(spec, ':', field);
+ if (serv->s_port != htons(atoi(field)))
+ return -1;
+ for (aliases = serv->s_aliases; *aliases; aliases++)
+ {
+ if (!spec)
+ return -1;
+ spec = get_field(spec, '\\', field);
+ if (strcmp(*aliases, field) != 0)
+ return -1;
+ }
+ return (spec) ? -1 : 0;
+}
+
+static int compare_office(struct hesiod_postoffice *office, char *spec)
+{
+ char field[100];
+
+ spec = get_field(spec, ':', field);
+ if (!spec || strcmp(office->hesiod_po_type, field) != 0)
+ return -1;
+ spec = get_field(spec, ':', field);
+ if (!spec || strcmp(office->hesiod_po_host, field) != 0)
+ return -1;
+ spec = get_field(spec, ':', field);
+ if (spec || strcmp(office->hesiod_po_name, field) != 0)
+ return -1;
+ return 0;
+}
+
+static int compare_compat_office(struct hes_postoffice *office, char *spec)
+{
+ char field[100];
+
+ spec = get_field(spec, ':', field);
+ if (!spec || strcmp(office->po_type, field) != 0)
+ return -1;
+ spec = get_field(spec, ':', field);
+ if (!spec || strcmp(office->po_host, field) != 0)
+ return -1;
+ spec = get_field(spec, ':', field);
+ if (spec || strcmp(office->po_name, field) != 0)
+ return -1;
+ return 0;
+}
+
+static void free_ptrs(char **ptrs)
+{
+ for (; *ptrs; ptrs++)
+ free(*ptrs);
+}
+
+static void failure(const char *fmt, ...)
+{
+ va_list ap;
+
+ saw_failure = 1;
+ va_start(ap, fmt);
+ vprintf(fmt, ap);
+ va_end(ap);
+}
Added: trunk/athena/lib/hesiod/src/lib/hestest.conf
===================================================================
--- trunk/athena/lib/hesiod/src/lib/hestest.conf (rev 0)
+++ trunk/athena/lib/hesiod/src/lib/hestest.conf 2013-04-03 18:14:36 UTC (rev 25889)
@@ -0,0 +1,11 @@
+resolve systest filsys AFS /afs/athena.mit.edu/user/s/y/systest w /mit/systest
+resolve systest group systest:*:17019:
+resolve foo bar E
+getpwnam systest systest:*:13891:101:Test Account Systems + Operation,,,:/mit/systest:/bin/athena/tcsh
+getpwnam foobar E
+getpwuid 13891 systest:*:13891:101:Test Account Systems + Operation,,,:/mit/systest:/bin/athena/tcsh
+getpwuid -3 E
+getservbyname zephyr udp zephyr:udp:2102
+getservbyname foo bar E
+getmailhost systest POP:PO10.MIT.EDU:systest
+getmailhost foobar E