ypbind-mt-2.7.2/0000755000175000017500000000000013772060444013254 5ustar frankiefrankieypbind-mt-2.7.2/po/0000755000175000017500000000000013772054670013676 5ustar frankiefrankieypbind-mt-2.7.2/po/ypbind-mt.pot0000644000175000017500000001502213772054670016325 0ustar frankiefrankie# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Thorsten Kukuk # This file is distributed under the same license as the ypbind-mt package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: ypbind-mt 2.7.2\n" "Report-Msgid-Bugs-To: kukuk@linux-nis.org\n" "POT-Creation-Date: 2020-01-31 09:43+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: src/serv_list.c:478 msgid "Not enough memory !" msgstr "" #: src/serv_list.c:503 msgid "internal error: add_server called with NULL domain." msgstr "" #: src/serv_list.c:518 #, c-format msgid "add_server() domain: %s, broadcast" msgstr "" #: src/serv_list.c:533 #, c-format msgid "add_server() domain: %s, host: %s, NO SLOT FREE!" msgstr "" #: src/serv_list.c:540 #, c-format msgid "add_server() domain: %s, host: %s, slot: %d" msgstr "" #: src/serv_list.c:563 src/serv_list.c:761 #, c-format msgid "Answer for domain '%s' from server '%s'" msgstr "" #: src/serv_list.c:570 #, c-format msgid "Answer for domain '%s' from '%s' on illegal port %d." msgstr "" #: src/serv_list.c:608 #, c-format msgid "do_broadcast() for domain '%s' is called" msgstr "" #: src/serv_list.c:647 #, c-format msgid "leave do_broadcast() for domain '%s'" msgstr "" #: src/serv_list.c:698 #, c-format msgid "ping host '%s', domain '%s'" msgstr "" #: src/serv_list.c:709 #, c-format msgid "clnt_create for server '%s' (domain '%s') failed" msgstr "" #: src/serv_list.c:732 #, c-format msgid "domain '%s' not served by '%s'" msgstr "" #: src/serv_list.c:841 #, c-format msgid "Ping active server for '%s'" msgstr "" #: src/serv_list.c:843 msgid "Ping active servers for all domains." msgstr "" #: src/ypbind-mt.c:159 src/ypbind-mt.c:162 msgid "Trying entry:" msgstr "" #: src/ypbind-mt.c:179 #, c-format msgid "parsed domain '%s' server '%s'" msgstr "" #: src/ypbind-mt.c:195 #, c-format msgid "parsed domain '%s' broadcast" msgstr "" #: src/ypbind-mt.c:215 #, c-format msgid "parsed ypserver %s" msgstr "" #: src/ypbind-mt.c:232 msgid "parsed broadcast" msgstr "" #: src/ypbind-mt.c:241 #, c-format msgid "Entry \"%s\" is not valid!\n" msgstr "" #: src/ypbind-mt.c:245 #, c-format msgid "Entry \"%s\" is not valid, ignore it!" msgstr "" #: src/ypbind-mt.c:256 #, c-format msgid "Bad entries found.\n" msgstr "" #: src/ypbind-mt.c:261 #, c-format msgid "No entry found.\n" msgstr "" #: src/ypbind-mt.c:269 msgid "No entry found." msgstr "" #: src/ypbind-mt.c:283 msgid "No NIS server and no -broadcast option specified.\n" msgstr "" #: src/ypbind-mt.c:286 #, c-format msgid "Add a NIS server to the %s configuration file,\n" msgstr "" #: src/ypbind-mt.c:288 msgid "or start ypbind with the -broadcast option.\n" msgstr "" #: src/ypbind-mt.c:309 #, c-format msgid "cannot create pidfile %s" msgstr "" #: src/ypbind-mt.c:339 #, c-format msgid "fcntl error: %s" msgstr "" #: src/ypbind-mt.c:351 #, c-format msgid "ypbind-mt already running (pid %d) - exiting" msgstr "" #: src/ypbind-mt.c:362 msgid "cannot lock pidfile" msgstr "" #: src/ypbind-mt.c:415 #, c-format msgid "sigwait failed: ret=%d." msgstr "" #: src/ypbind-mt.c:421 msgid "SIGCHLD arrived, what should I do ?" msgstr "" #: src/ypbind-mt.c:429 #, c-format msgid "Signal (%d) for quitting program arrived." msgstr "" #: src/ypbind-mt.c:438 msgid "cannot unlock pidfile" msgstr "" #: src/ypbind-mt.c:452 msgid "SIGHUP arrived, reloading config file." msgstr "" #: src/ypbind-mt.c:465 msgid "Ignoring SIGPIPE." msgstr "" #: src/ypbind-mt.c:468 #, c-format msgid "Unknown signal: %d" msgstr "" #: src/ypbind-mt.c:485 msgid "Usage:\n" msgstr "" #: src/ypbind-mt.c:486 msgid "" "\typbind [-broadcast | -ypset | -ypsetme] [-f configfile]\n" "\t [-no-ping] [-broken-server] [-local-only] [-i ping-interval]\n" "\t [-debug] [-verbose] [-n | -foreground]\n" msgstr "" #: src/ypbind-mt.c:487 msgid "\typbind -c [-f configfile]\n" msgstr "" #: src/ypbind-mt.c:488 msgid "\typbind --version\n" msgstr "" #: src/ypbind-mt.c:597 #, c-format msgid "Cannot create socket for %s,%s: %s" msgstr "" #: src/ypbind-mt.c:639 #, c-format msgid "Unsupported address family %d" msgstr "" #: src/ypbind-mt.c:646 #, c-format msgid "Cannot bind to reserved port %d and localhostonly (%s)" msgstr "" #: src/ypbind-mt.c:649 #, c-format msgid "Cannot bind to reserved port %d (%s)" msgstr "" #: src/ypbind-mt.c:652 #, c-format msgid "Cannot bind to localhost only (%s)" msgstr "" #: src/ypbind-mt.c:655 #, c-format msgid "bindresvport failed: %s" msgstr "" #: src/ypbind-mt.c:678 #, c-format msgid "unable to register (YPBINDPROG, 3) for %s, %s." msgstr "" #: src/ypbind-mt.c:690 #, c-format msgid "unable to register (YPBINDPROG, 2) [%s]" msgstr "" #: src/ypbind-mt.c:700 msgid "unable to register (YPBINDPROG, 1)." msgstr "" #: src/ypbind-mt.c:798 msgid "ERROR: domainname not set.\n" msgstr "" #: src/ypbind-mt.c:802 msgid "domainname not set - aborting.\n" msgstr "" #: src/ypbind-mt.c:811 #, c-format msgid "Config file %s is not ok.\n" msgstr "" #: src/ypbind-mt.c:816 #, c-format msgid "Config file %s is ok.\n" msgstr "" #: src/ypbind-mt.c:823 msgid "ypbind must be run as root\n" msgstr "" #: src/ypbind-mt.c:831 src/ypbind-mt.c:840 #, c-format msgid "Could not create %s: %s\n" msgstr "" #: src/ypbind-mt.c:847 #, c-format msgid "Could not change to directory %s: %s\n" msgstr "" #: src/ypbind-mt.c:933 msgid "Could not block signals." msgstr "" #: src/ypbind-mt.c:979 #, c-format msgid "sd_notifyf failed: %s" msgstr "" #: src/ypbind-mt.c:984 msgid "svc_run returned." msgstr "" #: src/ypbind_server.c:124 src/ypbind_server.c:227 src/ypbind_server.c:282 #, c-format msgid "Domain name '%s' has embedded slash -- rejecting." msgstr "" #: src/ypbind_server.c:137 src/ypbind_server.c:246 #, c-format msgid "Status: YPBIND_FAIL_VAL, %s" msgstr "" #: src/ypbind_server.c:140 src/ypbind_server.c:250 msgid "Status: YPBIND_SUCC_VAL" msgstr "" #: src/ypbind_server.c:315 src/ypbind_server.c:360 #, c-format msgid "User from '%s' try's to change the binding." msgstr "" #: src/ypbind_server.c:327 src/ypbind_server.c:372 msgid "Changing the binding is not allowed." msgstr "" #: src/ypbind_server.c:334 src/ypbind_server.c:379 msgid "SETDOM request doesn't come from reserved port." msgstr "" #: src/ypbind_svc.c:118 src/ypbind_svc.c:204 src/ypbind_svc.c:290 msgid "unable to free arguments" msgstr "" #: src/ypbind_svc.c:121 src/ypbind_svc.c:207 src/ypbind_svc.c:293 msgid "unable to free results" msgstr "" ypbind-mt-2.7.2/po/de.gmo0000644000175000017500000001135013772054670014772 0ustar frankiefrankieÞ•2¬C<H/I4y'®Ö$ê*A%Z€1™Ëç#2%Xhy/#½&á)2 JXk+s"Ÿ0Â+ó8L0b“²Ò3â, C T q  £ ¿ Ñ ê  , .J <y >¶ 'õ  *; -f '” ¼ /Ü  =( (f ) ;¹ @õ 6Oi9‡)Á1ë/MewŽ2—"Ê:í.(Ww‘5®+ä*;IL.–ÅÕñ!=Wv&’.¹.&# +,( 1"!* ) -'0 2 $/%Add a NIS server to the %s configuration file, Answer for domain '%s' from '%s' on illegal port %d.Answer for domain '%s' from server '%s'Bad entries found. Changing the binding is not allowed.Config file %s is not ok. Config file %s is ok. Could not block signals.Could not change to directory %s: %s Could not create %s: %s Domain name '%s' has embedded slash -- rejecting.ERROR: domainname not set. Entry "%s" is not valid! Entry "%s" is not valid, ignore it!No NIS server and no -broadcast option specified. No entry found.No entry found. Not enough memory !SETDOM request doesn't come from reserved port.SIGCHLD arrived, what should I do ?SIGHUP arrived, reloading config file.Signal (%d) for quitting program arrived.Status: YPBIND_SUCC_VALTrying entry:Unknown signal: %dUsage: User from '%s' try's to change the binding.add_server() domain: %s, broadcastadd_server() domain: %s, host: %s, NO SLOT FREE!add_server() domain: %s, host: %s, slot: %dcannot create pidfile %scannot lock pidfilecannot unlock pidfileclnt_create for server '%s' (domain '%s') faileddomain '%s' not served by '%s'domainname not set - aborting. fcntl error: %sinternal error: add_server called with NULL domain.or start ypbind with the -broadcast option. parsed broadcastparsed domain '%s' broadcastparsed domain '%s' server '%s'parsed ypserver %sping host '%s', domain '%s'svc_run returned.unable to free argumentsunable to free resultsypbind must be run as root ypbind-mt already running (pid %d) - exitingProject-Id-Version: ypbind-mt Report-Msgid-Bugs-To: kukuk@linux-nis.org PO-Revision-Date: 2004-02-13 16:22+01:00 Last-Translator: Thorsten Kukuk Language-Team: No Language-Team Language: de MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8-bit Füge einen NIS server in die %s Configurations Datei hinzu, Antwort für Domain "%s" vom Server "%s" vom illegalen Port %d.Antwort für Domain "%s" vom Server "%s"Ungültige Einträge gefunden. Das ändern des Bindings ist nicht erlaubt.Konfigurationsdatei %s ist nicht in Ordnung. Konfigurationsdatei %s ist in Ordnung. Kann die Signale nicht blocken.Fehler beim Wechseln in das Verzeichnis %s: %s Kann %s nicht erzeugen: %s Domainname "%s" enthält einen Schrägstrich -- zurückgewiesen.Fehler: Domainname wurde nicht gesetzt. Der Eintrag "%s" ist syntaktisch falsch! Der Eintrag "%s" ist syntaktisch falsch, er wird ignoriert!Es wurde kein NIS server und keine -broadcast Option angegeben. Keinen Eintrag gefunden.Keinen Eintrag gefunden. Nicht genug Arbeitsspeicher !Der SETDOM Request kam nicht von einem reservierten Port.SIGCHLD abgefangen, was soll ich machen ?SIGHUP abgefangen, Config Datei wird neu geladen.Signal (%d) zum beenden des Programms bekommen.Status: YPBIND_SUCC_VALVersuche Eintrag:Unbekanntes Signal: %dAufruf: User vom host "%s" versucht das Binding to ändern.add_server() Domain: %s, Broadcastadd_server() Domain: %s, Rechner: %s, Kein Slot mehr frei!add_server() Domain: %s, Rechner: %s, Slot: %dKann Pidfile %s nicht erzeugen.Kann Pidfile nicht lockenKann Pidfile nicht unlocken.clnt_create für server "%s" (domain "%s") schlug fehlDomain "%s" wird nicht von "%s" unterstütztDomainname wurde nicht gesetzt - Abbruch. fcntl Fehler: %sInterner Fehler: add_server wurde mit NULL pointer für domain aufgerufen.oder starte ypbind mit der -broadcast Option. Parse broadcastParse domain '%s' broadcastParse domain '%s' server '%s'Parse ypserver %sPing Host "%s", Domain "%s"svc_run hat sich beendet.Kann Argumente nicht freigebenKann Result nicht freigebenypbind muß als root gestartet werden. ypbind-mt läuft bereits (pid %d) - beende michypbind-mt-2.7.2/po/Rules-quot0000644000175000017500000000414213772054670015702 0ustar frankiefrankie# This file, Rules-quot, can be copied and used freely without restrictions. # Special Makefile rules for English message catalogs with quotation marks. DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot .SUFFIXES: .insert-header .po-update-en en@quot.po-create: $(MAKE) en@quot.po-update en@boldquot.po-create: $(MAKE) en@boldquot.po-update en@quot.po-update: en@quot.po-update-en en@boldquot.po-update: en@boldquot.po-update-en .insert-header.po-update-en: @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ tmpdir=`pwd`; \ echo "$$lang:"; \ ll=`echo $$lang | sed -e 's/@.*//'`; \ LC_ALL=C; export LC_ALL; \ cd $(srcdir); \ if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$lang -o - 2>/dev/null \ | $(SED) -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | \ { case `$(MSGFILTER) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-8] | 0.1[0-8].*) \ $(MSGFILTER) $(SED) -f `echo $$lang | sed -e 's/.*@//'`.sed \ ;; \ *) \ $(MSGFILTER) `echo $$lang | sed -e 's/.*@//'` \ ;; \ esac } 2>/dev/null > $$tmpdir/$$lang.new.po \ ; then \ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ exit 1; \ fi; \ fi; \ else \ echo "creation of $$lang.po failed!" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ fi en@quot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header en@boldquot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header mostlyclean: mostlyclean-quot mostlyclean-quot: rm -f *.insert-header ypbind-mt-2.7.2/po/quot.sed0000644000175000017500000000023113772054670015357 0ustar frankiefrankies/"\([^"]*\)"/“\1â€/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“â€/""/g ypbind-mt-2.7.2/po/boldquot.sed0000644000175000017500000000033113772054670016221 0ustar frankiefrankies/"\([^"]*\)"/“\1â€/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“â€/""/g s/“/“/g s/â€/â€/g s/‘/‘/g s/’/’/g ypbind-mt-2.7.2/po/en@boldquot.header0000644000175000017500000000247113772054670017330 0ustar frankiefrankie# All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # # This catalog furthermore displays the text between the quotation marks in # bold face, assuming the VT100/XTerm escape sequences. # ypbind-mt-2.7.2/po/de.po0000644000175000017500000002621013772054670014627 0ustar frankiefrankie# German translation for ypbind-mt. # Copyright (C) 1998, 1999, 2002 Thorsten Kukuk # Thorsten Kukuk , 1998. # msgid "" msgstr "" "Project-Id-Version: ypbind-mt\n" "Report-Msgid-Bugs-To: kukuk@linux-nis.org\n" "POT-Creation-Date: 2020-01-31 09:43+0100\n" "PO-Revision-Date: 2004-02-13 16:22+01:00\n" "Last-Translator: Thorsten Kukuk \n" "Language-Team: No Language-Team\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" #: src/serv_list.c:478 msgid "Not enough memory !" msgstr "Nicht genug Arbeitsspeicher !" #: src/serv_list.c:503 msgid "internal error: add_server called with NULL domain." msgstr "" "Interner Fehler: add_server wurde mit NULL pointer für domain aufgerufen." #: src/serv_list.c:518 #, c-format msgid "add_server() domain: %s, broadcast" msgstr "add_server() Domain: %s, Broadcast" #: src/serv_list.c:533 #, c-format msgid "add_server() domain: %s, host: %s, NO SLOT FREE!" msgstr "add_server() Domain: %s, Rechner: %s, Kein Slot mehr frei!" #: src/serv_list.c:540 #, c-format msgid "add_server() domain: %s, host: %s, slot: %d" msgstr "add_server() Domain: %s, Rechner: %s, Slot: %d" #: src/serv_list.c:563 src/serv_list.c:761 #, c-format msgid "Answer for domain '%s' from server '%s'" msgstr "Antwort für Domain \"%s\" vom Server \"%s\"" #: src/serv_list.c:570 #, c-format msgid "Answer for domain '%s' from '%s' on illegal port %d." msgstr "Antwort für Domain \"%s\" vom Server \"%s\" vom illegalen Port %d." #: src/serv_list.c:608 #, c-format msgid "do_broadcast() for domain '%s' is called" msgstr "" #: src/serv_list.c:647 #, c-format msgid "leave do_broadcast() for domain '%s'" msgstr "" #: src/serv_list.c:698 #, c-format msgid "ping host '%s', domain '%s'" msgstr "Ping Host \"%s\", Domain \"%s\"" #: src/serv_list.c:709 #, c-format msgid "clnt_create for server '%s' (domain '%s') failed" msgstr "clnt_create für server \"%s\" (domain \"%s\") schlug fehl" #: src/serv_list.c:732 #, c-format msgid "domain '%s' not served by '%s'" msgstr "Domain \"%s\" wird nicht von \"%s\" unterstützt" #: src/serv_list.c:841 #, fuzzy, c-format msgid "Ping active server for '%s'" msgstr "Sende ein Ping zu allen aktiven Servern." #: src/serv_list.c:843 #, fuzzy msgid "Ping active servers for all domains." msgstr "Sende ein Ping zu allen aktiven Servern." #: src/ypbind-mt.c:159 src/ypbind-mt.c:162 msgid "Trying entry:" msgstr "Versuche Eintrag:" #: src/ypbind-mt.c:179 #, c-format msgid "parsed domain '%s' server '%s'" msgstr "Parse domain '%s' server '%s'" #: src/ypbind-mt.c:195 #, c-format msgid "parsed domain '%s' broadcast" msgstr "Parse domain '%s' broadcast" #: src/ypbind-mt.c:215 #, c-format msgid "parsed ypserver %s" msgstr "Parse ypserver %s" #: src/ypbind-mt.c:232 msgid "parsed broadcast" msgstr "Parse broadcast" #: src/ypbind-mt.c:241 #, c-format msgid "Entry \"%s\" is not valid!\n" msgstr "Der Eintrag \"%s\" ist syntaktisch falsch!\n" #: src/ypbind-mt.c:245 #, c-format msgid "Entry \"%s\" is not valid, ignore it!" msgstr "Der Eintrag \"%s\" ist syntaktisch falsch, er wird ignoriert!" #: src/ypbind-mt.c:256 #, c-format msgid "Bad entries found.\n" msgstr "Ungültige Einträge gefunden.\n" #: src/ypbind-mt.c:261 #, c-format msgid "No entry found.\n" msgstr "Keinen Eintrag gefunden.\n" #: src/ypbind-mt.c:269 msgid "No entry found." msgstr "Keinen Eintrag gefunden." #: src/ypbind-mt.c:283 msgid "No NIS server and no -broadcast option specified.\n" msgstr "Es wurde kein NIS server und keine -broadcast Option angegeben.\n" #: src/ypbind-mt.c:286 #, c-format msgid "Add a NIS server to the %s configuration file,\n" msgstr "Füge einen NIS server in die %s Configurations Datei hinzu,\n" #: src/ypbind-mt.c:288 msgid "or start ypbind with the -broadcast option.\n" msgstr "oder starte ypbind mit der -broadcast Option.\n" #: src/ypbind-mt.c:309 #, c-format msgid "cannot create pidfile %s" msgstr "Kann Pidfile %s nicht erzeugen." #: src/ypbind-mt.c:339 #, c-format msgid "fcntl error: %s" msgstr "fcntl Fehler: %s" #: src/ypbind-mt.c:351 #, c-format msgid "ypbind-mt already running (pid %d) - exiting" msgstr "ypbind-mt läuft bereits (pid %d) - beende mich" #: src/ypbind-mt.c:362 msgid "cannot lock pidfile" msgstr "Kann Pidfile nicht locken" #: src/ypbind-mt.c:415 #, c-format msgid "sigwait failed: ret=%d." msgstr "" #: src/ypbind-mt.c:421 msgid "SIGCHLD arrived, what should I do ?" msgstr "SIGCHLD abgefangen, was soll ich machen ?" #: src/ypbind-mt.c:429 #, c-format msgid "Signal (%d) for quitting program arrived." msgstr "Signal (%d) zum beenden des Programms bekommen." #: src/ypbind-mt.c:438 msgid "cannot unlock pidfile" msgstr "Kann Pidfile nicht unlocken." #: src/ypbind-mt.c:452 msgid "SIGHUP arrived, reloading config file." msgstr "SIGHUP abgefangen, Config Datei wird neu geladen." #: src/ypbind-mt.c:465 msgid "Ignoring SIGPIPE." msgstr "" #: src/ypbind-mt.c:468 #, c-format msgid "Unknown signal: %d" msgstr "Unbekanntes Signal: %d" #: src/ypbind-mt.c:485 msgid "Usage:\n" msgstr "Aufruf:\n" #: src/ypbind-mt.c:486 #, fuzzy msgid "" "\typbind [-broadcast | -ypset | -ypsetme] [-f configfile]\n" "\t [-no-ping] [-broken-server] [-local-only] [-i ping-interval]\n" "\t [-debug] [-verbose] [-n | -foreground]\n" msgstr "" " ypbind [-broadcast | -ypset | -ypsetme] [-p Port] [-f " "configfile] [-no-ping] [-broken-server] [-local-only] [-debug]\n" #: src/ypbind-mt.c:487 msgid "\typbind -c [-f configfile]\n" msgstr "" #: src/ypbind-mt.c:488 msgid "\typbind --version\n" msgstr "" #: src/ypbind-mt.c:597 #, fuzzy, c-format msgid "Cannot create socket for %s,%s: %s" msgstr "Kann TCP Socket nicht erzeugen: %s" #: src/ypbind-mt.c:639 #, c-format msgid "Unsupported address family %d" msgstr "" #: src/ypbind-mt.c:646 #, c-format msgid "Cannot bind to reserved port %d and localhostonly (%s)" msgstr "" #: src/ypbind-mt.c:649 #, c-format msgid "Cannot bind to reserved port %d (%s)" msgstr "" #: src/ypbind-mt.c:652 #, c-format msgid "Cannot bind to localhost only (%s)" msgstr "" #: src/ypbind-mt.c:655 #, c-format msgid "bindresvport failed: %s" msgstr "" #: src/ypbind-mt.c:678 #, fuzzy, c-format msgid "unable to register (YPBINDPROG, 3) for %s, %s." msgstr "Kann (YPBINDPROG, YPBINDVERS, upd) nicht beim portmapper registrieren." #: src/ypbind-mt.c:690 #, fuzzy, c-format msgid "unable to register (YPBINDPROG, 2) [%s]" msgstr "Kann (YPBINDPROG, YPBINDVERS, upd) nicht beim portmapper registrieren." #: src/ypbind-mt.c:700 #, fuzzy msgid "unable to register (YPBINDPROG, 1)." msgstr "Kann (YPBINDPROG, YPBINDVERS, upd) nicht beim portmapper registrieren." #: src/ypbind-mt.c:798 msgid "ERROR: domainname not set.\n" msgstr "Fehler: Domainname wurde nicht gesetzt.\n" #: src/ypbind-mt.c:802 msgid "domainname not set - aborting.\n" msgstr "Domainname wurde nicht gesetzt - Abbruch.\n" #: src/ypbind-mt.c:811 #, c-format msgid "Config file %s is not ok.\n" msgstr "Konfigurationsdatei %s ist nicht in Ordnung.\n" #: src/ypbind-mt.c:816 #, c-format msgid "Config file %s is ok.\n" msgstr "Konfigurationsdatei %s ist in Ordnung.\n" #: src/ypbind-mt.c:823 msgid "ypbind must be run as root\n" msgstr "ypbind muß als root gestartet werden.\n" #: src/ypbind-mt.c:831 src/ypbind-mt.c:840 #, c-format msgid "Could not create %s: %s\n" msgstr "Kann %s nicht erzeugen: %s\n" #: src/ypbind-mt.c:847 #, c-format msgid "Could not change to directory %s: %s\n" msgstr "Fehler beim Wechseln in das Verzeichnis %s: %s\n" #: src/ypbind-mt.c:933 msgid "Could not block signals." msgstr "Kann die Signale nicht blocken." #: src/ypbind-mt.c:979 #, c-format msgid "sd_notifyf failed: %s" msgstr "" #: src/ypbind-mt.c:984 msgid "svc_run returned." msgstr "svc_run hat sich beendet." #: src/ypbind_server.c:124 src/ypbind_server.c:227 src/ypbind_server.c:282 #, c-format msgid "Domain name '%s' has embedded slash -- rejecting." msgstr "Domainname \"%s\" enthält einen Schrägstrich -- zurückgewiesen." #: src/ypbind_server.c:137 src/ypbind_server.c:246 #, fuzzy, c-format msgid "Status: YPBIND_FAIL_VAL, %s" msgstr "Status: YPBIND_FAIL_VAL" #: src/ypbind_server.c:140 src/ypbind_server.c:250 msgid "Status: YPBIND_SUCC_VAL" msgstr "Status: YPBIND_SUCC_VAL" #: src/ypbind_server.c:315 src/ypbind_server.c:360 #, c-format msgid "User from '%s' try's to change the binding." msgstr "User vom host \"%s\" versucht das Binding to ändern." #: src/ypbind_server.c:327 src/ypbind_server.c:372 msgid "Changing the binding is not allowed." msgstr "Das ändern des Bindings ist nicht erlaubt." #: src/ypbind_server.c:334 src/ypbind_server.c:379 msgid "SETDOM request doesn't come from reserved port." msgstr "Der SETDOM Request kam nicht von einem reservierten Port." #: src/ypbind_svc.c:118 src/ypbind_svc.c:204 src/ypbind_svc.c:290 msgid "unable to free arguments" msgstr "Kann Argumente nicht freigeben" #: src/ypbind_svc.c:121 src/ypbind_svc.c:207 src/ypbind_svc.c:293 msgid "unable to free results" msgstr "Kann Result nicht freigeben" #~ msgid "Unknown host:" #~ msgstr "Unbekannter Rechner:" #~ msgid "Host name lookup failure" #~ msgstr "Fehler beim Auflösen des Rechnernamens" #~ msgid "No address associated with name:" #~ msgstr "Keine Addresse vorhanden für Rechner:" #~ msgid "Unknown server error" #~ msgstr "Unbekanter Server Fehler" #~ msgid "gethostbyname: Unknown error" #~ msgstr "gethostbyname: Unbekannter Fehler" #~ msgid "Answer for domain '%s' from unknown server '%s'" #~ msgstr "Antwort für Domain \"%s\" von unbekantem Server \"%s\"" #, fuzzy #~ msgid "Checking for new fastest server." #~ msgstr "Suche erneut den schnellsten Server." #~ msgid "host '%s' doesn't answer." #~ msgstr "Server \"%s\" antwortet nicht." #, fuzzy #~ msgid "Server '%s' for domain '%s' answered ping but failed to bind" #~ msgstr "Server \"%s\" für Domain \"%s\" antwortet nicht." #, fuzzy #~ msgid "Unable to register (YPBINDPROG, YPBINDOLDVERS)." #~ msgstr "" #~ "Kann (YPBINDPROG, YPBINDOLDVERS, udp) nicht beim portmapper registrieren." #, fuzzy #~ msgid "Cannot create UDP (IPv4): %s" #~ msgstr "Kann UDP Socket nicht erzeugen: %s" #~ msgid "Cannot create udp service." #~ msgstr "Kann UDP Servie nicht erzeugen." #~ msgid "Unable to register (YPBINDPROG, YPBINDVERS, udp)." #~ msgstr "" #~ "Kann (YPBINDPROG, YPBINDVERS, upd) nicht beim portmapper registrieren." #~ msgid "Unable to register (YPBINDPROG, YPBINDOLDVERS, udp)." #~ msgstr "" #~ "Kann (YPBINDPROG, YPBINDOLDVERS, udp) nicht beim portmapper registrieren." #~ msgid "Cannot create tcp service.\n" #~ msgstr "Kann TCP Service nicht erzeugen.\n" #~ msgid "Unable to register (YPBINDPROG, YPBINDVERS, tcp)." #~ msgstr "" #~ "Kann (YPBINDPROG, YPBINDVERS, tcp) nicht beim portmapper registrieren." #~ msgid "Unable to register (YPBINDPROG, YPBINDOLDVERS, tcp)." #~ msgstr "" #~ "Kann (YPBINDPROG, YPBINDOLDVERS, tcp) nicht beim portmapper registrieren." #~ msgid "parsed domain '%s' slp" #~ msgstr "Parse domain '%s' slp" #~ msgid "Server for domain '%s' doesn't answer." #~ msgstr "Server für Domain \"%s\" antwortet nicht." #~ msgid "Server '%s' for domain '%s' doesn't answer." #~ msgstr "Server \"%s\" für Domain \"%s\" antwortet nicht." #, fuzzy #~ msgid "Trying entry: %s\n" #~ msgstr "Versuche Eintrag: %s" #~ msgid "unknown" #~ msgstr "unbekannt" #~ msgid "no" #~ msgstr "kein " ypbind-mt-2.7.2/po/insert-header.sin0000644000175000017500000000124013772054670017140 0ustar frankiefrankie# Sed script that inserts the file called HEADER before the header entry. # # At each occurrence of a line starting with "msgid ", we execute the following # commands. At the first occurrence, insert the file. At the following # occurrences, do nothing. The distinction between the first and the following # occurrences is achieved by looking at the hold space. /^msgid /{ x # Test if the hold space is empty. s/m/m/ ta # Yes it was empty. First occurrence. Read the file. r HEADER # Output the file's contents by reading the next line. But don't lose the # current line while doing this. g N bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } ypbind-mt-2.7.2/po/sv.po0000644000175000017500000002613613772054670014676 0ustar frankiefrankie# Swedish translation for ypbind-mt. # Copyright (C) 2006 Thorsten Kukuk # This file is distributed under the same license as the ypbind-mt package. # Daniel Nylander , 2006. # msgid "" msgstr "" "Project-Id-Version: ypbind-mt 1.20-2\n" "Report-Msgid-Bugs-To: kukuk@linux-nis.org\n" "POT-Creation-Date: 2020-01-31 09:43+0100\n" "PO-Revision-Date: 2006-11-12 16:48+0100\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" #: src/serv_list.c:478 msgid "Not enough memory !" msgstr "Inte tillräckligt med minne!" #: src/serv_list.c:503 msgid "internal error: add_server called with NULL domain." msgstr "internt fel: add_server anropades med NULL domän." #: src/serv_list.c:518 #, c-format msgid "add_server() domain: %s, broadcast" msgstr "add_server() domän: %s, broadcast" #: src/serv_list.c:533 #, c-format msgid "add_server() domain: %s, host: %s, NO SLOT FREE!" msgstr "add_server() domän: %s, värd: %s, INGEN LEDIG PLATS!" #: src/serv_list.c:540 #, c-format msgid "add_server() domain: %s, host: %s, slot: %d" msgstr "add_server() domän: %s, värd: %s, plats: %d" #: src/serv_list.c:563 src/serv_list.c:761 #, c-format msgid "Answer for domain '%s' from server '%s'" msgstr "Svar för domänen \"%s\" från servern \"%s\"" #: src/serv_list.c:570 #, c-format msgid "Answer for domain '%s' from '%s' on illegal port %d." msgstr "Svar för domänen \"%s\" från \"%s\" på ogiltiga porten %d." #: src/serv_list.c:608 #, c-format msgid "do_broadcast() for domain '%s' is called" msgstr "do_broadcast() för domänen \"%s\" anropas" #: src/serv_list.c:647 #, c-format msgid "leave do_broadcast() for domain '%s'" msgstr "lämna do_broadcast() för domänen \"%s\"" #: src/serv_list.c:698 #, c-format msgid "ping host '%s', domain '%s'" msgstr "pinga värden \"%s\", domän \"%s\"" #: src/serv_list.c:709 #, c-format msgid "clnt_create for server '%s' (domain '%s') failed" msgstr "clnt_create för servern \"%s\" (domän \"%s\") misslyckades" #: src/serv_list.c:732 #, c-format msgid "domain '%s' not served by '%s'" msgstr "domänen \"%s\" hanteras inte av \"%s\"" #: src/serv_list.c:841 #, fuzzy, c-format msgid "Ping active server for '%s'" msgstr "Pingar alla aktiva servrar." #: src/serv_list.c:843 #, fuzzy msgid "Ping active servers for all domains." msgstr "Pingar alla aktiva servrar." #: src/ypbind-mt.c:159 src/ypbind-mt.c:162 msgid "Trying entry:" msgstr "Försöker med posten:" #: src/ypbind-mt.c:179 #, c-format msgid "parsed domain '%s' server '%s'" msgstr "tolkade domänen \"%s\" server \"%s\"" #: src/ypbind-mt.c:195 #, c-format msgid "parsed domain '%s' broadcast" msgstr "tolkade domänen \"%s\" broadcast" #: src/ypbind-mt.c:215 #, c-format msgid "parsed ypserver %s" msgstr "tolkade ypserver %s" #: src/ypbind-mt.c:232 msgid "parsed broadcast" msgstr "tolkade broadcast" #: src/ypbind-mt.c:241 #, c-format msgid "Entry \"%s\" is not valid!\n" msgstr "Posten \"%s\" är inte giltig!\n" #: src/ypbind-mt.c:245 #, c-format msgid "Entry \"%s\" is not valid, ignore it!" msgstr "Posten \"%s\" är inte giltig, ignorerar den!" #: src/ypbind-mt.c:256 #, c-format msgid "Bad entries found.\n" msgstr "Felaktiga poster hittades.\n" #: src/ypbind-mt.c:261 #, c-format msgid "No entry found.\n" msgstr "Ingen post hittades.\n" #: src/ypbind-mt.c:269 msgid "No entry found." msgstr "Ingen post hittades." #: src/ypbind-mt.c:283 msgid "No NIS server and no -broadcast option specified.\n" msgstr "Ingen NIS-server och flaggan -broadcast angavs inte.\n" #: src/ypbind-mt.c:286 #, c-format msgid "Add a NIS server to the %s configuration file,\n" msgstr "Lägg till en NIS-server till konfigurationsfilen för %s,\n" #: src/ypbind-mt.c:288 msgid "or start ypbind with the -broadcast option.\n" msgstr "eller starta ypbind med flaggan -broadcast.\n" #: src/ypbind-mt.c:309 #, c-format msgid "cannot create pidfile %s" msgstr "kan inte skapa pid-filen %s" #: src/ypbind-mt.c:339 #, c-format msgid "fcntl error: %s" msgstr "fcntl-fel: %s" #: src/ypbind-mt.c:351 #, c-format msgid "ypbind-mt already running (pid %d) - exiting" msgstr "ypbind-mt kör redan (pid %d) - avslutar" #: src/ypbind-mt.c:362 msgid "cannot lock pidfile" msgstr "kan inte låsa pid-fil" #: src/ypbind-mt.c:415 #, c-format msgid "sigwait failed: ret=%d." msgstr "sigwait misslyckades: ret=%d." #: src/ypbind-mt.c:421 msgid "SIGCHLD arrived, what should I do ?" msgstr "SIGCHLD togs emot, vad ska jag göra?" #: src/ypbind-mt.c:429 #, c-format msgid "Signal (%d) for quitting program arrived." msgstr "Signalen (%d) för programavslut togs emot." #: src/ypbind-mt.c:438 msgid "cannot unlock pidfile" msgstr "kan inte låsa upp pid-fil" #: src/ypbind-mt.c:452 msgid "SIGHUP arrived, reloading config file." msgstr "SIGHUP togs emot, läser om konfigurationsfilen." #: src/ypbind-mt.c:465 msgid "Ignoring SIGPIPE." msgstr "Ignorerar SIGPIPE." #: src/ypbind-mt.c:468 #, c-format msgid "Unknown signal: %d" msgstr "Okänd signal: %d" #: src/ypbind-mt.c:485 msgid "Usage:\n" msgstr "Användning:\n" #: src/ypbind-mt.c:486 #, fuzzy msgid "" "\typbind [-broadcast | -ypset | -ypsetme] [-f configfile]\n" "\t [-no-ping] [-broken-server] [-local-only] [-i ping-interval]\n" "\t [-debug] [-verbose] [-n | -foreground]\n" msgstr "" "\typbind [-broadcast | -ypset | -ypsetme] [-p port] [-f konfigurationsfil]\n" "\t [-no-ping] [-broken-server] [-local-only] [-i ping-interval] [-debug]\n" #: src/ypbind-mt.c:487 msgid "\typbind -c [-f configfile]\n" msgstr "\typbind -c [-f konfigurationsfil]\n" #: src/ypbind-mt.c:488 msgid "\typbind --version\n" msgstr "\typbind --version\n" #: src/ypbind-mt.c:597 #, fuzzy, c-format msgid "Cannot create socket for %s,%s: %s" msgstr "Kan inte skapa TCP: %s" #: src/ypbind-mt.c:639 #, c-format msgid "Unsupported address family %d" msgstr "" #: src/ypbind-mt.c:646 #, c-format msgid "Cannot bind to reserved port %d and localhostonly (%s)" msgstr "" #: src/ypbind-mt.c:649 #, c-format msgid "Cannot bind to reserved port %d (%s)" msgstr "" #: src/ypbind-mt.c:652 #, c-format msgid "Cannot bind to localhost only (%s)" msgstr "" #: src/ypbind-mt.c:655 #, c-format msgid "bindresvport failed: %s" msgstr "" #: src/ypbind-mt.c:678 #, fuzzy, c-format msgid "unable to register (YPBINDPROG, 3) for %s, %s." msgstr "Kan inte registrera (YPBINDPROG, YPBINDVERS, udp)." #: src/ypbind-mt.c:690 #, fuzzy, c-format msgid "unable to register (YPBINDPROG, 2) [%s]" msgstr "Kan inte registrera (YPBINDPROG, YPBINDVERS, udp)." #: src/ypbind-mt.c:700 #, fuzzy msgid "unable to register (YPBINDPROG, 1)." msgstr "Kan inte registrera (YPBINDPROG, YPBINDVERS, udp)." #: src/ypbind-mt.c:798 msgid "ERROR: domainname not set.\n" msgstr "FEL: domainname inte inställt.\n" #: src/ypbind-mt.c:802 msgid "domainname not set - aborting.\n" msgstr "domainname inte inställt - avbryter.\n" #: src/ypbind-mt.c:811 #, c-format msgid "Config file %s is not ok.\n" msgstr "Konfigurationsfilen %s är inte ok.\n" #: src/ypbind-mt.c:816 #, c-format msgid "Config file %s is ok.\n" msgstr "Konfigurationsfilen %s är ok.\n" #: src/ypbind-mt.c:823 msgid "ypbind must be run as root\n" msgstr "ypbind måste köras som root\n" #: src/ypbind-mt.c:831 src/ypbind-mt.c:840 #, c-format msgid "Could not create %s: %s\n" msgstr "Kunde inte skapa %s: %s\n" #: src/ypbind-mt.c:847 #, c-format msgid "Could not change to directory %s: %s\n" msgstr "Kunde inte ändra till katalogen %s: %s\n" #: src/ypbind-mt.c:933 msgid "Could not block signals." msgstr "Kunde inte blockera signaler." #: src/ypbind-mt.c:979 #, c-format msgid "sd_notifyf failed: %s" msgstr "" #: src/ypbind-mt.c:984 msgid "svc_run returned." msgstr "svc_run återvände." #: src/ypbind_server.c:124 src/ypbind_server.c:227 src/ypbind_server.c:282 #, c-format msgid "Domain name '%s' has embedded slash -- rejecting." msgstr "Domännamnet \"%s\" har inbäddat snedstreck -- vägrar." #: src/ypbind_server.c:137 src/ypbind_server.c:246 #, fuzzy, c-format msgid "Status: YPBIND_FAIL_VAL, %s" msgstr "Status: YPBIND_FAIL_VAL" #: src/ypbind_server.c:140 src/ypbind_server.c:250 msgid "Status: YPBIND_SUCC_VAL" msgstr "Status: YPBIND_SUCC_VAL" #: src/ypbind_server.c:315 src/ypbind_server.c:360 #, c-format msgid "User from '%s' try's to change the binding." msgstr "Användare från \"%s\" försöker ändra bindningen." #: src/ypbind_server.c:327 src/ypbind_server.c:372 msgid "Changing the binding is not allowed." msgstr "Ändring av bindningen tillåts inte." #: src/ypbind_server.c:334 src/ypbind_server.c:379 msgid "SETDOM request doesn't come from reserved port." msgstr "SETDOM-begäran kommer inte från reserverad port." #: src/ypbind_svc.c:118 src/ypbind_svc.c:204 src/ypbind_svc.c:290 msgid "unable to free arguments" msgstr "kunde inte frigöra argumenten" #: src/ypbind_svc.c:121 src/ypbind_svc.c:207 src/ypbind_svc.c:293 msgid "unable to free results" msgstr "kunde inte frigöra resultaten" #~ msgid "\t [-no-dbus]\n" #~ msgstr "\t [-no-dbus]\n" #~ msgid "Unknown host:" #~ msgstr "Okänd värd:" #~ msgid "Host name lookup failure" #~ msgstr "Uppslag av värdnamn misslyckades" #~ msgid "No address associated with name:" #~ msgstr "Ingen adress associerad med namnet:" #~ msgid "Unknown server error" #~ msgstr "Okänt serverfel" #~ msgid "gethostbyname: Unknown error" #~ msgstr "gethostbyname: Okänt fel" #~ msgid "Answer for domain '%s' from unknown server '%s'" #~ msgstr "Svar för domänen \"%s\" från okänd server \"%s\"" #~ msgid "Checking for new fastest server." #~ msgstr "Letar efter den snabbaste servern." #~ msgid "Requested domain %s, found %s, ignored." #~ msgstr "Begärd domän %s, hittade %s, ignoreras." #~ msgid "host '%s' doesn't answer." #~ msgstr "värden \"%s\" svarar inte." #~ msgid "Server '%s' for domain '%s' answered ping but failed to bind" #~ msgstr "" #~ "Servern \"%s\" för domänen \"%s\" svarade på ping men misslyckades att " #~ "binda" #, fuzzy #~ msgid "Unable to register (YPBINDPROG, YPBINDOLDVERS)." #~ msgstr "Kan inte registrera (YPBINDPROG, YPBINDOLDVERS, udp)." #, fuzzy #~ msgid "Cannot create UDP (IPv4): %s" #~ msgstr "Kan inte skapa UDP: %s" #~ msgid "Cannot bind UDP: %s" #~ msgstr "Kan inte binda UDP: %s" #~ msgid "Cannot create udp service." #~ msgstr "Kan inte skapa udp-tjänst." #~ msgid "Unable to register (YPBINDPROG, YPBINDVERS, udp)." #~ msgstr "Kan inte registrera (YPBINDPROG, YPBINDVERS, udp)." #~ msgid "Unable to register (YPBINDPROG, YPBINDOLDVERS, udp)." #~ msgstr "Kan inte registrera (YPBINDPROG, YPBINDOLDVERS, udp)." #~ msgid "Cannot bind TCP: %s" #~ msgstr "Kan inte binda TCP: %s" #~ msgid "Cannot create tcp service.\n" #~ msgstr "Kan inte skapa tcp-tjänst.\n" #~ msgid "Unable to register (YPBINDPROG, YPBINDVERS, tcp)." #~ msgstr "Kan inte registrera (YPBINDPROG, YPBINDVERS, tcp)." #~ msgid "Unable to register (YPBINDPROG, YPBINDOLDVERS, tcp)." #~ msgstr "Kan inte registrera (YPBINDPROG, YPBINDOLDVERS, tcp)." #~ msgid "parsed domain '%s' slp" #~ msgstr "tolkade domänen \"%s\" slp" #~ msgid "Server for domain '%s' doesn't answer." #~ msgstr "Servern för domänen \"%s\" svarar inte." #~ msgid "Server '%s' for domain '%s' doesn't answer." #~ msgstr "Servern \"%s\" för domänen \"%s\" svarar inte." ypbind-mt-2.7.2/po/POTFILES.in0000644000175000017500000000026113772054670015452 0ustar frankiefrankie# List of source files containing translatable strings. # Copyright (C) 1998 Thorsten Kukuk # Source files src/serv_list.c src/ypbind-mt.c src/ypbind_server.c src/ypbind_svc.c ypbind-mt-2.7.2/po/en@quot.header0000644000175000017500000000226313772054670016466 0ustar frankiefrankie# All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # ypbind-mt-2.7.2/po/remove-potcdate.sin0000644000175000017500000000066013772054670017511 0ustar frankiefrankie# Sed script that remove the POT-Creation-Date line in the header entry # from a POT file. # # The distinction between the first and the following occurrences of the # pattern is achieved by looking at the hold space. /^"POT-Creation-Date: .*"$/{ x # Test if the hold space is empty. s/P/P/ ta # Yes it was empty. First occurrence. Remove the line. g d bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } ypbind-mt-2.7.2/po/ChangeLog0000644000175000017500000000213213772054670015446 0ustar frankiefrankie2013-04-09 gettextize * Makefile.in.in: Upgrade to gettext-0.17. 2006-08-30 gettextize * Makefile.in.in: Upgrade to gettext-0.15. * Rules-quot: Upgrade to gettext-0.15. 2004-01-09 gettextize * Makefile.in.in: Upgrade to gettext-0.13. 2003-08-26 gettextize * Makefile.in.in: Upgrade to gettext-0.12.1. * remove-potcdate.sin: New file, from gettext-0.12.1. 2002-04-04 gettextize * Makefile.in.in: Upgrade to gettext-0.11. * Rules-quot: New file, from gettext-0.11. * boldquot.sed: New file, from gettext-0.11. * en@boldquot.header: New file, from gettext-0.11. * en@quot.header: New file, from gettext-0.11. * insert-header.sin: New file, from gettext-0.11. * quot.sed: New file, from gettext-0.11. 2001-10-30 gettextize * Makefile.in.in: Upgrade to gettext-0.10.40. 2001-10-30 gettextize * Makefile.in.in: Upgrade to gettext-0.10.37. * cat-id-tbl.c: Remove file. * stamp-cat-id: Remove file. ypbind-mt-2.7.2/po/Makevars0000644000175000017500000000616113772054670015376 0ustar frankiefrankie# Makefile variables for PO directory in any package using GNU gettext. # Usually the message domain is the same as the package name. DOMAIN = $(PACKAGE) # These two variables depend on the location of this directory. subdir = po top_builddir = .. # These options get passed to xgettext. XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ # This is the copyright holder that gets inserted into the header of the # $(DOMAIN).pot file. Set this to the copyright holder of the surrounding # package. (Note that the msgstr strings, extracted from the package's # sources, belong to the copyright holder of the package.) Translators are # expected to transfer the copyright for their translations to this person # or entity, or to disclaim their copyright. The empty string stands for # the public domain; in this case the translators are expected to disclaim # their copyright. COPYRIGHT_HOLDER = Thorsten Kukuk # This tells whether or not to prepend "GNU " prefix to the package # name that gets inserted into the header of the $(DOMAIN).pot file. # Possible values are "yes", "no", or empty. If it is empty, try to # detect it automatically by scanning the files in $(top_srcdir) for # "GNU packagename" string. PACKAGE_GNU = no # This is the email address or URL to which the translators shall report # bugs in the untranslated strings: # - Strings which are not entire sentences, see the maintainer guidelines # in the GNU gettext documentation, section 'Preparing Strings'. # - Strings which use unclear terms or require additional context to be # understood. # - Strings which make invalid assumptions about notation of date, time or # money. # - Pluralisation problems. # - Incorrect English spelling. # - Incorrect formatting. # It can be your email address, or a mailing list address where translators # can write to without being subscribed, or the URL of a web page through # which the translators can contact you. MSGID_BUGS_ADDRESS = kukuk@linux-nis.org # This is the list of locale categories, beyond LC_MESSAGES, for which the # message catalogs shall be used. It is usually empty. EXTRA_LOCALE_CATEGORIES = # This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' # context. Possible values are "yes" and "no". Set this to yes if the # package uses functions taking also a message context, like pgettext(), or # if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. USE_MSGCTXT = no # These options get passed to msgmerge. # Useful options are in particular: # --previous to keep previous msgids of translated messages, # --quiet to reduce the verbosity. MSGMERGE_OPTIONS = # This tells whether or not to regenerate a PO file when $(DOMAIN).pot # has changed. Possible values are "yes" and "no". Set this to no if # the POT file is checked in the repository and the version control # program ignores timestamps. PO_DEPENDS_ON_POT = yes # This tells whether or not to forcibly update $(DOMAIN).pot and # regenerate PO files on "make dist". Possible values are "yes" and # "no". Set this to no if the POT file and PO files are maintained # externally. DIST_DEPENDS_ON_UPDATE_PO = yes ypbind-mt-2.7.2/po/Makefile.in.in0000644000175000017500000004155313772054670016360 0ustar frankiefrankie# Makefile for PO directory in any package using GNU gettext. # Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich Drepper # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU General Public # License but which still want to provide support for the GNU gettext # functionality. # Please note that the actual code of GNU gettext is covered by the GNU # General Public License and is *not* in the public domain. # # Origin: gettext-0.19 GETTEXT_MACRO_VERSION = 0.19 PACKAGE = @PACKAGE@ VERSION = @VERSION@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ SED = @SED@ SHELL = /bin/sh @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datarootdir = @datarootdir@ datadir = @datadir@ localedir = @localedir@ gettextsrcdir = $(datadir)/gettext/po INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ # We use $(mkdir_p). # In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as # "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, # @install_sh@ does not start with $(SHELL), so we add it. # In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined # either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake # versions, $(mkinstalldirs) and $(install_sh) are unused. mkinstalldirs = $(SHELL) @install_sh@ -d install_sh = $(SHELL) @install_sh@ MKDIR_P = @MKDIR_P@ mkdir_p = @mkdir_p@ GMSGFMT_ = @GMSGFMT@ GMSGFMT_no = @GMSGFMT@ GMSGFMT_yes = @GMSGFMT_015@ GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) MSGFMT_ = @MSGFMT@ MSGFMT_no = @MSGFMT@ MSGFMT_yes = @MSGFMT_015@ MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) XGETTEXT_ = @XGETTEXT@ XGETTEXT_no = @XGETTEXT@ XGETTEXT_yes = @XGETTEXT_015@ XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) MSGMERGE = msgmerge MSGMERGE_UPDATE = @MSGMERGE@ --update MSGINIT = msginit MSGCONV = msgconv MSGFILTER = msgfilter POFILES = @POFILES@ GMOFILES = @GMOFILES@ UPDATEPOFILES = @UPDATEPOFILES@ DUMMYPOFILES = @DUMMYPOFILES@ DISTFILES.common = Makefile.in.in remove-potcdate.sin \ $(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ $(POFILES) $(GMOFILES) \ $(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) POTFILES = \ CATALOGS = @CATALOGS@ POFILESDEPS_ = $(srcdir)/$(DOMAIN).pot POFILESDEPS_yes = $(POFILESDEPS_) POFILESDEPS_no = POFILESDEPS = $(POFILESDEPS_$(PO_DEPENDS_ON_POT)) DISTFILESDEPS_ = update-po DISTFILESDEPS_yes = $(DISTFILESDEPS_) DISTFILESDEPS_no = DISTFILESDEPS = $(DISTFILESDEPS_$(DIST_DEPENDS_ON_UPDATE_PO)) # Makevars gets inserted here. (Don't remove this line!) .SUFFIXES: .SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update .po.mo: @echo "$(MSGFMT) -c -o $@ $<"; \ $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ .po.gmo: @lang=`echo $* | sed -e 's,.*/,,'`; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \ cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo .sin.sed: sed -e '/^#/d' $< > t-$@ mv t-$@ $@ all: all-@USE_NLS@ all-yes: stamp-po all-no: # Ensure that the gettext macros and this Makefile.in.in are in sync. CHECK_MACRO_VERSION = \ test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \ || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \ exit 1; \ } # $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no # internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because # we don't want to bother translators with empty POT files). We assume that # LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. # In this case, stamp-po is a nop (i.e. a phony target). # stamp-po is a timestamp denoting the last time at which the CATALOGS have # been loosely updated. Its purpose is that when a developer or translator # checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, # "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent # invocations of "make" will do nothing. This timestamp would not be necessary # if updating the $(CATALOGS) would always touch them; however, the rule for # $(POFILES) has been designed to not touch files that don't need to be # changed. stamp-po: $(srcdir)/$(DOMAIN).pot @$(CHECK_MACRO_VERSION) test ! -f $(srcdir)/$(DOMAIN).pot || \ test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) @test ! -f $(srcdir)/$(DOMAIN).pot || { \ echo "touch stamp-po" && \ echo timestamp > stamp-poT && \ mv stamp-poT stamp-po; \ } # Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', # otherwise packages like GCC can not be built if only parts of the source # have been downloaded. # This target rebuilds $(DOMAIN).pot; it is an expensive operation. # Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. # The determination of whether the package xyz is a GNU one is based on the # heuristic whether some file in the top level directory mentions "GNU xyz". # If GNU 'find' is available, we avoid grepping through monster files. $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed package_gnu="$(PACKAGE_GNU)"; \ test -n "$$package_gnu" || { \ if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f \ -size -10000000c -exec grep 'GNU @PACKAGE@' \ /dev/null '{}' ';' 2>/dev/null; \ else \ LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null; \ fi; \ } | grep -v 'libtool:' >/dev/null; then \ package_gnu=yes; \ else \ package_gnu=no; \ fi; \ }; \ if test "$$package_gnu" = "yes"; then \ package_prefix='GNU '; \ else \ package_prefix=''; \ fi; \ if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ else \ msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ fi; \ case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ --files-from=$(srcdir)/POTFILES.in \ --copyright-holder='$(COPYRIGHT_HOLDER)' \ --msgid-bugs-address="$$msgid_bugs_address" \ ;; \ *) \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ --files-from=$(srcdir)/POTFILES.in \ --copyright-holder='$(COPYRIGHT_HOLDER)' \ --package-name="$${package_prefix}@PACKAGE@" \ --package-version='@VERSION@' \ --msgid-bugs-address="$$msgid_bugs_address" \ ;; \ esac test ! -f $(DOMAIN).po || { \ if test -f $(srcdir)/$(DOMAIN).pot; then \ sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ else \ rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ fi; \ else \ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ fi; \ } # This rule has no dependencies: we don't need to update $(DOMAIN).pot at # every "make" invocation, only create it when it is missing. # Only "make $(DOMAIN).pot-update" or "make dist" will force an update. $(srcdir)/$(DOMAIN).pot: $(MAKE) $(DOMAIN).pot-update # This target rebuilds a PO file if $(DOMAIN).pot has changed. # Note that a PO file is not touched if it doesn't need to be changed. $(POFILES): $(POFILESDEPS) @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ if test -f "$(srcdir)/$${lang}.po"; then \ test -f $(srcdir)/$(DOMAIN).pot || $(MAKE) $(srcdir)/$(DOMAIN).pot; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \ cd $(srcdir) \ && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ *) \ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \ esac; \ }; \ else \ $(MAKE) $${lang}.po-create; \ fi install: install-exec install-data install-exec: install-data: install-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ for file in $(DISTFILES.common) Makevars.template; do \ $(INSTALL_DATA) $(srcdir)/$$file \ $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ for file in Makevars; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi install-data-no: all install-data-yes: all @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $(DESTDIR)$$dir; \ if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ if test -n "$$lc"; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ for file in *; do \ if test -f $$file; then \ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ fi; \ done); \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ else \ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ :; \ else \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ fi; \ fi; \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ fi; \ done; \ done install-strip: install installdirs: installdirs-exec installdirs-data installdirs-exec: installdirs-data: installdirs-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ else \ : ; \ fi installdirs-data-no: installdirs-data-yes: @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $(DESTDIR)$$dir; \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ if test -n "$$lc"; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ for file in *; do \ if test -f $$file; then \ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ fi; \ done); \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ else \ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ :; \ else \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ fi; \ fi; \ fi; \ done; \ done # Define this as empty until I found a useful application. installcheck: uninstall: uninstall-exec uninstall-data uninstall-exec: uninstall-data: uninstall-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ for file in $(DISTFILES.common) Makevars.template; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi uninstall-data-no: uninstall-data-yes: catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ done; \ done check: all info dvi ps pdf html tags TAGS ctags CTAGS ID: mostlyclean: rm -f remove-potcdate.sed rm -f stamp-poT rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po rm -fr *.o clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES *.mo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f stamp-po $(GMOFILES) distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: test -z "$(DISTFILESDEPS)" || $(MAKE) $(DISTFILESDEPS) @$(MAKE) dist2 # This is a separate target because 'update-po' must be executed before. dist2: stamp-po $(DISTFILES) dists="$(DISTFILES)"; \ if test "$(PACKAGE)" = "gettext-tools"; then \ dists="$$dists Makevars.template"; \ fi; \ if test -f $(srcdir)/$(DOMAIN).pot; then \ dists="$$dists $(DOMAIN).pot stamp-po"; \ fi; \ if test -f $(srcdir)/ChangeLog; then \ dists="$$dists ChangeLog"; \ fi; \ for i in 0 1 2 3 4 5 6 7 8 9; do \ if test -f $(srcdir)/ChangeLog.$$i; then \ dists="$$dists ChangeLog.$$i"; \ fi; \ done; \ if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ for file in $$dists; do \ if test -f $$file; then \ cp -p $$file $(distdir) || exit 1; \ else \ cp -p $(srcdir)/$$file $(distdir) || exit 1; \ fi; \ done update-po: Makefile $(MAKE) $(DOMAIN).pot-update test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) $(MAKE) update-gmo # General rule for creating PO files. .nop.po-create: @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ exit 1 # General rule for updating PO files. .nop.po-update: @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ tmpdir=`pwd`; \ echo "$$lang:"; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ cd $(srcdir); \ if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ *) \ $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ esac; \ }; then \ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.po failed!" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ fi $(DUMMYPOFILES): update-gmo: Makefile $(GMOFILES) @: # Recreate Makefile by invoking config.status. Explicitly invoke the shell, # because execution permission bits may not work on the current file system. # Use @SHELL@, which is the shell determined by autoconf for the use by its # scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient. Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ cd $(top_builddir) \ && @SHELL@ ./config.status $(subdir)/$@.in po-directories force: # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ypbind-mt-2.7.2/po/sv.gmo0000644000175000017500000001202513772054670015032 0ustar frankiefrankieÞ•8ÜOœØÙì/48'm•$©Îé%?1XЦ#Àä2ö)9J/^#Ž&²)Ù )<+D"p0“+Äð  03 (d  ¬ Ì 3Ü $ ,5 b s  ¯  Þ ö  ! 8 ,T J Ì "ß 9 6< 's › #· #Û ÿ '<d3}±Ñ*î5,bw0ª$Û/*0[sˆ ™.¦!Õ4÷+,XtŠ6¤'Û"%& L1Z%Œ,²ßñ 1Ec”²Ð'í)8-/6$3"7 '#+5 41 *(&.  %20!, ypbind --version ypbind -c [-f configfile] Add a NIS server to the %s configuration file, Answer for domain '%s' from '%s' on illegal port %d.Answer for domain '%s' from server '%s'Bad entries found. Changing the binding is not allowed.Config file %s is not ok. Config file %s is ok. Could not block signals.Could not change to directory %s: %s Could not create %s: %s Domain name '%s' has embedded slash -- rejecting.ERROR: domainname not set. Entry "%s" is not valid! Entry "%s" is not valid, ignore it!Ignoring SIGPIPE.No NIS server and no -broadcast option specified. No entry found.No entry found. Not enough memory !SETDOM request doesn't come from reserved port.SIGCHLD arrived, what should I do ?SIGHUP arrived, reloading config file.Signal (%d) for quitting program arrived.Status: YPBIND_SUCC_VALTrying entry:Unknown signal: %dUsage: User from '%s' try's to change the binding.add_server() domain: %s, broadcastadd_server() domain: %s, host: %s, NO SLOT FREE!add_server() domain: %s, host: %s, slot: %dcannot create pidfile %scannot lock pidfilecannot unlock pidfileclnt_create for server '%s' (domain '%s') faileddo_broadcast() for domain '%s' is calleddomain '%s' not served by '%s'domainname not set - aborting. fcntl error: %sinternal error: add_server called with NULL domain.leave do_broadcast() for domain '%s'or start ypbind with the -broadcast option. parsed broadcastparsed domain '%s' broadcastparsed domain '%s' server '%s'parsed ypserver %sping host '%s', domain '%s'sigwait failed: ret=%d.svc_run returned.unable to free argumentsunable to free resultsypbind must be run as root ypbind-mt already running (pid %d) - exitingProject-Id-Version: ypbind-mt 1.20-2 Report-Msgid-Bugs-To: kukuk@linux-nis.org PO-Revision-Date: 2006-11-12 16:48+0100 Last-Translator: Daniel Nylander Language-Team: Swedish Language: sv MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit ypbind --version ypbind -c [-f konfigurationsfil] Lägg till en NIS-server till konfigurationsfilen för %s, Svar för domänen "%s" från "%s" på ogiltiga porten %d.Svar för domänen "%s" från servern "%s"Felaktiga poster hittades. Ändring av bindningen tillåts inte.Konfigurationsfilen %s är inte ok. Konfigurationsfilen %s är ok. Kunde inte blockera signaler.Kunde inte ändra till katalogen %s: %s Kunde inte skapa %s: %s Domännamnet "%s" har inbäddat snedstreck -- vägrar.FEL: domainname inte inställt. Posten "%s" är inte giltig! Posten "%s" är inte giltig, ignorerar den!Ignorerar SIGPIPE.Ingen NIS-server och flaggan -broadcast angavs inte. Ingen post hittades.Ingen post hittades. Inte tillräckligt med minne!SETDOM-begäran kommer inte från reserverad port.SIGCHLD togs emot, vad ska jag göra?SIGHUP togs emot, läser om konfigurationsfilen.Signalen (%d) för programavslut togs emot.Status: YPBIND_SUCC_VALFörsöker med posten:Okänd signal: %dAnvändning: Användare från "%s" försöker ändra bindningen.add_server() domän: %s, broadcastadd_server() domän: %s, värd: %s, INGEN LEDIG PLATS!add_server() domän: %s, värd: %s, plats: %dkan inte skapa pid-filen %skan inte låsa pid-filkan inte låsa upp pid-filclnt_create för servern "%s" (domän "%s") misslyckadesdo_broadcast() för domänen "%s" anropasdomänen "%s" hanteras inte av "%s"domainname inte inställt - avbryter. fcntl-fel: %sinternt fel: add_server anropades med NULL domän.lämna do_broadcast() för domänen "%s"eller starta ypbind med flaggan -broadcast. tolkade broadcasttolkade domänen "%s" broadcasttolkade domänen "%s" server "%s"tolkade ypserver %spinga värden "%s", domän "%s"sigwait misslyckades: ret=%d.svc_run återvände.kunde inte frigöra argumentenkunde inte frigöra resultatenypbind måste köras som root ypbind-mt kör redan (pid %d) - avslutarypbind-mt-2.7.2/po/LINGUAS0000644000175000017500000000000613772054670014717 0ustar frankiefrankiede sv ypbind-mt-2.7.2/depcomp0000755000175000017500000003035013772054670014636 0ustar frankiefrankie#! /bin/sh # depcomp - compile a program generating dependencies as side-effects # Copyright 1999, 2000 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Suite 500, Boston, MA # 02110-1335, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # `libtool' can also be set to `yes' or `no'. if test -z "$depfile"; then base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'` dir=`echo "$object" | sed 's,/.*$,/,'` if test "$dir" = "$object"; then dir= fi # FIXME: should be _deps on DOS. depfile="$dir.deps/$base" fi tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. This file always lives in the current directory. # Also, the AIX compiler puts `$object:' at the start of each line; # $object doesn't have directory information. stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" outname="$stripped.o" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; tru64) # The Tru64 AIX compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. base=`echo "$object" | sed -e 's/\.o$/.d/' -e 's/\.lo$/.d/'` tmpdepfile1="$base.o.d" tmpdepfile2="$base.d" if test "$libtool" = yes; then "$@" -Wc,-MD else "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi if test -f "$tmpdepfile1"; then tmpdepfile="$tmpdepfile1" else tmpdepfile="$tmpdepfile2" fi if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a space and a tab in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the proprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. test -z "$dashmflag" && dashmflag=-M ( IFS=" " case " $* " in *" --mode=compile "*) # this is libtool, let us make it quiet for arg do # cycle over the arguments case "$arg" in "--mode=compile") # insert --quiet before "--mode=compile" set fnord "$@" --quiet shift # fnord ;; esac set fnord "$@" "$arg" shift # fnord shift # "$arg" done ;; esac "$@" $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" ) & proc=$! "$@" stat=$? wait "$proc" if test "$stat" != 0; then exit $stat; fi rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) # X makedepend ( shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift;; -*) ;; *) set fnord "$@" "$arg"; shift;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@" ) & proc=$! "$@" stat=$? wait "$proc" if test "$stat" != 0; then exit $stat; fi rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the proprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. ( IFS=" " case " $* " in *" --mode=compile "*) for arg do # cycle over the arguments case $arg in "--mode=compile") # insert --quiet before "--mode=compile" set fnord "$@" --quiet shift # fnord ;; esac set fnord "$@" "$arg" shift # fnord shift # "$arg" done ;; esac "$@" -E | sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" ) & proc=$! "$@" stat=$? wait "$proc" if test "$stat" != 0; then exit $stat; fi rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the proprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. ( IFS=" " case " $* " in *" --mode=compile "*) for arg do # cycle over the arguments case $arg in "--mode=compile") # insert --quiet before "--mode=compile" set fnord "$@" --quiet shift # fnord ;; esac set fnord "$@" "$arg" shift # fnord shift # "$arg" done ;; esac for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" ) & proc=$! "$@" stat=$? wait "$proc" if test "$stat" != 0; then exit $stat; fi rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 ypbind-mt-2.7.2/INSTALL0000644000175000017500000002230613772054670014314 0ustar frankiefrankieCopyright 1994, 1995, 1996, 1999, 2000, 2001 Free Software Foundation, Inc. This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. (Caching is disabled by default to prevent problems with accidental use of stale cache files.) If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You only need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for variables by setting them in the environment. You can do that on the command line like this: ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not support the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of host the package will run on. Usually `configure' can figure that out, but if it prints a message saying it cannot guess the host type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the host type. If you are _building_ compiler tools for cross-compiling, you should use the `--target=TYPE' option to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the host platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. In this case, you should also specify the build platform with `--build=TYPE', because, in this case, it may not be possible to guess the build platform (it sometimes involves compiling and running simple test programs, and this can't be done if the compiler is a cross compiler). Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc will cause the specified gcc to be used as the C compiler (unless it is overridden in the site shell script). `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of the options to `configure', and exit. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. ypbind-mt-2.7.2/missing0000755000175000017500000001533113772054670014662 0ustar frankiefrankie#! /bin/sh # Common wrapper for a few potentially missing GNU programs. scriptversion=2012-06-26.16; # UTC # Copyright (C) 1996-2013 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try '$0 --help' for more information" exit 1 fi case $1 in --is-lightweight) # Used by our autoconf macros to check whether the available missing # script is modern enough. exit 0 ;; --run) # Back-compat with the calling convention used by older automake. shift ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due to PROGRAM being missing or too old. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal autoconf autoheader autom4te automake makeinfo bison yacc flex lex help2man Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and 'g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: unknown '$1' option" echo 1>&2 "Try '$0 --help' for more information" exit 1 ;; esac # Run the given program, remember its exit status. "$@"; st=$? # If it succeeded, we are done. test $st -eq 0 && exit 0 # Also exit now if we it failed (or wasn't found), and '--version' was # passed; such an option is passed most likely to detect whether the # program is present and works. case $2 in --version|--help) exit $st;; esac # Exit code 63 means version mismatch. This often happens when the user # tries to use an ancient version of a tool on a file that requires a # minimum version. if test $st -eq 63; then msg="probably too old" elif test $st -eq 127; then # Program was missing. msg="missing on your system" else # Program was found and executed, but failed. Give up. exit $st fi perl_URL=http://www.perl.org/ flex_URL=http://flex.sourceforge.net/ gnu_software_URL=http://www.gnu.org/software program_details () { case $1 in aclocal|automake) echo "The '$1' program is part of the GNU Automake package:" echo "<$gnu_software_URL/automake>" echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/autoconf>" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; autoconf|autom4te|autoheader) echo "The '$1' program is part of the GNU Autoconf package:" echo "<$gnu_software_URL/autoconf/>" echo "It also requires GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; esac } give_advice () { # Normalize program name to check for. normalized_program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` printf '%s\n' "'$1' is $msg." configure_deps="'configure.ac' or m4 files included by 'configure.ac'" case $normalized_program in autoconf*) echo "You should only need it if you modified 'configure.ac'," echo "or m4 files included by it." program_details 'autoconf' ;; autoheader*) echo "You should only need it if you modified 'acconfig.h' or" echo "$configure_deps." program_details 'autoheader' ;; automake*) echo "You should only need it if you modified 'Makefile.am' or" echo "$configure_deps." program_details 'automake' ;; aclocal*) echo "You should only need it if you modified 'acinclude.m4' or" echo "$configure_deps." program_details 'aclocal' ;; autom4te*) echo "You might have modified some maintainer files that require" echo "the 'automa4te' program to be rebuilt." program_details 'autom4te' ;; bison*|yacc*) echo "You should only need it if you modified a '.y' file." echo "You may want to install the GNU Bison package:" echo "<$gnu_software_URL/bison/>" ;; lex*|flex*) echo "You should only need it if you modified a '.l' file." echo "You may want to install the Fast Lexical Analyzer package:" echo "<$flex_URL>" ;; help2man*) echo "You should only need it if you modified a dependency" \ "of a man page." echo "You may want to install the GNU Help2man package:" echo "<$gnu_software_URL/help2man/>" ;; makeinfo*) echo "You should only need it if you modified a '.texi' file, or" echo "any other file indirectly affecting the aspect of the manual." echo "You might want to install the Texinfo package:" echo "<$gnu_software_URL/texinfo/>" echo "The spurious makeinfo call might also be the consequence of" echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" echo "want to install GNU make:" echo "<$gnu_software_URL/make/>" ;; *) echo "You might have modified some files without having the proper" echo "tools for further handling them. Check the 'README' file, it" echo "often tells you about the needed prerequisites for installing" echo "this package. You may also peek at any GNU archive site, in" echo "case some other package contains this missing '$1' program." ;; esac } give_advice "$1" | sed -e '1s/^/WARNING: /' \ -e '2,$s/^/ /' >&2 # Propagate the correct exit status (expected to be 127 for a program # not found, 63 for a program that failed due to version mismatch). exit $st # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: ypbind-mt-2.7.2/configure.ac0000644000175000017500000000445613772054670015557 0ustar frankiefrankiednl Process this file with autoconf to produce a configure script. AC_INIT([ypbind-mt], [2.7.2]) AC_CONFIG_SRCDIR([src/ypbind-mt.c]) AM_INIT_AUTOMAKE AC_CONFIG_HEADERS(config.h) AC_SUBST(PACKAGE) AC_SUBST(VERSION) AC_CANONICAL_HOST dnl Checks for programs. AC_PROG_CC dnl If we're using gcc, we want warning flags #test -n "$GCC" && WARNFLAGS="-Wall" test -n "$GCC" && WARNFLAGS="-W -Wall -Wbad-function-cast -Wcast-align -Winline -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wshadow -Wstrict-prototypes -Wundef" AC_SUBST(WARNFLAGS) AC_ISC_POSIX AC_PROG_INSTALL AC_PROG_MAKE_SET AC_PROG_RANLIB AC_GNU_SOURCE dnl Checks for libraries. dnl AC_CHECK_LIB(nsl, yp_get_default_domain) AC_CHECK_LIB(pthread, pthread_create) PKG_CHECK_MODULES([SYSTEMD], [libsystemd >= 209], [USE_SD_NOTIFY=1], [USE_SD_NOTIFY=0]) AC_SUBST(USE_SD_NOTIFY) #PKG_CHECK_MODULES([NSL], [libnsl], [], [AC_CHECK_LIB([nsl],[yp_match],[NSL_LIBS="-lnsl"],[NSL_LIBS=""])]) PKG_CHECK_MODULES([NSL], [libnsl]) PKG_CHECK_MODULES([TIRPC], [libtirpc], [], [TIRPC_LIBS=""]) if test -n "$TIRPC_LIBS"; then AC_DEFINE(HAVE_TIRPC, 1, [Define to 1 if TIRPC is available]) fi dnl The difficult part: could we reconfigure NSS or must we use DNS ? AC_CHECK_FUNCS(__nss_configure_lookup) if eval "test \"`echo '$ac_cv_func___nss_configure_lookup'`\" != yes"; then AC_CHECK_LIB(resolv, res_gethostbyname) fi dnl Check for gettid wrapper AC_CHECK_FUNC(gettid, [AC_DEFINE(HAVE_GETTID, 1, [Define to 1 if gettid() is available])]) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST dnl dnl Check for xsltproc dnl enable_man=yes AC_PATH_PROG([XSLTPROC], [xsltproc]) if test -z "$XSLTPROC"; then enable_man=no fi AC_PATH_PROG([XMLLINT], [xmllint],[/bin/true]) dnl check for DocBook DTD and stylesheets in the local catalog. JH_CHECK_XML_CATALOG([-//OASIS//DTD DocBook XML V4.3//EN], [DocBook XML DTD V4.3], [], enable_man=no) JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl], [DocBook XSL Stylesheets], [], enable_man=no) AM_CONDITIONAL(ENABLE_REGENERATE_MAN, test x$enable_man != xno) dnl internationalization macros AM_GNU_GETTEXT_VERSION([0.19]) AM_GNU_GETTEXT([external]) AC_OUTPUT(Makefile lib/Makefile src/Makefile man/Makefile po/Makefile.in) ypbind-mt-2.7.2/config.guess0000755000175000017500000012713013772054670015604 0ustar frankiefrankie#! /bin/sh # Attempt to guess a canonical system name. # Copyright 1992-2017 Free Software Foundation, Inc. timestamp='2017-05-27' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # # Please send patches to . me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright 1992-2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown case "${UNAME_SYSTEM}" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu eval $set_cc_for_build cat <<-EOF > $dummy.c #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc #else LIBC=gnu #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` ;; esac case "${UNAME_MACHINE}" in i?86) test -z "$VENDOR" && VENDOR=pc ;; *) test -z "$VENDOR" && VENDOR=unknown ;; esac test -f /etc/SuSE-release -o -f /.buildenv && VENDOR=suse # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ /sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || \ echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; earmv*) arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` machine=${arch}${endian}-${VENDOR}-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-${VENDOR}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently (or will in the future) and ABI. case "${UNAME_MACHINE_ARCH}" in earm*) os=netbsdelf ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # Determine ABI tags. case "${UNAME_MACHINE_ARCH}" in earm*) expr='s/^earmv[0-9]/-eabi/;s/eb$//' abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}${abi}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` echo ${UNAME_MACHINE_ARCH}-${VENDOR}-bitrig${UNAME_RELEASE} exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-${VENDOR}-openbsd${UNAME_RELEASE} exit ;; *:LibertyBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` echo ${UNAME_MACHINE_ARCH}-${VENDOR}-libertybsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-${VENDOR}-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-${VENDOR}-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-${VENDOR}-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-${VENDOR}-mirbsd${UNAME_RELEASE} exit ;; *:Sortix:*:*) echo ${UNAME_MACHINE}-${VENDOR}-sortix exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE=alpha ;; "EV4.5 (21064)") UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") UNAME_MACHINE=alpha ;; "EV5 (21164)") UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-${VENDOR}-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-${VENDOR}-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-${VENDOR}-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-${VENDOR}-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH=x86_64 fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-${VENDOR}-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/lslpp ] ; then IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH=hppa2.0n ;; 64) HP_ARCH=hppa2.0w ;; '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = hppa2.0w ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH=hppa2.0w else HP_ARCH=hppa64 fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-${VENDOR}-osf1mk else echo ${UNAME_MACHINE}-${VENDOR}-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-${VENDOR}-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-${VENDOR}-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) UNAME_PROCESSOR=x86_64 ;; i386) UNAME_PROCESSOR=i586 ;; esac echo ${UNAME_PROCESSOR}-${VENDOR}-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW64*:*) echo ${UNAME_MACHINE}-pc-mingw64 exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; *:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-${VENDOR}-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-${VENDOR}-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-${VENDOR}-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-${VENDOR}-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-${VENDOR}-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-${VENDOR}-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-${VENDOR}-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} exit ;; arc:Linux:*:* | arceb:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC}eabi else echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC}eabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; e2k:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} exit ;; i*86:Linux:*:*) echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} exit ;; k1om:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-${VENDOR}-linux-${LIBC}"; exit; } ;; mips64el:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} exit ;; openrisc*:Linux:*:*) echo or1k-${VENDOR}-linux-${LIBC} exit ;; or32:Linux:*:* | or1k*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} exit ;; padre:Linux:*:*) echo sparc-${VENDOR}-linux-${LIBC} exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-${VENDOR}-linux-${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-${VENDOR}-linux-${LIBC} ;; PA8*) echo hppa2.0-${VENDOR}-linux-${LIBC} ;; *) echo hppa-${VENDOR}-linux-${LIBC} ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-${VENDOR}-linux-${LIBC} exit ;; ppc:Linux:*:*) echo powerpc-${VENDOR}-linux-${LIBC} exit ;; ppc64le:Linux:*:*) echo powerpc64le-${VENDOR}-linux-${LIBC} exit ;; ppcle:Linux:*:*) echo powerpcle-${VENDOR}-linux-${LIBC} exit ;; riscv32:Linux:*:* | riscv64:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} exit ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-${VENDOR}-linux-${LIBC} exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-${VENDOR}-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-${VENDOR}-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-${VENODR}-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-${VENDOR}-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-${VENODR}-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-${VENDOR}-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-${VENDOR}-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-${VENDOR}-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-${VENDOR}-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-${VENDOR}-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; x86_64:Haiku:*:*) echo x86_64-${VENDOR}-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; SX-ACE:SUPER-UX:*:*) echo sxace-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown eval $set_cc_for_build if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_PPC >/dev/null then UNAME_PROCESSOR=powerpc fi fi elif test "$UNAME_PROCESSOR" = i386 ; then # Avoid executing cc on OS X 10.9, as it ships with a stub # that puts up a graphical alert prompting to install # developer tools. Any system running Mac OS X 10.7 or # later (Darwin 11 and later) is required to have a 64-bit # processor. This is not true of the ARM version of Darwin # that Apple uses in portable devices. UNAME_PROCESSOR=x86_64 fi echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-*:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-*:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; NSX-*:NONSTOP_KERNEL:*:*) echo nsx-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = 386; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-${VENDOR}-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-${VENDOR}-tops10 exit ;; *:TENEX:*:*) echo pdp10-${VENDOR}-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-${VENDOR}-tops20 exit ;; *:ITS:*:*) echo pdp10-${VENDOR}-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-${VENDOR}-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-${VENDOR}-esx exit ;; amd64:Isilon\ OneFS:*:*) echo x86_64-${VENDOR}-onefs exit ;; esac cat >&2 </dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: ypbind-mt-2.7.2/THANKS0000644000175000017500000000101413772054670014167 0ustar frankiefrankieypbind-mt was originally written by Thorsten Kukuk . It would not be what it is today without the invaluable help of these people: Arnim Frithjof Brestrich brest@rumms.uni-mannheim.de Peter T. Breuer ptb@it.uc3m.es Loic Prylli Loic.Prylli@ens-lyon.fr Miquel von Smoorenburg Alex Larsson alexl@redhat.com Eskil Heyn Olsen eskil@neoteris.com Jim Carter jimc@math.ucla.edu Jeff Bastian jmbastia@ti.com Chris Barrera cbarrera@ti.com Mark Brown broonie@sirena.org.uk Saleem A. saleem@vmware.com ypbind-mt-2.7.2/config.rpath0000755000175000017500000004421613772054670015577 0ustar frankiefrankie#! /bin/sh # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # # Copyright 1996-2014 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld # should be set by the caller. # # The set of defined variables is at the end of this script. # Known limitations: # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer # than 256 bytes, otherwise the compiler driver will dump core. The only # known workaround is to choose shorter directory names for the build # directory and/or the installation directory. # All known linkers require a '.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a shrext=.so host="$1" host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # Code taken from libtool.m4's _LT_CC_BASENAME. for cc_temp in $CC""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` # Code taken from libtool.m4's _LT_COMPILER_PIC. wl= if test "$GCC" = yes; then wl='-Wl,' else case "$host_os" in aix*) wl='-Wl,' ;; mingw* | cygwin* | pw32* | os2* | cegcc*) ;; hpux9* | hpux10* | hpux11*) wl='-Wl,' ;; irix5* | irix6* | nonstopux*) wl='-Wl,' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in ecc*) wl='-Wl,' ;; icc* | ifort*) wl='-Wl,' ;; lf95*) wl='-Wl,' ;; nagfor*) wl='-Wl,-Wl,,' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) wl='-Wl,' ;; ccc*) wl='-Wl,' ;; xl* | bgxl* | bgf* | mpixl*) wl='-Wl,' ;; como) wl='-lopt=' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ F* | *Sun*Fortran*) wl= ;; *Sun\ C*) wl='-Wl,' ;; esac ;; esac ;; newsos6) ;; *nto* | *qnx*) ;; osf3* | osf4* | osf5*) wl='-Wl,' ;; rdos*) ;; solaris*) case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) wl='-Qoption ld ' ;; *) wl='-Wl,' ;; esac ;; sunos4*) wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3*) wl='-Wl,' ;; sysv4*MP*) ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) wl='-Wl,' ;; unicos*) wl='-Wl,' ;; uts4*) ;; esac fi # Code taken from libtool.m4's _LT_LINKER_SHLIBS. hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no case "$host_os" in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. # Unlike libtool, we use -rpath here, not --rpath, since the documented # option of GNU ld is called -rpath, not --rpath. hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' case "$host_os" in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no fi ;; amigaos*) case "$host_cpu" in powerpc) ;; m68k) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then : else ld_shlibs=no fi ;; haiku*) ;; interix[3-9]*) hardcode_direct=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; netbsd*) ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' else ld_shlibs=no fi ;; esac ;; sunos4*) hardcode_direct=yes ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then hardcode_libdir_flag_spec= fi else case "$host_os" in aix3*) # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac fi hardcode_direct=yes hardcode_libdir_separator=':' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac fi # Begin _LT_AC_SYS_LIBPATH_AIX. echo 'int main () { return 0; }' > conftest.c ${CC} ${LDFLAGS} conftest.c -o conftest aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` fi if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib" fi rm -f conftest.c conftest # End _LT_AC_SYS_LIBPATH_AIX. if test "$aix_use_runtimelinking" = yes; then hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' else hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" fi fi ;; amigaos*) case "$host_cpu" in powerpc) ;; m68k) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' libext=lib ;; darwin* | rhapsody*) hardcode_direct=no if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then : else ld_shlibs=no fi ;; dgux*) hardcode_libdir_flag_spec='-L$libdir' ;; freebsd2.[01]*) hardcode_direct=yes hardcode_minus_L=yes ;; freebsd* | dragonfly*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; hpux9*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; hpux10*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no ;; *) hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; netbsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; newsos6) hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then hardcode_libdir_flag_spec='${wl}-rpath,$libdir' else case "$host_os" in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) hardcode_libdir_flag_spec='-R$libdir' ;; *) hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; osf3*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) if test "$GCC" = yes; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else # Both cc and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) hardcode_libdir_flag_spec='-R$libdir' ;; sunos4*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes ;; sysv4) case $host_vendor in sni) hardcode_direct=yes # is this really true??? ;; siemens) hardcode_direct=no ;; motorola) hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac ;; sysv4.3*) ;; sysv4*MP*) if test -d /usr/nec; then ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) ;; sysv5* | sco3.2v5* | sco5v6*) hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' ;; uts4*) hardcode_libdir_flag_spec='-L$libdir' ;; *) ld_shlibs=no ;; esac fi # Check dynamic linker characteristics # Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER. # Unlike libtool.m4, here we don't care about _all_ names of the library, but # only about the one the linker finds when passed -lNAME. This is the last # element of library_names_spec in libtool.m4, or possibly two of them if the # linker has special search rules. library_names_spec= # the last element of library_names_spec in libtool.m4 libname_spec='lib$name' case "$host_os" in aix3*) library_names_spec='$libname.a' ;; aix[4-9]*) library_names_spec='$libname$shrext' ;; amigaos*) case "$host_cpu" in powerpc*) library_names_spec='$libname$shrext' ;; m68k) library_names_spec='$libname.a' ;; esac ;; beos*) library_names_spec='$libname$shrext' ;; bsdi[45]*) library_names_spec='$libname$shrext' ;; cygwin* | mingw* | pw32* | cegcc*) shrext=.dll library_names_spec='$libname.dll.a $libname.lib' ;; darwin* | rhapsody*) shrext=.dylib library_names_spec='$libname$shrext' ;; dgux*) library_names_spec='$libname$shrext' ;; freebsd[23].*) library_names_spec='$libname$shrext$versuffix' ;; freebsd* | dragonfly*) library_names_spec='$libname$shrext' ;; gnu*) library_names_spec='$libname$shrext' ;; haiku*) library_names_spec='$libname$shrext' ;; hpux9* | hpux10* | hpux11*) case $host_cpu in ia64*) shrext=.so ;; hppa*64*) shrext=.sl ;; *) shrext=.sl ;; esac library_names_spec='$libname$shrext' ;; interix[3-9]*) library_names_spec='$libname$shrext' ;; irix5* | irix6* | nonstopux*) library_names_spec='$libname$shrext' case "$host_os" in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; *) libsuff= shlibsuff= ;; esac ;; esac ;; linux*oldld* | linux*aout* | linux*coff*) ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) library_names_spec='$libname$shrext' ;; knetbsd*-gnu) library_names_spec='$libname$shrext' ;; netbsd*) library_names_spec='$libname$shrext' ;; newsos6) library_names_spec='$libname$shrext' ;; *nto* | *qnx*) library_names_spec='$libname$shrext' ;; openbsd*) library_names_spec='$libname$shrext$versuffix' ;; os2*) libname_spec='$name' shrext=.dll library_names_spec='$libname.a' ;; osf3* | osf4* | osf5*) library_names_spec='$libname$shrext' ;; rdos*) ;; solaris*) library_names_spec='$libname$shrext' ;; sunos4*) library_names_spec='$libname$shrext$versuffix' ;; sysv4 | sysv4.3*) library_names_spec='$libname$shrext' ;; sysv4*MP*) library_names_spec='$libname$shrext' ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) library_names_spec='$libname$shrext' ;; tpf*) library_names_spec='$libname$shrext' ;; uts4*) library_names_spec='$libname$shrext' ;; esac sed_quote_subst='s/\(["`$\\]\)/\\\1/g' escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` shlibext=`echo "$shrext" | sed -e 's,^\.,,'` escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' < ypbind 8 ypbind-mt ypbind NIS binding process ypbind -c -d -debug -verbose -n -forground -broadcast -broken-server -ypset -ypsetme -no-ping -f configfile -local-only -ping-interval ping-interval ypbind --version DESCRIPTION ypbind finds the server for NIS domains and maintains the NIS binding information. The client (normally the NIS routines in the standard C library) could get the information over RPC from ypbind or read the binding files. The binding files resides in the directory /var/yp/binding and are conventionally named [domainname].[version]. The supported versions are 1, 2 and 3. There could be several such files since it is possible for an NIS client to be bound to more than one domain. After a binding has been established, ypbind will send YPPROC_DOMAIN requests to the current NIS server at 5 minutes intervals. If it doesn't get an response or the NIS server reports that he doesn't have this domain any longer, ypbind will search for a new NIS server. You could tell ypbind to use network broadcasts to find a new server, what is insecure, or you could give it a list of known secure servers. In this case ypbind will send a ping to all servers in the order in which they are listed in the config file and use the first one which answers. Unless the option is used, ypbind detaches itself from the controlling terminal and puts itself into background. ypbind uses syslog3 for logging errors and warnings. At startup or when receiving signal SIGHUP, ypbind parses the file /etc/yp.conf and tries to use the entries for its initial binding. A broadcast entry in the configuration file will overwrite a ypserver/server entry and a ypserver/server entry broadcast. If all given server are down, ypbind will not switch to use broadcast. ypbind will try at first /etc/hosts and then DNS for resolving the hosts names from /etc/yp.conf. If ypbind couldn't reconfigure the search order, it will use only DNS. If DNS isn't available, you could only use IP-addresses in /etc/hosts. ypbind could only reconfigure the search order with glibc 2.x. If the option is specified, ypbind will ignore the configuration file. If the file does not exist or if there are no valid entries, ypbind exit. OPTIONS Send a broadcast to request the information needed to bind to a specific NIS server. With this option, /etc/yp.conf will be ignored. Allow root from any remote machine to change the binding for a domain via the ypset8 command. By default, no one can change the binding. This option is really insecure. If you change a binding for a domain, all the current known servers for this domain will be forgotten. If the new server goes down, ypbind will use the old searchlist. The same as , but only root on the local machine is allowed to change the binding. Such requests are only allowed from loopback. ypbind only checks if the config file has syntax errors and exits. , starts ypbind in debug mode. ypbind will not put itself into background, and error messages and debug output are written to standard error. , ypbind will not put itself into backgroun. , Causes ypbind to syslog(2) any and all changes in the server its bound to. Lets ypbind accept answers from servers running on an illegal port number. This should usually be avoided, but is required by some ypserv8 versions. ypbind will not check if the binding is alive. This option is for use with dialup connections to prevent ypbind from keeping the connection unnecessarily open or causing auto-dials. configfile ypbind will use configfile and not /etc/yp.conf ypbind will only bind to the loopback device and is not reachable from a remote network. , ping-interval The default value for ypbind to check, if a NIS server is still reachable, is 20 seconds. With this options another frequency in seconds can be specified. Prints the version number FILES /etc/yp.conf configuration file. /var/yp/binding/[domainname].[version] binding file containing information about each NIS domain. /var/run/ypbind.pid contains the process id of the currently running ypbind master process. SEE ALSO syslog3, domainname1, yp.conf5, ypdomainname8, ypwhich1, ypserv8, ypset8 AUTHOR ypbind-mt was written by Thorsten Kukuk <kukuk@thkukuk.de>. ypbind-mt-2.7.2/man/Makefile.am0000644000175000017500000000131413772054670016066 0ustar frankiefrankie# # Copyright (c) 1997, 1998, 1999, 2002, 2006 Thorsten Kukuk, Germany # # Author: Thorsten Kukuk # CLEANFILES = *~ ypbind.8 yp.conf.5 EXTRA_DIST = $(MANS) $(XMLS) man_MANS = ypbind.8 yp.conf.5 XMLS = ypbind.8.xml yp.conf.5.xml if ENABLE_REGENERATE_MAN yp.conf.5: yp.conf.5.xml $(XMLLINT) --nonet --xinclude --postvalid --noout $< $(XSLTPROC) -o $(srcdir)/$@ --path $(srcdir) --xinclude --nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< ypbind.8: ypbind.8.xml $(XMLLINT) --nonet --xinclude --postvalid --noout $< $(XSLTPROC) -o $(srcdir)/$@ --path $(srcdir) --xinclude --nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< endif ypbind-mt-2.7.2/man/yp.conf.5.xml0000644000175000017500000001033213772054670016273 0ustar frankiefrankie yp.conf 5 ypbind-mt yp.conf NIS binding configuration file DESCRIPTION The file /etc/yp.conf is read from ypbind8 at startup or when receiving signal SIGHUP. The entries are used for the initial binding. Valid entries are domain nisdomain server hostname Use server hostname for the domain nisdomain. You could have more then one entry of this type for a single domain. domain nisdomain broadcast Use broadcast on the local net for domain nisdomain. ypserver hostname Use server hostname for the local domain. broadcast If no other server is given or all of them are not reachable, try a broadcast call for the default domain to find a server. hostname can either be an IP address or the system's DNS name. If it is the system's DNS name, this name needs to be resolveable without the help of NIS, before NIS is used. If for a specific domain the broadcast option and fixed server are given, ypbind-mt tries at first the given servers before falling back to broadcasting for a running server. SEE ALSO ypbind8 AUTHOR ypbind-mt was written by Thorsten Kukuk <kukuk@thkukuk.de>. ypbind-mt-2.7.2/ABOUT-NLS0000644000175000017500000026713313772054670014523 0ustar frankiefrankie1 Notes on the Free Translation Project *************************************** Free software is going international! The Free Translation Project is a way to get maintainers of free software, translators, and users all together, so that free software will gradually become able to speak many languages. A few packages already provide translations for their messages. If you found this `ABOUT-NLS' file inside a distribution, you may assume that the distributed package does use GNU `gettext' internally, itself available at your nearest GNU archive site. But you do _not_ need to install GNU `gettext' prior to configuring, installing or using this package with messages translated. Installers will find here some useful hints. These notes also explain how users should proceed for getting the programs to use the available translations. They tell how people wanting to contribute and work on translations can contact the appropriate team. 1.1 INSTALL Matters =================== Some packages are "localizable" when properly installed; the programs they contain can be made to speak your own native language. Most such packages use GNU `gettext'. Other packages have their own ways to internationalization, predating GNU `gettext'. By default, this package will be installed to allow translation of messages. It will automatically detect whether the system already provides the GNU `gettext' functions. Installers may use special options at configuration time for changing the default behaviour. The command: ./configure --disable-nls will _totally_ disable translation of messages. When you already have GNU `gettext' installed on your system and run configure without an option for your new package, `configure' will probably detect the previously built and installed `libintl' library and will decide to use it. If not, you may have to to use the `--with-libintl-prefix' option to tell `configure' where to look for it. Internationalized packages usually have many `po/LL.po' files, where LL gives an ISO 639 two-letter code identifying the language. Unless translations have been forbidden at `configure' time by using the `--disable-nls' switch, all available translations are installed together with the package. However, the environment variable `LINGUAS' may be set, prior to configuration, to limit the installed set. `LINGUAS' should then contain a space separated list of two-letter codes, stating which languages are allowed. 1.2 Using This Package ====================== As a user, if your language has been installed for this package, you only have to set the `LANG' environment variable to the appropriate `LL_CC' combination. If you happen to have the `LC_ALL' or some other `LC_xxx' environment variables set, you should unset them before setting `LANG', otherwise the setting of `LANG' will not have the desired effect. Here `LL' is an ISO 639 two-letter language code, and `CC' is an ISO 3166 two-letter country code. For example, let's suppose that you speak German and live in Germany. At the shell prompt, merely execute `setenv LANG de_DE' (in `csh'), `export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). This can be done from your `.login' or `.profile' file, once and for all. You might think that the country code specification is redundant. But in fact, some languages have dialects in different countries. For example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The country code serves to distinguish the dialects. The locale naming convention of `LL_CC', with `LL' denoting the language and `CC' denoting the country, is the one use on systems based on GNU libc. On other systems, some variations of this scheme are used, such as `LL' or `LL_CC.ENCODING'. You can get the list of locales supported by your system for your language by running the command `locale -a | grep '^LL''. Not all programs have translations for all languages. By default, an English message is shown in place of a nonexistent translation. If you understand other languages, you can set up a priority list of languages. This is done through a different environment variable, called `LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' for the purpose of message handling, but you still need to have `LANG' set to the primary language; this is required by other parts of the system libraries. For example, some Swedish users who would rather read translations in German than English for when Swedish is not available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. Special advice for Norwegian users: The language code for Norwegian bokma*l changed from `no' to `nb' recently (in 2003). During the transition period, while some message catalogs for this language are installed under `nb' and some older ones under `no', it's recommended for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and older translations are used. In the `LANGUAGE' environment variable, but not in the `LANG' environment variable, `LL_CC' combinations can be abbreviated as `LL' to denote the language's main dialect. For example, `de' is equivalent to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' (Portuguese as spoken in Portugal) in this context. 1.3 Translating Teams ===================== For the Free Translation Project to be a success, we need interested people who like their own language and write it well, and who are also able to synergize with other translators speaking the same language. Each translation team has its own mailing list. The up-to-date list of teams can be found at the Free Translation Project's homepage, `http://translationproject.org/', in the "Teams" area. If you'd like to volunteer to _work_ at translating messages, you should become a member of the translating team for your own language. The subscribing address is _not_ the same as the list itself, it has `-request' appended. For example, speakers of Swedish can send a message to `sv-request@li.org', having this message body: subscribe Keep in mind that team members are expected to participate _actively_ in translations, or at solving translational difficulties, rather than merely lurking around. If your team does not exist yet and you want to start one, or if you are unsure about what to do or how to get started, please write to `coordinator@translationproject.org' to reach the coordinator for all translator teams. The English team is special. It works at improving and uniformizing the terminology in use. Proven linguistic skills are praised more than programming skills, here. 1.4 Available Packages ====================== Languages are not equally supported in all packages. The following matrix shows the current state of internationalization, as of June 2010. The matrix shows, in regard of each package, for which languages PO files have been submitted to translation coordination, with a translation percentage of at least 50%. Ready PO files af am an ar as ast az be be@latin bg bn_IN bs ca +--------------------------------------------------+ a2ps | [] [] | aegis | | ant-phone | | anubis | | aspell | [] [] | bash | | bfd | | bibshelf | [] | binutils | | bison | | bison-runtime | [] | bluez-pin | [] [] | bombono-dvd | | buzztard | | cflow | | clisp | | coreutils | [] [] | cpio | | cppi | | cpplib | [] | cryptsetup | | dfarc | | dialog | [] [] | dico | | diffutils | [] | dink | | doodle | | e2fsprogs | [] | enscript | [] | exif | | fetchmail | [] | findutils | [] | flex | [] | freedink | | gas | | gawk | [] [] | gcal | [] | gcc | | gettext-examples | [] [] [] [] | gettext-runtime | [] [] | gettext-tools | [] [] | gip | [] | gjay | | gliv | [] | glunarclock | [] [] | gnubiff | | gnucash | [] | gnuedu | | gnulib | | gnunet | | gnunet-gtk | | gnutls | | gold | | gpe-aerial | | gpe-beam | | gpe-bluetooth | | gpe-calendar | | gpe-clock | [] | gpe-conf | | gpe-contacts | | gpe-edit | | gpe-filemanager | | gpe-go | | gpe-login | | gpe-ownerinfo | [] | gpe-package | | gpe-sketchbook | | gpe-su | [] | gpe-taskmanager | [] | gpe-timesheet | [] | gpe-today | [] | gpe-todo | | gphoto2 | | gprof | [] | gpsdrive | | gramadoir | | grep | | grub | [] [] | gsasl | | gss | | gst-plugins-bad | [] | gst-plugins-base | [] | gst-plugins-good | [] | gst-plugins-ugly | [] | gstreamer | [] [] [] | gtick | | gtkam | [] | gtkorphan | [] | gtkspell | [] [] [] | gutenprint | | hello | [] | help2man | | hylafax | | idutils | | indent | [] [] | iso_15924 | | iso_3166 | [] [] [] [] [] [] [] | iso_3166_2 | | iso_4217 | | iso_639 | [] [] [] [] | iso_639_3 | | jwhois | | kbd | | keytouch | [] | keytouch-editor | | keytouch-keyboa... | [] | klavaro | [] | latrine | | ld | [] | leafpad | [] [] | libc | [] [] | libexif | () | libextractor | | libgnutls | | libgpewidget | | libgpg-error | | libgphoto2 | | libgphoto2_port | | libgsasl | | libiconv | [] | libidn | | lifelines | | liferea | [] [] | lilypond | | linkdr | [] | lordsawar | | lprng | | lynx | [] | m4 | | mailfromd | | mailutils | | make | | man-db | | man-db-manpages | | minicom | | mkisofs | | myserver | | nano | [] [] | opcodes | | parted | | pies | | popt | | psmisc | | pspp | [] | pwdutils | | radius | [] | recode | [] [] | rosegarden | | rpm | | rush | | sarg | | screem | | scrollkeeper | [] [] [] | sed | [] [] | sharutils | [] [] | shishi | | skencil | | solfege | | solfege-manual | | soundtracker | | sp | | sysstat | | tar | [] | texinfo | | tin | | unicode-han-tra... | | unicode-transla... | | util-linux-ng | [] | vice | | vmm | | vorbis-tools | | wastesedge | | wdiff | | wget | [] [] | wyslij-po | | xchat | [] [] [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] | +--------------------------------------------------+ af am an ar as ast az be be@latin bg bn_IN bs ca 6 0 1 2 3 19 1 10 3 28 3 1 38 crh cs da de el en en_GB en_ZA eo es et eu fa +-------------------------------------------------+ a2ps | [] [] [] [] [] [] [] | aegis | [] [] [] | ant-phone | [] () | anubis | [] [] | aspell | [] [] [] [] [] | bash | [] [] [] | bfd | [] | bibshelf | [] [] [] | binutils | [] | bison | [] [] | bison-runtime | [] [] [] [] | bluez-pin | [] [] [] [] [] [] | bombono-dvd | [] | buzztard | [] [] [] | cflow | [] [] | clisp | [] [] [] [] | coreutils | [] [] [] [] | cpio | | cppi | | cpplib | [] [] [] | cryptsetup | [] | dfarc | [] [] [] | dialog | [] [] [] [] [] | dico | | diffutils | [] [] [] [] [] [] | dink | [] [] [] | doodle | [] | e2fsprogs | [] [] [] | enscript | [] [] [] | exif | () [] [] | fetchmail | [] [] () [] [] [] | findutils | [] [] [] | flex | [] [] | freedink | [] [] [] | gas | [] | gawk | [] [] [] | gcal | [] | gcc | [] [] | gettext-examples | [] [] [] [] | gettext-runtime | [] [] [] [] | gettext-tools | [] [] [] | gip | [] [] [] [] | gjay | [] | gliv | [] [] [] | glunarclock | [] [] | gnubiff | () | gnucash | [] () () () () | gnuedu | [] [] | gnulib | [] [] | gnunet | | gnunet-gtk | [] | gnutls | [] [] | gold | [] | gpe-aerial | [] [] [] [] | gpe-beam | [] [] [] [] | gpe-bluetooth | [] [] | gpe-calendar | [] | gpe-clock | [] [] [] [] | gpe-conf | [] [] [] | gpe-contacts | [] [] [] | gpe-edit | [] [] | gpe-filemanager | [] [] [] | gpe-go | [] [] [] [] | gpe-login | [] [] | gpe-ownerinfo | [] [] [] [] | gpe-package | [] [] [] | gpe-sketchbook | [] [] [] [] | gpe-su | [] [] [] [] | gpe-taskmanager | [] [] [] [] | gpe-timesheet | [] [] [] [] | gpe-today | [] [] [] [] | gpe-todo | [] [] [] | gphoto2 | [] [] () [] [] [] | gprof | [] [] [] | gpsdrive | [] [] [] | gramadoir | [] [] [] | grep | [] | grub | [] [] | gsasl | [] | gss | | gst-plugins-bad | [] [] [] [] [] | gst-plugins-base | [] [] [] [] [] | gst-plugins-good | [] [] [] [] [] [] | gst-plugins-ugly | [] [] [] [] [] [] | gstreamer | [] [] [] [] [] | gtick | [] () [] | gtkam | [] [] () [] [] | gtkorphan | [] [] [] [] | gtkspell | [] [] [] [] [] [] [] | gutenprint | [] [] [] | hello | [] [] [] [] | help2man | [] | hylafax | [] [] | idutils | [] [] | indent | [] [] [] [] [] [] [] | iso_15924 | [] () [] [] | iso_3166 | [] [] [] [] () [] [] [] () | iso_3166_2 | () | iso_4217 | [] [] [] () [] [] | iso_639 | [] [] [] [] () [] [] | iso_639_3 | [] | jwhois | [] | kbd | [] [] [] [] [] | keytouch | [] [] | keytouch-editor | [] [] | keytouch-keyboa... | [] | klavaro | [] [] [] [] | latrine | [] () | ld | [] [] | leafpad | [] [] [] [] [] [] | libc | [] [] [] [] | libexif | [] [] () | libextractor | | libgnutls | [] | libgpewidget | [] [] | libgpg-error | [] [] | libgphoto2 | [] () | libgphoto2_port | [] () [] | libgsasl | | libiconv | [] [] [] [] [] | libidn | [] [] [] | lifelines | [] () | liferea | [] [] [] [] [] | lilypond | [] [] [] | linkdr | [] [] [] | lordsawar | [] | lprng | | lynx | [] [] [] [] | m4 | [] [] [] [] | mailfromd | | mailutils | [] | make | [] [] [] | man-db | | man-db-manpages | | minicom | [] [] [] [] | mkisofs | | myserver | | nano | [] [] [] | opcodes | [] [] | parted | [] [] | pies | | popt | [] [] [] [] [] | psmisc | [] [] [] | pspp | [] | pwdutils | [] | radius | [] | recode | [] [] [] [] [] [] | rosegarden | () () () | rpm | [] [] [] | rush | | sarg | | screem | | scrollkeeper | [] [] [] [] [] | sed | [] [] [] [] [] [] | sharutils | [] [] [] [] | shishi | | skencil | [] () [] | solfege | [] [] [] | solfege-manual | [] [] | soundtracker | [] [] [] | sp | [] | sysstat | [] [] [] | tar | [] [] [] [] | texinfo | [] [] [] | tin | [] [] | unicode-han-tra... | | unicode-transla... | | util-linux-ng | [] [] [] [] | vice | () () | vmm | [] | vorbis-tools | [] [] | wastesedge | [] | wdiff | [] [] | wget | [] [] [] | wyslij-po | | xchat | [] [] [] [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] [] [] [] | +-------------------------------------------------+ crh cs da de el en en_GB en_ZA eo es et eu fa 5 64 105 117 18 1 8 0 28 89 18 19 0 fi fr ga gl gu he hi hr hu hy id is it ja ka kn +----------------------------------------------------+ a2ps | [] [] [] [] | aegis | [] [] | ant-phone | [] [] | anubis | [] [] [] [] | aspell | [] [] [] [] | bash | [] [] [] [] | bfd | [] [] [] | bibshelf | [] [] [] [] [] | binutils | [] [] [] | bison | [] [] [] [] | bison-runtime | [] [] [] [] [] [] | bluez-pin | [] [] [] [] [] [] [] [] | bombono-dvd | [] | buzztard | [] | cflow | [] [] [] | clisp | [] | coreutils | [] [] [] [] [] | cpio | [] [] [] [] | cppi | [] [] | cpplib | [] [] [] | cryptsetup | [] [] [] | dfarc | [] [] [] | dialog | [] [] [] [] [] [] [] | dico | | diffutils | [] [] [] [] [] [] [] [] [] | dink | [] | doodle | [] [] | e2fsprogs | [] [] | enscript | [] [] [] [] | exif | [] [] [] [] [] [] | fetchmail | [] [] [] [] | findutils | [] [] [] [] [] [] | flex | [] [] [] | freedink | [] [] [] | gas | [] [] | gawk | [] [] [] [] () [] | gcal | [] | gcc | [] | gettext-examples | [] [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] | gettext-tools | [] [] [] [] | gip | [] [] [] [] [] [] | gjay | [] | gliv | [] () | glunarclock | [] [] [] [] | gnubiff | () [] () | gnucash | () () () () () [] | gnuedu | [] [] | gnulib | [] [] [] [] [] [] | gnunet | | gnunet-gtk | [] | gnutls | [] [] | gold | [] [] | gpe-aerial | [] [] [] | gpe-beam | [] [] [] [] | gpe-bluetooth | [] [] [] [] | gpe-calendar | [] [] | gpe-clock | [] [] [] [] [] | gpe-conf | [] [] [] [] | gpe-contacts | [] [] [] [] | gpe-edit | [] [] [] | gpe-filemanager | [] [] [] [] | gpe-go | [] [] [] [] [] | gpe-login | [] [] [] | gpe-ownerinfo | [] [] [] [] [] | gpe-package | [] [] [] | gpe-sketchbook | [] [] [] [] | gpe-su | [] [] [] [] [] [] | gpe-taskmanager | [] [] [] [] [] | gpe-timesheet | [] [] [] [] [] | gpe-today | [] [] [] [] [] [] [] | gpe-todo | [] [] [] | gphoto2 | [] [] [] [] [] [] | gprof | [] [] [] [] | gpsdrive | [] [] [] | gramadoir | [] [] [] | grep | [] [] | grub | [] [] [] [] | gsasl | [] [] [] [] [] | gss | [] [] [] [] [] | gst-plugins-bad | [] [] [] [] [] [] | gst-plugins-base | [] [] [] [] [] [] | gst-plugins-good | [] [] [] [] [] [] | gst-plugins-ugly | [] [] [] [] [] [] | gstreamer | [] [] [] [] [] | gtick | [] [] [] [] [] | gtkam | [] [] [] [] [] | gtkorphan | [] [] [] | gtkspell | [] [] [] [] [] [] [] [] [] | gutenprint | [] [] [] [] | hello | [] [] [] | help2man | [] [] | hylafax | [] | idutils | [] [] [] [] [] [] | indent | [] [] [] [] [] [] [] [] | iso_15924 | [] () [] [] | iso_3166 | [] () [] [] [] [] [] [] [] [] [] [] | iso_3166_2 | () [] [] [] | iso_4217 | [] () [] [] [] [] | iso_639 | [] () [] [] [] [] [] [] [] | iso_639_3 | () [] [] | jwhois | [] [] [] [] [] | kbd | [] [] | keytouch | [] [] [] [] [] [] | keytouch-editor | [] [] [] [] [] | keytouch-keyboa... | [] [] [] [] [] | klavaro | [] [] | latrine | [] [] [] | ld | [] [] [] [] | leafpad | [] [] [] [] [] [] [] () | libc | [] [] [] [] [] | libexif | [] | libextractor | | libgnutls | [] [] | libgpewidget | [] [] [] [] | libgpg-error | [] [] | libgphoto2 | [] [] [] | libgphoto2_port | [] [] [] | libgsasl | [] [] [] [] [] | libiconv | [] [] [] [] [] [] | libidn | [] [] [] [] | lifelines | () | liferea | [] [] [] [] | lilypond | [] [] | linkdr | [] [] [] [] [] | lordsawar | | lprng | [] | lynx | [] [] [] [] [] | m4 | [] [] [] [] [] [] | mailfromd | | mailutils | [] [] | make | [] [] [] [] [] [] [] [] [] | man-db | [] [] | man-db-manpages | [] | minicom | [] [] [] [] [] | mkisofs | [] [] [] [] | myserver | | nano | [] [] [] [] [] [] | opcodes | [] [] [] [] | parted | [] [] [] [] | pies | | popt | [] [] [] [] [] [] [] [] [] | psmisc | [] [] [] | pspp | | pwdutils | [] [] | radius | [] [] | recode | [] [] [] [] [] [] [] [] | rosegarden | () () () () () | rpm | [] [] | rush | | sarg | [] | screem | [] [] | scrollkeeper | [] [] [] [] | sed | [] [] [] [] [] [] [] [] | sharutils | [] [] [] [] [] [] [] | shishi | [] | skencil | [] | solfege | [] [] [] [] | solfege-manual | [] [] | soundtracker | [] [] | sp | [] () | sysstat | [] [] [] [] [] | tar | [] [] [] [] [] [] [] | texinfo | [] [] [] [] | tin | [] | unicode-han-tra... | | unicode-transla... | [] [] | util-linux-ng | [] [] [] [] [] [] | vice | () () () | vmm | [] | vorbis-tools | [] | wastesedge | () () | wdiff | [] | wget | [] [] [] [] [] [] [] [] | wyslij-po | [] [] [] | xchat | [] [] [] [] [] [] [] [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] [] [] | +----------------------------------------------------+ fi fr ga gl gu he hi hr hu hy id is it ja ka kn 105 121 53 20 4 8 3 5 53 2 120 5 84 67 0 4 ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne +-----------------------------------------------+ a2ps | [] | aegis | | ant-phone | | anubis | [] [] | aspell | [] | bash | | bfd | | bibshelf | [] [] | binutils | | bison | [] | bison-runtime | [] [] [] [] [] | bluez-pin | [] [] [] [] [] | bombono-dvd | | buzztard | | cflow | | clisp | | coreutils | [] | cpio | | cppi | | cpplib | | cryptsetup | | dfarc | [] | dialog | [] [] [] [] [] | dico | | diffutils | [] [] | dink | | doodle | | e2fsprogs | | enscript | | exif | [] | fetchmail | | findutils | | flex | | freedink | [] | gas | | gawk | | gcal | | gcc | | gettext-examples | [] [] [] [] | gettext-runtime | [] | gettext-tools | [] | gip | [] [] | gjay | | gliv | | glunarclock | [] | gnubiff | | gnucash | () () () () | gnuedu | | gnulib | | gnunet | | gnunet-gtk | | gnutls | [] | gold | | gpe-aerial | [] | gpe-beam | [] | gpe-bluetooth | [] [] | gpe-calendar | [] | gpe-clock | [] [] [] [] [] | gpe-conf | [] [] | gpe-contacts | [] [] | gpe-edit | [] | gpe-filemanager | [] [] | gpe-go | [] [] [] | gpe-login | [] | gpe-ownerinfo | [] [] | gpe-package | [] [] | gpe-sketchbook | [] [] | gpe-su | [] [] [] [] [] [] | gpe-taskmanager | [] [] [] [] [] [] | gpe-timesheet | [] [] | gpe-today | [] [] [] [] | gpe-todo | [] [] | gphoto2 | | gprof | [] | gpsdrive | | gramadoir | | grep | | grub | | gsasl | | gss | | gst-plugins-bad | [] [] [] [] | gst-plugins-base | [] [] | gst-plugins-good | [] [] | gst-plugins-ugly | [] [] [] [] [] | gstreamer | | gtick | | gtkam | [] | gtkorphan | [] [] | gtkspell | [] [] [] [] [] [] [] | gutenprint | | hello | [] [] [] | help2man | | hylafax | | idutils | | indent | | iso_15924 | [] [] | iso_3166 | [] [] () [] [] [] [] [] | iso_3166_2 | | iso_4217 | [] [] | iso_639 | [] [] | iso_639_3 | [] | jwhois | [] | kbd | | keytouch | [] | keytouch-editor | [] | keytouch-keyboa... | [] | klavaro | [] | latrine | [] | ld | | leafpad | [] [] [] | libc | [] | libexif | | libextractor | | libgnutls | [] | libgpewidget | [] [] | libgpg-error | | libgphoto2 | | libgphoto2_port | | libgsasl | | libiconv | | libidn | | lifelines | | liferea | | lilypond | | linkdr | | lordsawar | | lprng | | lynx | | m4 | | mailfromd | | mailutils | | make | [] | man-db | | man-db-manpages | | minicom | [] | mkisofs | | myserver | | nano | [] [] | opcodes | | parted | | pies | | popt | [] [] [] | psmisc | | pspp | | pwdutils | | radius | | recode | | rosegarden | | rpm | | rush | | sarg | | screem | | scrollkeeper | [] [] | sed | | sharutils | | shishi | | skencil | | solfege | [] | solfege-manual | | soundtracker | | sp | | sysstat | [] | tar | [] | texinfo | [] | tin | | unicode-han-tra... | | unicode-transla... | | util-linux-ng | | vice | | vmm | | vorbis-tools | | wastesedge | | wdiff | | wget | [] | wyslij-po | | xchat | [] [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] | +-----------------------------------------------+ ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne 20 5 10 1 13 48 4 2 2 4 24 10 20 3 1 nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr +---------------------------------------------------+ a2ps | [] [] [] [] [] [] [] [] | aegis | [] [] [] | ant-phone | [] [] | anubis | [] [] [] | aspell | [] [] [] [] [] | bash | [] [] | bfd | [] | bibshelf | [] [] | binutils | [] [] | bison | [] [] [] | bison-runtime | [] [] [] [] [] [] [] | bluez-pin | [] [] [] [] [] [] [] [] | bombono-dvd | [] () | buzztard | [] [] | cflow | [] | clisp | [] [] | coreutils | [] [] [] [] [] [] | cpio | [] [] [] | cppi | [] | cpplib | [] | cryptsetup | [] | dfarc | [] | dialog | [] [] [] [] | dico | [] | diffutils | [] [] [] [] [] [] | dink | () | doodle | [] [] | e2fsprogs | [] [] | enscript | [] [] [] [] [] | exif | [] [] [] () [] | fetchmail | [] [] [] [] | findutils | [] [] [] [] [] | flex | [] [] [] [] [] | freedink | [] [] | gas | | gawk | [] [] [] [] | gcal | | gcc | [] | gettext-examples | [] [] [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] [] [] [] | gettext-tools | [] [] [] [] [] [] | gip | [] [] [] [] [] | gjay | | gliv | [] [] [] [] [] [] | glunarclock | [] [] [] [] [] | gnubiff | [] () | gnucash | [] () () () | gnuedu | [] | gnulib | [] [] [] [] | gnunet | | gnunet-gtk | | gnutls | [] [] | gold | | gpe-aerial | [] [] [] [] [] [] [] | gpe-beam | [] [] [] [] [] [] [] | gpe-bluetooth | [] [] | gpe-calendar | [] [] [] [] | gpe-clock | [] [] [] [] [] [] [] [] | gpe-conf | [] [] [] [] [] [] [] | gpe-contacts | [] [] [] [] [] | gpe-edit | [] [] [] | gpe-filemanager | [] [] [] | gpe-go | [] [] [] [] [] [] [] [] | gpe-login | [] [] | gpe-ownerinfo | [] [] [] [] [] [] [] [] | gpe-package | [] [] | gpe-sketchbook | [] [] [] [] [] [] [] | gpe-su | [] [] [] [] [] [] [] [] | gpe-taskmanager | [] [] [] [] [] [] [] [] | gpe-timesheet | [] [] [] [] [] [] [] [] | gpe-today | [] [] [] [] [] [] [] [] | gpe-todo | [] [] [] [] [] | gphoto2 | [] [] [] [] [] [] [] [] | gprof | [] [] [] | gpsdrive | [] [] | gramadoir | [] [] | grep | [] [] [] [] | grub | [] [] [] | gsasl | [] [] [] [] | gss | [] [] [] | gst-plugins-bad | [] [] [] [] [] [] | gst-plugins-base | [] [] [] [] [] | gst-plugins-good | [] [] [] [] [] | gst-plugins-ugly | [] [] [] [] [] [] | gstreamer | [] [] [] [] [] | gtick | [] [] [] | gtkam | [] [] [] [] [] [] | gtkorphan | [] | gtkspell | [] [] [] [] [] [] [] [] [] [] | gutenprint | [] [] | hello | [] [] [] [] | help2man | [] [] | hylafax | [] | idutils | [] [] [] [] [] | indent | [] [] [] [] [] [] [] | iso_15924 | [] [] [] [] | iso_3166 | [] [] [] [] [] () [] [] [] [] [] [] [] [] | iso_3166_2 | [] [] [] | iso_4217 | [] [] [] [] [] [] [] [] | iso_639 | [] [] [] [] [] [] [] [] [] | iso_639_3 | [] [] | jwhois | [] [] [] [] | kbd | [] [] [] | keytouch | [] [] [] | keytouch-editor | [] [] [] | keytouch-keyboa... | [] [] [] | klavaro | [] [] | latrine | [] [] | ld | | leafpad | [] [] [] [] [] [] [] [] [] | libc | [] [] [] [] | libexif | [] [] () [] | libextractor | | libgnutls | [] [] | libgpewidget | [] [] [] | libgpg-error | [] [] | libgphoto2 | [] [] | libgphoto2_port | [] [] [] [] [] | libgsasl | [] [] [] [] [] | libiconv | [] [] [] [] [] | libidn | [] [] | lifelines | [] [] | liferea | [] [] [] [] [] () () [] | lilypond | [] | linkdr | [] [] [] | lordsawar | | lprng | [] | lynx | [] [] [] | m4 | [] [] [] [] [] | mailfromd | [] | mailutils | [] | make | [] [] [] [] | man-db | [] [] [] | man-db-manpages | [] [] [] | minicom | [] [] [] [] | mkisofs | [] [] [] | myserver | | nano | [] [] [] [] | opcodes | [] [] | parted | [] [] [] [] | pies | [] | popt | [] [] [] [] | psmisc | [] [] [] | pspp | [] [] | pwdutils | [] | radius | [] [] [] | recode | [] [] [] [] [] [] [] [] | rosegarden | () () | rpm | [] [] [] | rush | [] [] | sarg | | screem | | scrollkeeper | [] [] [] [] [] [] [] [] | sed | [] [] [] [] [] [] [] [] [] | sharutils | [] [] [] [] | shishi | [] | skencil | [] [] | solfege | [] [] [] [] | solfege-manual | [] [] [] | soundtracker | [] | sp | | sysstat | [] [] [] [] | tar | [] [] [] [] | texinfo | [] [] [] [] | tin | [] | unicode-han-tra... | | unicode-transla... | | util-linux-ng | [] [] [] [] [] | vice | [] | vmm | [] | vorbis-tools | [] [] | wastesedge | [] | wdiff | [] [] | wget | [] [] [] [] [] [] [] | wyslij-po | [] [] [] | xchat | [] [] [] [] [] [] [] [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] | +---------------------------------------------------+ nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr 135 10 4 7 105 1 29 62 47 91 3 54 46 9 37 sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW +---------------------------------------------------+ a2ps | [] [] [] [] [] | 27 aegis | [] | 9 ant-phone | [] [] [] [] | 9 anubis | [] [] [] [] | 15 aspell | [] [] [] | 20 bash | [] [] [] | 12 bfd | [] | 6 bibshelf | [] [] [] | 16 binutils | [] [] | 8 bison | [] [] | 12 bison-runtime | [] [] [] [] [] [] | 29 bluez-pin | [] [] [] [] [] [] [] [] | 37 bombono-dvd | [] | 4 buzztard | [] | 7 cflow | [] [] [] | 9 clisp | | 10 coreutils | [] [] [] [] | 22 cpio | [] [] [] [] [] [] | 13 cppi | [] [] | 5 cpplib | [] [] [] [] [] [] | 14 cryptsetup | [] [] | 7 dfarc | [] | 9 dialog | [] [] [] [] [] [] [] | 30 dico | [] | 2 diffutils | [] [] [] [] [] [] | 30 dink | | 4 doodle | [] [] | 7 e2fsprogs | [] [] [] | 11 enscript | [] [] [] [] | 17 exif | [] [] [] | 16 fetchmail | [] [] [] | 17 findutils | [] [] [] [] [] | 20 flex | [] [] [] [] | 15 freedink | [] | 10 gas | [] | 4 gawk | [] [] [] [] | 18 gcal | [] [] | 5 gcc | [] [] [] | 7 gettext-examples | [] [] [] [] [] [] [] | 34 gettext-runtime | [] [] [] [] [] [] [] | 29 gettext-tools | [] [] [] [] [] [] | 22 gip | [] [] [] [] | 22 gjay | [] | 3 gliv | [] [] [] | 14 glunarclock | [] [] [] [] [] | 19 gnubiff | [] [] | 4 gnucash | () [] () [] () | 10 gnuedu | [] [] | 7 gnulib | [] [] [] [] | 16 gnunet | [] | 1 gnunet-gtk | [] [] [] | 5 gnutls | [] [] [] | 10 gold | [] | 4 gpe-aerial | [] [] [] | 18 gpe-beam | [] [] [] | 19 gpe-bluetooth | [] [] [] | 13 gpe-calendar | [] [] [] [] | 12 gpe-clock | [] [] [] [] [] | 28 gpe-conf | [] [] [] [] | 20 gpe-contacts | [] [] [] | 17 gpe-edit | [] [] [] | 12 gpe-filemanager | [] [] [] [] | 16 gpe-go | [] [] [] [] [] | 25 gpe-login | [] [] [] | 11 gpe-ownerinfo | [] [] [] [] [] | 25 gpe-package | [] [] [] | 13 gpe-sketchbook | [] [] [] | 20 gpe-su | [] [] [] [] [] | 30 gpe-taskmanager | [] [] [] [] [] | 29 gpe-timesheet | [] [] [] [] [] | 25 gpe-today | [] [] [] [] [] [] | 30 gpe-todo | [] [] [] [] | 17 gphoto2 | [] [] [] [] [] | 24 gprof | [] [] [] | 15 gpsdrive | [] [] [] | 11 gramadoir | [] [] [] | 11 grep | [] [] [] | 10 grub | [] [] [] | 14 gsasl | [] [] [] [] | 14 gss | [] [] [] | 11 gst-plugins-bad | [] [] [] [] | 26 gst-plugins-base | [] [] [] [] [] | 24 gst-plugins-good | [] [] [] [] | 24 gst-plugins-ugly | [] [] [] [] [] | 29 gstreamer | [] [] [] [] | 22 gtick | [] [] [] | 13 gtkam | [] [] [] | 20 gtkorphan | [] [] [] | 14 gtkspell | [] [] [] [] [] [] [] [] [] | 45 gutenprint | [] | 10 hello | [] [] [] [] [] [] | 21 help2man | [] [] | 7 hylafax | [] | 5 idutils | [] [] [] [] | 17 indent | [] [] [] [] [] [] | 30 iso_15924 | () [] () [] [] | 16 iso_3166 | [] [] () [] [] () [] [] [] () | 53 iso_3166_2 | () [] () [] | 9 iso_4217 | [] () [] [] () [] [] | 26 iso_639 | [] [] [] () [] () [] [] [] [] | 38 iso_639_3 | [] () | 8 jwhois | [] [] [] [] [] | 16 kbd | [] [] [] [] [] | 15 keytouch | [] [] [] | 16 keytouch-editor | [] [] [] | 14 keytouch-keyboa... | [] [] [] | 14 klavaro | [] | 11 latrine | [] [] [] | 10 ld | [] [] [] [] | 11 leafpad | [] [] [] [] [] [] | 33 libc | [] [] [] [] [] | 21 libexif | [] () | 7 libextractor | [] | 1 libgnutls | [] [] [] | 9 libgpewidget | [] [] [] | 14 libgpg-error | [] [] [] | 9 libgphoto2 | [] [] | 8 libgphoto2_port | [] [] [] [] | 14 libgsasl | [] [] [] | 13 libiconv | [] [] [] [] | 21 libidn | () [] [] | 11 lifelines | [] | 4 liferea | [] [] [] | 21 lilypond | [] | 7 linkdr | [] [] [] [] [] | 17 lordsawar | | 1 lprng | [] | 3 lynx | [] [] [] [] | 17 m4 | [] [] [] [] | 19 mailfromd | [] [] | 3 mailutils | [] | 5 make | [] [] [] [] | 21 man-db | [] [] [] | 8 man-db-manpages | | 4 minicom | [] [] | 16 mkisofs | [] [] | 9 myserver | | 0 nano | [] [] [] [] | 21 opcodes | [] [] [] | 11 parted | [] [] [] [] [] | 15 pies | [] [] | 3 popt | [] [] [] [] [] [] | 27 psmisc | [] [] | 11 pspp | | 4 pwdutils | [] [] | 6 radius | [] [] | 9 recode | [] [] [] [] | 28 rosegarden | () | 0 rpm | [] [] [] | 11 rush | [] [] | 4 sarg | | 1 screem | [] | 3 scrollkeeper | [] [] [] [] [] | 27 sed | [] [] [] [] [] | 30 sharutils | [] [] [] [] [] | 22 shishi | [] | 3 skencil | [] [] | 7 solfege | [] [] [] [] | 16 solfege-manual | [] | 8 soundtracker | [] [] [] | 9 sp | [] | 3 sysstat | [] [] | 15 tar | [] [] [] [] [] [] | 23 texinfo | [] [] [] [] [] | 17 tin | | 4 unicode-han-tra... | | 0 unicode-transla... | | 2 util-linux-ng | [] [] [] [] | 20 vice | () () | 1 vmm | [] | 4 vorbis-tools | [] | 6 wastesedge | | 2 wdiff | [] [] | 7 wget | [] [] [] [] [] | 26 wyslij-po | [] [] | 8 xchat | [] [] [] [] [] [] | 36 xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] | 63 xkeyboard-config | [] [] [] | 22 +---------------------------------------------------+ 85 teams sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW 178 domains 119 1 3 3 0 10 65 51 155 17 98 7 41 2618 Some counters in the preceding matrix are higher than the number of visible blocks let us expect. This is because a few extra PO files are used for implementing regional variants of languages, or language dialects. For a PO file in the matrix above to be effective, the package to which it applies should also have been internationalized and distributed as such by its maintainer. There might be an observable lag between the mere existence a PO file and its wide availability in a distribution. If June 2010 seems to be old, you may fetch a more recent copy of this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date matrix with full percentage details can be found at `http://translationproject.org/extra/matrix.html'. 1.5 Using `gettext' in new packages =================================== If you are writing a freely available program and want to internationalize it you are welcome to use GNU `gettext' in your package. Of course you have to respect the GNU Library General Public License which covers the use of the GNU `gettext' library. This means in particular that even non-free programs can use `libintl' as a shared library, whereas only free software can use `libintl' as a static library or use modified versions of `libintl'. Once the sources are changed appropriately and the setup can handle the use of `gettext' the only thing missing are the translations. The Free Translation Project is also available for packages which are not developed inside the GNU project. Therefore the information given above applies also for every other Free Software Project. Contact `coordinator@translationproject.org' to make the `.pot' files available to the translation teams. ypbind-mt-2.7.2/COPYING0000644000175000017500000004310313772054670014314 0ustar frankiefrankie GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. ypbind-mt-2.7.2/NEWS0000644000175000017500000001106113772054670013756 0ustar frankiefrankieypbind-mt NEWS -- history of user-visible changes. Copyright (C) 1998-2020 Thorsten Kukuk Please send bug reports, questions and suggestions to . Version 2.7.2 * Use /run/netconfig/yp.conf Version 2.7.1 * Strip down /etc/sysconfig/ypbind Version 2.7.0 * Try /run/yp.conf if /etc/yp.conf does not exist Version 2.6.1 * Check if libc already provides gettid() Version 2.6 * Fix crash of ypbind on reload Version 2.5 * Enhance yp.conf documentation about resolving hostnames Version 2.4 * Fix broadcast for new NIS server Version 2.3 * Use libnsl and not libnis Version 2.2 * Fix handling if servers are not reacheable or ports have changed Version 2.1 * ypbind: shorten some timeouts * remove references to old DBUS support Version 2.0 * Remove SLP support * Disable NetworkManager/DBUS support * Link against libtirpc * Listen to IPv6 connections, too * Fully support ypbind version 3 protocol Version 1.38 * Use pkg-config in configure script Version 1.37.2 * Add support for systemd >= 209 Version 1.37.1 * Revert sysconfig/ypbind changes Version 1.37 * Some bug fixes * New -rebind_interval option * Systemd support integrated * Simplify sysconfig/ypbind Version 1.36 * Adjust for updated NetworkManager Version 1.35 * Fix problem with bindingfile handling Version 1.34 * Add -forground option Version 1.33 * Better error checking Version 1.32 * Fix problems with SLP registration Version 1.31 * Fix broadcast option Version 1.30 * DBUS/NetworkManager is per default not compiled in any longer * Adjust for current NetworkManager Version 1.29.91 * Minor bug fixes Version 1.29.90 * Don't cache connection to NIS server any longer, create new one for every check. Version 1.23.1 * Fix compiling without DBUS/NetworkManager support Version 1.23 * Improvements for NetworkManager support Version 1.22 * Only write binding files if they really changed Version 1.21 * Add -verbose option * Fix typo in option handling Version 1.20.5 * Small bug fix Version 1.20.4 * Small bug fixes * Add swedish translation Version 1.20.3 * Add checks if NetworkManager headers are installed Version 1.20.2 * Fix ignore SIGPIPE patch * Assume network is available if no DBUS is running Version 1.20.1 * Ignore SIGPIPE Version 1.20 * Add DBUS/NetworkManager support Version 1.19.1 * Fix crash if debug mode is enabled Version 1.19 * Fix some races when searching for hosts running ypserv Version 1.18 * Add -ping-interval option * Document all ypbind options in ypbind.8 Version 1.17.3 * Fix SLP URL parsing ersion 1.17.2 * Change SLP server URL to service:ypserv Version 1.17.1 * Fix compilation on IA64 Version 1.17 * Add SLP support * Minor bug fixes Version 1.16 * Make ypbind more robust Version 1.15 * Allow -local-only and -p at the same time Version 1.14 * Update binding file if ypset was called Version 1.13 * Fix possible memory corruption if broadcast is used in /etc/yp.conf Version 1.12 * Add new "broadcast" option to /etc/yp.conf Version 1.11 * Use new gettext, autoconf and automake * Fix deadlock if a host in /etc/yp.conf does not exists * Rewrote the yp.conf syntax check option to find more errors * If fixed server and broadcast is given, try at first given servers and use broadcast as fallback Version 1.10 * New gettext version to fix locale problems Version 1.9 * Fix problems with locking * Fix problems with domain bounding errors * Create pid file with pid of signal handler thread * Fix protocol V1 domainname handling Version 1.8 * Makefile fixes * Protocol V1 fixes * Minor bug fixes Version 1.7 * Fix missing syslog format string * Don't use malloc.h, will fail on *BSD systems Version 1.6 * Use glibc 2.1.2 interface for reentrant functions * Fix naming of options * Give away controlling tty Version 1.5 * Ignore pidfile, if there is no file locking over NFS * Check all 15 minutes if the current binding is the fastest Version 1.4 * Add fixes for 64bit machines * Fix compiler warnings Version 1.3 * Add -c option for checking config file for syntax errors * Bug fixes Version 1.2 * Save current host list if ypset is used. Now we use the old configuration if the ypset host goes down * If ypproc_domain is called, search a new server if domain is unbound * Fix a lot of bugs Version 1.1 * With Linux Kernel 2.1.90 or later, use file locking for the pid file * Port it to Solaris 2.6/2.5.1/2.5 * Port it to Linux with libc5 Version 1.0 * First public release * Fix some more bugs * Send ping to all server and use this one which answered at first Version 0.91 * Second beta release * ypset now works * Fix a lot of bugs Version 0.90 * First beta release ypbind-mt-2.7.2/config.h.in0000644000175000017500000000647213772054670015314 0ustar frankiefrankie/* config.h.in. Generated from configure.ac by autoheader. */ /* Define to 1 if translation of program messages to the user's native language is requested. */ #undef ENABLE_NLS /* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework. */ #undef HAVE_CFLOCALECOPYCURRENT /* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework. */ #undef HAVE_CFPREFERENCESCOPYAPPVALUE /* Define if the GNU dcgettext() function is already present or preinstalled. */ #undef HAVE_DCGETTEXT /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT /* Define to 1 if gettid() is available */ #undef HAVE_GETTID /* Define if you have the iconv() function and it works. */ #undef HAVE_ICONV /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `pthread' library (-lpthread). */ #undef HAVE_LIBPTHREAD /* Define to 1 if you have the `resolv' library (-lresolv). */ #undef HAVE_LIBRESOLV /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if TIRPC is available */ #undef HAVE_TIRPC /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the `__nss_configure_lookup' function. */ #undef HAVE___NSS_CONFIGURE_LOOKUP /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif /* Enable threading extensions on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif /* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ #endif /* Version number of package */ #undef VERSION /* Define to 1 if on MINIX. */ #undef _MINIX /* Define to 2 if the system does not provide POSIX.1 features except with this defined. */ #undef _POSIX_1_SOURCE /* Define to 1 if you need to in order for `stat' and other things to work. */ #undef _POSIX_SOURCE /* Define to empty if `const' does not conform to ANSI C. */ #undef const ypbind-mt-2.7.2/install-sh0000755000175000017500000001267113772054670015273 0ustar frankiefrankie#!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else : fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: chmodcmd="" else instcmd=$mkdirprog fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then : else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else : fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else : fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else : fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else : fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 ypbind-mt-2.7.2/stamp-h.in0000644000175000017500000000001213772054670015152 0ustar frankiefrankietimestamp ypbind-mt-2.7.2/mkinstalldirs0000755000175000017500000000370413772054670016072 0ustar frankiefrankie#! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain errstatus=0 dirmode="" usage="\ Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." # process command line arguments while test $# -gt 0 ; do case $1 in -h | --help | --h*) # -h for help echo "$usage" 1>&2 exit 0 ;; -m) # -m PERM arg shift test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } dirmode=$1 shift ;; --) # stop option processing shift break ;; -*) # unknown option echo "$usage" 1>&2 exit 1 ;; *) # first non-opt arg break ;; esac done for file do if test -d "$file"; then shift else break fi done case $# in 0) exit 0 ;; esac case $dirmode in '') if mkdir -p -- . 2>/dev/null; then echo "mkdir -p -- $*" exec mkdir -p -- "$@" fi ;; *) if mkdir -m "$dirmode" -p -- . 2>/dev/null; then echo "mkdir -m $dirmode -p -- $*" exec mkdir -m "$dirmode" -p -- "$@" fi ;; esac for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case $pathcomp in -*) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr else if test ! -z "$dirmode"; then echo "chmod $dirmode $pathcomp" lasterr="" chmod "$dirmode" "$pathcomp" || lasterr=$? if test ! -z "$lasterr"; then errstatus=$lasterr fi fi fi fi pathcomp="$pathcomp/" done done exit $errstatus # Local Variables: # mode: shell-script # sh-indentation: 2 # End: # mkinstalldirs ends here ypbind-mt-2.7.2/Makefile.am0000644000175000017500000000047613772054670015323 0ustar frankiefrankie# # Copyright (c) 1998-2018 Thorsten Kukuk, Germany # # Author: Thorsten Kukuk # AUTOMAKE_OPTIONS = 1.6 gnits dist-xz # SUBDIRS = lib src man po CLEANFILES = *~ M4_FILES = EXTRA_DIST = config.rpath ChangeLog etc/yp.conf etc/ypbind.init \ etc/sysconfig.ypbind $(M4_FILES) ACLOCAL_AMFLAGS = -I m4 ypbind-mt-2.7.2/etc/0000755000175000017500000000000013772054670014033 5ustar frankiefrankieypbind-mt-2.7.2/etc/ypbind.init0000755000175000017500000001021613772054670016210 0ustar frankiefrankie#! /bin/sh # Copyright (c) 2004, 2008, 2009 Author: Thorsten Kukuk # # /etc/init.d/ypbind # # and symbolic its link # # /usr/sbin/rcypbind # # System startup script for the ypbind daemon # ### BEGIN INIT INFO # Provides: ypbind # Required-Start: $remote_fs $portmap # Required-Stop: $remote_fs $portmap # Should-Start: ypserv # Should-Stop: $null # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Short-Description: Start ypbind (necessary for a NIS client) # Description: ypbind finds the server for NIS domains and maintains # the NIS binding information. ### END INIT INFO YPBIND_BIN=/usr/sbin/ypbind test -x $YPBIND_BIN || { echo "$YPBIND_BIN not installed"; if [ "$1" = "stop" ]; then exit 0; else exit 5; fi; } YPBIND_CONFIG=/etc/sysconfig/ypbind test -r $YPBIND_CONFIG || { echo "$YPBIND_CONFIG not existing"; if [ "$1" = "stop" ]; then exit 0; else exit 6; fi; } # Read config . $YPBIND_CONFIG . /etc/rc.status # First reset status of this service rc_reset # Return values acc. to LSB for all commands but status: # 0 - success # 1 - misc error # 2 - invalid or excess args # 3 - unimplemented feature (e.g. reload) # 4 - insufficient privilege # 5 - program not installed # 6 - program not configured # # Note that starting an already running service, stopping # or restarting a not-running service as well as the restart # with force-reload (in case signalling is not supported) are # considered a success. case "$1" in start) echo -n "Starting ypbind" ## If we don't have a /etc/yp.conf file, skip starting of ## ypbind and return with "program not configured" ## if you add the -broadcast Option later, comment this out. if [ ! -f /etc/yp.conf -a "$YPBIND_BROADCAST" != "yes" ] ; then # Tell the user this has skipped echo -n " . . . . . . . . . . ${attn}/etc/yp.conf not found${norm}" rc_status -s # service is not configured rc_failed 6 rc_exit fi # evaluate the OPTIONS for ypbind-mt OPTIONS="" test "$YPBIND_VERBOSE" = "yes" && OPTIONS="-verbose $OPTIONS" test "$YPBIND_LOCAL_ONLY" = "yes" && OPTIONS="-local-only $OPTIONS" test "$YPBIND_BROADCAST" = "yes" && OPTIONS="-broadcast $OPTIONS" test "$YPBIND_BROKEN_SERVER" = "yes" && OPTIONS="-broken-server $OPTIONS" test "X$YPBIND_PING_INTERVAL" != "X" && OPTIONS="-ping-interval $YPBIND_PING_INTERVAL $OPTIONS" startproc $YPBIND_BIN $YPBIND_OPTIONS $OPTIONS RETVAL=$? if [ $? -eq 0 ]; then notfound=1 for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do ypwhich &>/dev/null && { notfound=0 ; break; }; echo -n " ." sleep 1; done if [ $notfound -eq 1 ]; then echo -n " ${warn}No NIS server found${norm}"; fi else rc_failed fi rc_status -v ;; stop) echo -n "Shutting down ypbind" killproc -TERM $YPBIND_BIN # Remove static data, else glibc will continue to use NIS rm -f /var/yp/binding/* /var/run/ypbind.pid rc_status -v ;; try-restart|condrestart) ## Do a restart only if the service was active before. ## Note: try-restart is now part of LSB (as of 1.9). ## RH has a similar command named condrestart. if test "$1" = "condrestart"; then echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}" fi $0 status if test $? = 0; then $0 restart else rc_reset # Not running is not a failure. fi rc_status ;; restart) $0 stop sleep 1 $0 start rc_status ;; force-reload) echo -n "Reload service ypbind" killproc -HUP $YPBIND_BIN rc_status -v ;; reload) echo -n "Reload service ypbind" killproc -HUP $YPBIND_BIN rc_status -v ;; status) echo -n "Checking for ypbind: " checkproc $YPBIND_BIN rc_status -v ;; probe) if [ /etc/yp.conf -nt /var/run/ypbind.pid ]; then echo reload elif [ $YPBIND_CONFIG -nt /var/run/ypbind.pid ]; then echo restart fi ;; *) echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}" exit 1 ;; esac rc_exit ypbind-mt-2.7.2/etc/yp.conf0000644000175000017500000000076513772054670015342 0ustar frankiefrankie# /etc/yp.conf - ypbind configuration file # Valid entries are # # domain NISDOMAIN server HOSTNAME # Use server HOSTNAME for the domain NISDOMAIN. # # domain NISDOMAIN broadcast # Use broadcast on the local net for domain NISDOMAIN # # ypserver HOSTNAME # Use server HOSTNAME for the local domain. The # IP-address of server must be listed in /etc/hosts. # # broadcast # If no server for the default domain is specified or # none of them is rechable, try a broadcast call to # find a server. # ypbind-mt-2.7.2/etc/sysconfig.ypbind0000644000175000017500000000041513772054670017246 0ustar frankiefrankie## Path: Network/NIS/NIS client ## Description: Configuration for ypbind ## Type: string ## Default: "" ## ServiceRestart: ypbind # # Extra options for ypbind. Here you can add options like "-ypset", # "-ypsetme" and "-broadcast". # YPBIND_OPTIONS="" ypbind-mt-2.7.2/README0000644000175000017500000000252513772054670014144 0ustar frankiefrankie This directory contains the version 2.x of ypbind-mt. ypbind-mt is free software. You can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. See the file COPYING for copying conditions. ypbind-mt is a complete new implementation of a NIS binding daemon for Linux. It has the following features: * Supports ypbind protocol V1, V2, V3. * IPv6 support (needs TI-RPC and libnsl! Else use old 1.x version). * Uses threads for better response. * Supports multiple domain bindings. * Supports a list of known secure NIS server (/etc/yp.conf) The following features against version 1.x were dropped: * Listen to DBUS/NetworkManager. * Use SLP to find a running ypserv WARNING: -------- If the system's DNS names are used in the NIS configuration, this hostnames needs to be resolveable without NIS before NIS is called. If NIS is used, the NIS clients need to query the NIS server to resolve the hostname of the NIS server, this is a classical infinite recursion and will only lead to a crash of the system. This worked with the old protocoll, since it did only allow one IPv4 address, so ypbind did use DNS (independent of what is configured in /etc/nsswitch.conf) to resolve the name and store the first IPv4 address. Thorsten Kukuk , June 2018 ypbind-mt-2.7.2/AUTHORS0000644000175000017500000000010713772054670014326 0ustar frankiefrankieAuthors of ypmake-mt: Thorsten Kukuk. First version of this package. ypbind-mt-2.7.2/ChangeLog0000644000175000017500000005513413772054670015042 0ustar frankiefrankie2016-03-02 Thorsten Kukuk * release version 2.4 2016-02-26 Thorsten Kukuk * src/serv_list.c (convert_v3_to_respv2): Log informal message, if we don't have an IPv4 address, but got a request for it. 2016-02-23 Thorsten Kukuk * src/serv_list.c (eachresult): Make sure server_name is never NULL. 2016-02-15 Thorsten Kukuk * release version 2.3 * lib/Makefile.am: Include ypbind3* sources and header file. * src/serv_list.c: Include ypbind3_binding.h. * src/ypbind_server.c: Likewise. * lib/host2ypbind3_binding.c: New. * lib/ypbind3_binding.h: New. * lib/ypbind3_binding_dup.c: New. * lib/ypbind3_binding_free.c: New. 2014-12-04 Thorsten Kukuk * release version 2.2 * src/serv_list.c: Fix problem that not reacheable servers will not be added to list, compare yp server address and port if that has changed. 2014-12-01 Thorsten Kukuk * release version 2.1 * man/ypbind.8.xml: Remove DBUS references. * etc/ypbind.init: Likewise. * etc/sysconfig.ypbind: Likewise. 2014-11-03 Thorsten Kukuk * src/serv_list.c: Replace clnt_create with clnt_create_timed. * release version 2.0 * Implement ypbind v3 protocol and IPv6 support. 2014-11-01 Thorsten Kukuk * src/ypbind_server.c: Change ipaddr/port output in debug output. * src/ypbind_svc.c: Likewise. * src/ypbind_server.c (ypbindproc_domain_3_svc): Disable hack, this could lead to a crash. 2014-10-21 Thorsten Kukuk * src/ypbind_server.c: Use svc_getrpccaller, check for IPv6 localhost addresses. * src/ypbind_svc.c: Use svc_getrpccaller. 2014-10-20 Thorsten Kukuk * configure.ac: Remove slp support, add tirpc check, disable parallel broadcast on all systems * src/Makefile.am: Remove SLP references, add tirpc support * man/yp.conf.5.xml: Remove SLP references * etc/ypbind.init: Likewise * src/ypbind_slp.c: Removed * src/ypbind-mt.c: Rewrote to use ti-rpc interfaces if available 2014-10-20 Thorsten Kukuk * release version 1.38 * configure.ac: Use pkg-config for systemd 2014-03-06 Thorsten Kukuk * release version 1.37.2 * configure.in: Add support for systemd >= 209 2013-11-06 Thorsten Kukuk * man/ypbind.8.xml: Enhance some options. 2013-04-09 Thorsten Kukuk * release version 1.37.1 * etc/sysconfig.ypbind: Revert last change, set DBUS to no by default. 2013-04-09 Thorsten Kukuk * release version 1.37 * src/ypbind-mt.c (sig_handler): Add SIGPIPE to sigs_to_catch. * man/ypbind.8.xml: Fix some typos, document -rebind-interval. * src/local.h: Add rebind_interval. * src/serv_list.c: Fix typos, add rebind_interval variable. * src/ypbind-mt.c (main): Add -rebind_interval option, tell systemd we are ready. * etc/sysconfig.ypbind: Remove most config options, can be specified all in the generic option. rebind_interval option and systemd integration are based on patches from Fedora. 2012-07-11 Thorsten Kukuk * release version 1.36 * src/ypbind_dbus_nm.c: Ignore dbus if bound to localhost. * src/local.h: Likewise. * src/serv_list.c: Likewise. * src/ypbind-mt.c: Likewise. * src/ypbind_dbus_nm.c (NM_DBUS_SIGNAL_STATE_CHANGED): Fix StateChanged define/value. Based on patches from Honza Horak . 2012-03-23 Thorsten Kukuk * release version 1.35 * src/ypbind_dbus_nm.c: Adjust to new NetworkManager [bnc#698030]. Patch by Jeff Mahoney . * src/serv_list.c (remove_bindingfile): make sure last.host is NULL. Based on patch from Honza Horak . 2011-08-31 Thorsten Kukuk * release version 1.34 * src/serv_list.c: Fix memcpy usage. Patch by Sebastian Koch . * src/ypbind-mt.c: Add -n/-forground option for systemd. * man/ypbind.8.xml: Document -n/-forground option. Based on patch by Honza Horak . 2011-08-31 Thorsten Kukuk * Adjust FSF address. Patch by Honza Horak 2011-04-29 Thorsten Kukuk * release version 1.33 * src/ypbind-mt.c (create_pidfile): return if no pidfile could be created. (main): Check if /dev/null could be opened. * src/serv_list.c (ping_all): Initialize found with 0. (ping_all): Check if we are inside the array. Based on patches from Honza Horak . 2010-07-07 Thorsten Kukuk * release version 1.32 * src/ypbind_dbus_nm.c: Fixed reporting Error adding match. Patch from Karel Klic . 2009-11-30 Thorsten Kukuk * release version 1.31 * src/serv_list.c (eachresult): Save addr and port of NIS server if we use broadcast. Patch from Olivier Thauvin . 2009-11-19 Thorsten Kukuk * release version 1.30 * configure.in: NetworkManager support is disabled by default, USE_BROADCAST is defined as 1 on kfreebsd (Debian #545970) * src/ypbind_dbus_nm.c: rename NM_DBUS_SIGNAL_STATE_CHANGE to NM_DBUS_VPN_SIGNAL_STATE_CHANGE. Patch from Karel Klic . * src/ypbind-mt.c (usage): remove -p option. 2009-06-19 Thorsten Kukuk * release version 1.29.91 * src/Makefile.am: Fix link order. * src/ypbind-mt.c (load_config): Fix counting of broken config lines. * src/ypbind-mt.c (portmapper_register): Don't free transp for tcp. 2009-05-29 Thorsten Kukuk * man/ypbind.8.xml: Fix typos. Reported by Mark Brown . 2009-05-20 Thorsten Kukuk * release version 1.29.90 * src/serv_list.c (test_bindings_once): directly do broadcast after 15 min. to find new fastest server if configured. 2009-05-19 Thorsten Kukuk * src/ypbind_svc.c: Log if we cannot decode arguments and try to free the current result. * src/ypbind-mt.c: Free transp. 2009-05-18 Thorsten Kukuk * src/serv_list.c: Don't cache connection to ypserv any longer. * src/ypbind-mt.c: Implement -log option. * src/ypbind_server.c: Add calls to write to log file. * src/log_msg.c: Add new function to write to log file. * src/log_msg.h: Add new prototypes for logging functions. 2009-04-28 Thorsten Kukuk * release version 1.23.1 * src/ypbind-mt.c (main): Fix last patch for the case that we have dbus support disabled by configure option. 2009-03-30 Thorsten Kukuk * release version 1.23 * src/ypbind-mt.c (main): Fix last patch for the case that we don't use NetworkManager and have already a network. * etc/ypbind.init: Don't initialise domainname, should be done by network scripts. Don't check for working ypbind if we use NetworkManager. 2009-03-30 Chris Burghart * src/ypbind_dbus_nm.c: Use always go_online(). * src/ypbind-mt.c: Add load_config_or_exit(). 2008-08-28 Thorsten Kukuk * release version 1.22 * src/serv_list.c: Only write binding file if there were really changes. Based on patch from Eric Sandeen . 2008-08-27 Thorsten Kukuk * etc/ypbind.init: Adjust init script to new openSUSE policy 2008-04-15 Thorsten Kukuk * release version 1.21 * etc/sysconfig.ypbind: New file. * etc/ypbind.init: Add dbus, ping-interval and verbose option, check for rpcbind and portmap. * src/serv_list.c: If verbose flag is given, print status changes about current bindings. Patch from Steve Dickson . * src/ypbind-mt.c: Likewise. * man/ypbind.8.xml: Likewise. * src/ypbind-mt.c (main): fix -ping_interval option check (reported from Jeff Bastian ), check return value of dup(). 2007-03-01 Thorsten Kukuk * release version 1.20.5 * src/serv_list.c (add_server): Fix array access above array bounds [bnc #247312]. 2007-02-19 Thorsten Kukuk * release version 1.20.4 2007-02-14 Thorsten Kukuk * po/sv.po: Add swedish translation from Daniel Nylander . 2006-10-20 Timo Hoenig * src/ypbind_dbus_nm.c: Do not close shared connection to the D-Bus system bus. 2006-10-04 Thorsten Kukuk * release version 1.20.3 * configure.in: Check for NetworkManager/NetworkManager.h * src/ypbind_dbus_nm.c: Define NetworkManager values ourself if no header file is present. 2006-10-04 Thorsten Kukuk * release version 1.20.2 * man/ypbind.8.xml: New, generate ypbind.8 from XML source. * man/yp.conf.5.xml: New, generate yp.conf.5 from XML source. * src/ypbind_dbus_nm.c (dbus_init): In error case, assume we are online (Reported by Mark Brown ). 2006-09-19 Thorsten Kukuk * src/ypbind-mt.c (main): Fix compiling without DBUS support. Reported by Peter Breitenlohner . 2006-09-15 Thorsten Kukuk * release version 1.20.1 * src/ypbind-mt.c: Fix last patch to ignore SIGPIPE. 2006-09-13 Thorsten Kukuk * release version 1.20 * man/ypbind.8.in: Document -no-dbus option. * src/ypbind-mt.c: Add -no-dbus option. Ignore SIGPIPE, patch from Mark Brown . * src/serv_list.c: Fix grammar issues. Patch from Mark Brown . 2006-08-29 Thorsten Kukuk * src/ypbind_dbus_nm.c (watch_dbus_nm): Tell main thread that dubs connection is initialized. * src/ypbind-mt.c (main): Wait that dbus connection is initialized. * src/local.h: Add prototypes. 2006-08-17 Thorsten Kukuk * configure.in: Check for dbus/glib2. * src/Makefile.am: Add ypbind_dbus_nm.c. * src/ypbind_dbus_nm.c: Add dbus/NetworkManager support. * src/ypbind-mt.c: Likewise. * src/serv_list.c: Likewise. * src/local.h: Likewise. 2005-11-28 Thorsten Kukuk * man/ypbind.8.in: Fix another typo. 2005-07-12 Thorsten Kukuk * man/ypbind.8.in: Fix typo. * man/yp.conf.5.in: Likewise. (Reported by Saleem A. ) 2005-07-03 Thorsten Kukuk * release version 1.19.1 * src/serv_list.c (test_bindings_once): Fix debug output. 2005-06-29 Thorsten Kukuk * release version 1.19 * src/serv_list.c (test_bindings_once): run the whole test with write lock. (find_domain): Rewrite for better error handling. 2005-05-30 Thorsten Kukuk * src/ypbind-mt.c (sig_handler): Check sigwait result for errors. 2005-05-27 Thorsten Kukuk * src/serv_list.c (ping_all): Add check for the case that the server answers, but refuses to allow a connection. (test_bindings_once): Add check if server is not known but should be for debugging. 2004-10-15 Thorsten Kukuk * release version 1.18 * man/ypbind.8.in: Document all options. * src/ypbind-mt.c (main): Add -ping-interval option. 2004-08-11 Thorsten Kukuk * man/ypbind.8.in: Lot of spelling improvements. 2004-04-29 Thorsten Kukuk * release version 1.17.3 2004-04-13 Mark Brown * src/ypbind_slp.c (query_slp): Improve extraction of the server hostname from URLs returned by the SLP library. 2004-02-14 Thorsten Kukuk * release version 1.17.2 * src/ypbind_slp.c (query_slp): Use service:ypserv as server url. 2004-02-13 Thorsten Kukuk * release version 1.17.1 * configure.in: Fix CFLAGS * release version 1.17 * etc/ypbind.init: Rework to match latest LSB changes. * src/ypbind-mt.c (load_config): Fix parsing of domain statements. Add new rule for SLP usage. * src/ypbind_slp.c (query_slp): New: use SLP to find ypserver. * src/serv_list.c (ping_all): Check if ypserv runs on a illegal port. * man/yp.conf.5.in: Document SLP support. * configure.in: Check for SLP support. 2004-01-14 Thorsten Kukuk * release version 1.16 * src/serv_list.c (test_binding): Split into test_binding() and test_binding_once(). * src/local.h: Add prototype for test_binding_once(). * src/ypbind_server.c (ypbindproc_domain): Call test_binding_once. Based on patch from Jeff Bastian . 2004-01-09 Thorsten Kukuk * release version 1.15 * man/ypbind.8: Document -local-only option. * src/ypbind-mt.c (main): Don't ignore -p on local bind. (Reported by Jim Carter ). * acinclude.m4: Fix for automake 1.8. 2003-12-09 Thorsten Kukuk * man/ypbind.8.in: Fix typo. 2003-08-24 Thorsten Kukuk * release version 1.14 * src/serv_list.c (change_binding): Update binding files, reported by David Nicklay . 2003-06-10 Thorsten Kukuk * release version 1.13 * src/Makefile.am: Use AM_CFLAGS instead of CFLAGS. * lib/Makefile.am: Likewise. * src/serv_list.c (do_broadcast): Lock list members while we wait for broadcast result. 2002-05-27 Thorsten Kukuk * release version 1.12 * etc/yp.conf: Add broadcast option to comments. * man/yp.conf.5.in: Document new broadcast option. * src/ypbind-mt.c (load_config): Add "broadcast" option to yp.conf. 2002-04-04 Thorsten Kukuk * release version 1.11 * man/yp.conf.5.in: Describe new behaviour if broadcast and specific servers are given. * src/serv_list.c: Try at first given server before fallback to broadcasting. (do_broadcast): Add debug messages * src/log_msg.c: define _GNU_SOURCE to get all glibc prototypes. * src/serv_list.c (add_server): Print to stderr if we make a syntax check only. * src/local.h: Add new argument for add_server prototype. * src/ypbind-mt.c: Rework syntax check for yp.conf (main): Call add_server with argument to check syntax only. (main): Add -local_only option (bind only to loopback address). Based on patch from Eskil Heyn Olsen . * man/yp.conf.5.in: Remove libc5 hints. * man/ypbind.8.in: Remove -p option. * man/Makefile.am: Fix rules to build manual pages. * configure.in: Create man/ypbind.8, man/yp.conf.5. 2002-04-04 gettextize * Makefile.am (SUBDIRS): Add m4. (SUBDIRS): Remove intl. (ACLOCAL_AMFLAGS): New variable. (EXTRA_DIST): Add config.rpath. * configure.in (AC_OUTPUT): Add m4/Makefile. (AC_OUTPUT): Remove intl/Makefile. 2002-04-04 Thorsten Kukuk * src/Makefile.am: Replace INTLLIBS with LIBINTL * acinclude.m4 (AM_WITH_EFENCE): Call AC_DEFINE for WITH_EFENCE with all three arguments. * configure.in: Replace LIBOBJS with AC_LIBOBJ, add all three arguments to HAVE_SOCKLEN_T AC_DEFINE. 2002-04-03 Thorsten Kukuk * src/local.h: Add new prototype for add_server. * src/serv_list.c (add_server): Add more debug messages in error case, remove dead code. * src/serv_list.c (add_server): Don't deadlock if host is not found (based on patch from Alex Larsson ). 2001-10-30 Thorsten Kukuk * release version 1.10 * Update to gettext 0.10.40 * man/ypbind.8.in: Fix typo, reported by Petter Reinholdtsen 2001-10-27 Thorsten Kukuk * release version 1.9 * src/ypbind_xdr.c (ypbind_xdr_olddomainname): Removed. * src/ypbind.h: Get ride of olddomainname type. * src/ypbind_server.c (ypbindproc_olddomain_1_svc): Change arguments to avoid RPC string pointer problems. * src/ypbind_svc.c (ypbindprog_1): Use type domainname instead of olddomainname. * configure.in: Remove quotes from AC_MSG_RESULT arguments 2001-10-10 Thorsten Kukuk * src/ypbind-mt.c: sig_handler now creates the pidfile, main thread waits until pid file is created. 2001-10-09 Thorsten Kukuk * src/serv_list.c (update_bindingfile): Make more robust, don't truncate old files before we have all data. 2001-08-14 Thorsten Kukuk * src/ypbind-mt.c (main): Call setlocale for LC_CTYPE, too. 2001-08-13 Thorsten Kukuk * src/serv_list.c (find_domain): Fix comment, get read lock back if we try a second time to find a active server. (test_bindings): Don't search for fastest server if current one is valid and set with ypset. (test_bindings): Don't invalidate old data before we have new data. 2001-03-11 Thorsten Kukuk * release version 1.8 * po/Makefile.in.in: Add DESTDIR support. * configure.in: Don't set CFLAGS, bump version number to 1.8, remove USE_PIDFILE variable. * ypbind-mt.spec: removed. * etc/ypbind.init: Update to a LSB ready version, still needs SuSEs /etc/rc.status. * config.sub: Update to newest version. * config.guess: Likewise. * src/Makefile.am: Remove USE_PIDFILE. * src/ypbind-mt.c: Remove USE_PIDFILE ifdefs, it is always set. * intl/Makefile.in (mostlyclean): Remove libintl.h. * intl/libgettext.h: Change #if to #ifdef for autoconf defines. * src/log_msg.c: Use caller supplied syslog priority 2000-11-24 Thorsten Kukuk * src/ypbind_svc.c (ypbindprog_1): domainname argument is a pointer. * src/serv_list.c (ping_all): Remove bogus break (patch by Miquel von Smoorenburg). 2000-09-25 Thorsten Kukuk * release version 1.7 * configure.in: Check for vsyslog * src/log_msg.c (log_msg): Fix missing syslog format string 1999-11-21 Thorsten Kukuk * src/serv_list.c: Use stdlib.h, not malloc.h. Some Unix have a broken malloc.h to tell the developer to use stdlib.h. * src/ypbind-mt.c: Likewise. * src/ypbind_svc.c: Likewise. 1999-10-05 Thorsten Kukuk * release version 1.6 1999-08-27 Thorsten Kukuk * src/ypbind_server.c: Mark unused parameters as unused. * src/ypbind-mt.c (sig_handler): Mark parameter as unused. * src/serv_list.c: Fix uninitialized variable, fix compiler warnings. 1999-08-04 Thorsten Kukuk * src/serv_list.c: gethostbyname_r/gethostbyaddr_r return code has changed in final POSIX standard. 1999-06-01 Thorsten Kukuk * src/ypbind-mt.c (main): lose controlling tty when daemonizing. allow -no_ping, -no-ping, -broken_server and -broken-server. * man/ypbind.8.in: Use -no-ping and -broken-server. 1999-05-18 Thorsten Kukuk * release version 1.5 * man/ypbind.8.in: Update entry of searching new server. * src/serv_list.c (test_bindings): Check every 15min. if we have the fastest NIS server. 1999-05-03 Thorsten Kukuk * src/ypbind-mt.c (create_pidfile): If no locking is available, don't exit. Hope the user knows what he is doing. 1999-05-01 Thorsten Kukuk * etc/ypbind.init: Change default values for checkconfig. Patch from Darrell Fuhriman . 1999-02-28 Thorsten Kukuk * src/serv_list.c (find_domain): Print messages only, if debug flag is set. 1998-11-11 Thorsten Kukuk * release version 1.4 * lib/clnt_udp.c: Include string.h, add prototype for _rpc_dtablesize. * src/ypbind-mt.c: Use size_t for buflen, fix compiler warnings. Based on patches from Loic Prylli * src/ypbind_server.c: Fix compiler warnings. 1998-10-09 Thorsten Kukuk * src/ypbind-mt.c (load_config): Check for more valid separators. 1998-07-01 Thorsten Kukuk * release version 1.3 * man/ypbind.8.in: Add description of -c parameter. * src/ypbind-mt.c (load_config): Add error message. (main): Better check for binding dir, add check option for yp.conf. 1998-06-07 Thorsten Kukuk * etc/ypbind.init: Remove binding dir entries after killing ypbind. 1998-05-24 Thorsten Kukuk * configure.in: Add efence support, fix for gettext 0.10.35, Fix check for broken kernel versions (2.1.1xx isn't broken). * acinclude.m4: New, macros for efence. 1998-04-28 Thorsten Kukuk * src/serv_list.c (add_server): Check if h_addr_list[0] is != NULL. Reportet by Arnim Frithjof Brestrich . 1998-04-20 Thorsten Kukuk * configure.in: Add dmalloc support. * acconfig.h: Add WITH_DMALLOC. * man/yp.conf.5.in: Fix Typo. * ypbind-mt.spec: Install yp.conf.5. 1998-04-19 Thorsten Kukuk * release version 1.2 * src/serv_list.c (find_domain): If doamin is unbound, try to find a new server. 1998-04-18 Thorsten Kukuk * configure.in: Create man/sedscript. 1998-04-17 Thorsten Kukuk * man/ypbind.8.in: Fix some more comments. * man/yp.conf.5.in: New. * src/serv_list.c: Save current status if ypset is used. 1998-04-02 Thorsten Kukuk * src/serv_list.c: Fix typos. 1998-04-01 Thorsten Kukuk * configure.in: check for socklen_t in . * acconfig.h: Add #undef HAVE_SOCKLEN_T. * lib/clnt_udp.c: Define socklen_t if not defined, fix multi-cast replay. * man/ypbind.8.in: Fix some comments. * src/serv_list.c: Code cleanup, use less memory. 1998-03-30 Thorsten Kukuk * release version 1.1 * src/serv_list.c: Add support for _dns_gethostbyname. * configure.in: Check for res_gethostbyname and _dns_gethostbyname. * lib/dummy.c: Remove. * lib/dns_hosts.c: New, from ypserv 1.3.0. * lib/res_options.h: New, from ypserv 1.3.0. * man/ypbind.8.in: Fix some stuff. 1998-03-27 Thorsten Kukuk * configure.in: Set USE_BROADCAST under Linux * src/Makefile.am Set USE_BROADCAST from configure script * src/serv_list.c (ping_all): Add a second version, which don't try to send a ping to all server at the same time. 1998-03-26 Thorsten Kukuk * configure.in: Check for Linux Kernel with thread/file locking bug * src/Makefile.am: Set USE_PIDFILE from configure script 1998-03-07 Thorsten Kukuk * release version 1.0 * src/serv_list.c: Replace ping_all, new version sends a ping to all server and uses this one which answers first. 1998-02-28 Thorsten Kukuk * release version 0.91 as second beta release * man/ypbind.8.man: Update -ypset option. * src/ypbind_server.c: Add support for ypset. * src/serv_list.c: Fix locking bugs, add setdom support. * src/ypbind-mt.c: Fix some bugs. 1998-02-27 Thorsten Kukuk * release version 0.90 as first beta release ypbind-mt-2.7.2/autogen.sh0000755000175000017500000000027713772054670015267 0ustar frankiefrankie#!/bin/sh -x rm -fv ltmain.sh config.sub config.guess config.h.in aclocal -I m4 autoheader #libtoolize --force --automake --copy automake --add-missing --copy autoreconf chmod 755 configure ypbind-mt-2.7.2/config.sub0000755000175000017500000010745413772054670015256 0ustar frankiefrankie#! /bin/sh # Configuration validation subroutine script. # Copyright 1992-2017 Free Software Foundation, Inc. timestamp='2017-04-02' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # Please send patches to . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright 1992-2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ kopensolaris*-gnu* | cloudabi*-eabi* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze*) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*178) os=-lynxos178 ;; -lynx*5) os=-lynxos5 ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arceb \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ | ba \ | be32 | be64 \ | bfin \ | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ | e2k | epiphany \ | fido | fr30 | frv | ft32 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia16 | ia64 \ | ip2k | iq2000 \ | k1om \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa32r6 | mipsisa32r6el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64r6 | mipsisa64r6el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ | open8 | or1k | or1knd | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pru \ | pyramid \ | riscv32 | riscv64 \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | visium \ | wasm32 \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; leon|leon[3-9]) basic_machine=sparc-$basic_machine ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xgate) basic_machine=$basic_machine-unknown os=-none ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | ba-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | e2k-* | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ | ip2k-* | iq2000-* \ | k1om-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | microblaze-* | microblazeel-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa32r6-* | mipsisa32r6el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64r6-* | mipsisa64r6el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipsr5900-* | mipsr5900el-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | or1k*-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pru-* \ | pyramid-* \ | riscv32-* | riscv64-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | visium-* \ | wasm32-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; asmjs) basic_machine=asmjs-unknown ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c54x-*) basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; e500v[12]) basic_machine=powerpc-unknown os=$os"spe" ;; e500v[12]-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` os=$os"spe" ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; leon-*|leon[3-9]-*) basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze*) basic_machine=microblaze-xilinx ;; mingw64) basic_machine=x86_64-pc os=-mingw64 ;; mingw32) basic_machine=i686-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; moxiebox) basic_machine=moxie-unknown os=-moxiebox ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i686-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; nsr-tandem) basic_machine=nsr-tandem ;; nsx-tandem) basic_machine=nsx-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos | rdos64) basic_machine=x86_64-pc os=-rdos ;; rdos32) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390) basic_machine=s390-ibm ;; s390-*) basic_machine=s390-`echo $basic_machine | sed 's/^[^-]*-//'` ;; s390x) basic_machine=s390x-ibm ;; s390x-*) basic_machine=s390x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; strongarm-* | thumb-*) basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tile*) basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; wasm32) basic_machine=wasm32-unknown ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* | -cloudabi* | -sortix* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -nacl*) ;; -ios) ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; c8051-*) os=-elf ;; hexagon-*) os=-elf ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; pru-*) os=-elf ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: ypbind-mt-2.7.2/lib/0000755000175000017500000000000013772054670014026 5ustar frankiefrankieypbind-mt-2.7.2/lib/res_options.h0000644000175000017500000001724413772054670016553 0ustar frankiefrankie/* options.h - specify the conditionally-compiled features * vix 28mar92 [moved out of the Makefile because they were getting too big] * * res_options.h,v 1.1 1995/05/01 05:06:43 hjl Exp */ /* * ++Copyright++ * - * Copyright (c) * The Regents of the University of California. 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. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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 (c) 1993 by Digital Equipment Corporation. * * 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, and that * the name of Digital Equipment Corporation not be used in advertising or * publicity pertaining to distribution of the document or software without * specific, written prior permission. * * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT * CORPORATION 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-- */ /* Key: * ucb = U C Berkeley 4.8.3 release * vix = Paul Vixie of Digital * del = Don Lewis of Harris * mcsun = Piet Beertema of EUNet * asp = Andrew Partan of UUNet * pma = Paul Albitz of Hewlett Packard * bb = Bryan Beecher of UMich * mpa = Mark Andrews of CSIRO - DMS * rossc = Ross Cartlidge of The Univeritsy of Sydney * mtr = Marshall Rose of TPC.INT * bg = Benoit Grange of INRIA * ckd = Christopher Davis of Kapor Enterprises * gns = Greg Shapiro of WPI */ #define DEBUG /* enable -d flag and SIGUSR[12] support (ucb) */ /*#define ALLOW_T_UNSPEC *//* enable the "unspec" RR type for old athena (ucb) */ /*#define INVQ *//* enable inverse queries (nslookup) (ucb/vix) */ /*#define DSTORAGE *//* debug malloc overruns using storage.o (ucb/vix) */ /*#define DMALLOC *//* trace malloc orphans using dmalloc.o (vix) */ #define XFRNETS /* enable "xfrnets" command in named.boot (vix) */ #define PID_FIX /* be careful about overwriting named.pid file (del) */ #define FWD_LOOP /* try to break out of forwarding loops (del) */ #define NO_GLUE /* don't accept or send out-of-zone glue (del) */ #define BOGUSNS /* detect bogus nameservers (mcsun) */ #define QRYLOG /* enable SIGWINCH for query logging (bb) */ /*#define YPKLUDGE *//* deal effectively with broken "ypserv -i" (mcsun) */ #define TRACEROOT /* trace bogus root servers and ignore them (pma,bb) */ /*#define LOCALDOM *//* permit "domain" directive in named.boot (ucb) */ #define FORCED_RELOAD /* refresh secondary zones on SIGHUP (pma) */ #define SLAVE_FORWARD /* use sensible timeouts on slave forwarders (pma) */ #define WANT_PIDFILE /* if you want the named.pid file (ucb/arc) */ #define DOTTED_SERIAL /* if you want to be able to specify dotted serial#s */ /*#define SENSIBLE_DOTS *//* if you want dotted serial#s to make numeric sense */ #define NCACHE /* negative caching (anant@isi.edu) */ /*#define VALIDATE *//* validation procedure (anant@isi.edu) (DO NOT USE!)*/ /*#define SHORT_FNAMES *//* file names used in named-xfer need to be short */ #define RESOLVSORT /* allow sorting of addresses in gethostbyname (mpa) */ #define STUBS /* allow transfers of NS only for a zone (mpa) */ #define LOGFAC LOG_DAEMON /* what syslog facility should named use? */ #define SECURE_ZONES /* if you want to inhibit world access to zones (gns)*/ #define ROUND_ROBIN /* rotate databuf list after each access (mtr) */ #define ADDAUTH /* return NS and glue w/ authorative answers (mpa) */ #define RFC1535 /* use RFC 1535 default for "search" list (vix) */ #define GEN_AXFR /* distinct zones within each class */ #define DATUMREFCNT /* use reference counts on datums (mpa) */ #define LAME_DELEGATION /* lame delegations (original-del,reworked-bb&del)*/ #define LAME_LOGGING LOG_WARNING /* log lame delegations, set log level */ #define GETSER_LOGGING LOG_INFO /* log errors/timeouts getting serial number */ /*#define RETURNSOA *//* good code that the world isn't ready for yet */ #define CLEANCACHE /* useful and necessary in the face of NCACHE */ #define PURGE_ZONE /* remove all traces of a zone when reloading (mpa) */ #define STATS /* keep nameserver statistics; uses more memory */ #define RENICE /* named-xfer should run at normal priority */ #define XSTATS /* extended statistics, syslogged periodically (bg) */ /*#define BIND_NOTIFY *//* experimental - do not enable in customer products */ /*#define LOC_RR *//* support for (draft) LOC record parsing (ckd) */ /*--------------------------------------------* * no user-servicable parts beyond this point * *--------------------------------------------*/ /* if DSTORAGE is defined, we need to disable DMALLOC and remap * malloc and free to storage.o's exported names. storage.o also * includes a calloc and a realloc, but once we drag in its malloc * and free we'll get the others automatically and so will never * pull in those routines from libc.a. */ #ifdef DSTORAGE # ifdef DMALLOC # undef DMALLOC # endif /*DMALLOC*/ # define malloc rt_malloc # define free rt_free #endif /*DSTORAGE*/ /* if DMALLOC is defined, grab the header file which will remap * all the malloc-style names to those exported by dmalloc.o. note * that DMALLOC also changes the function signatures of several * functions in private named source modules, and that this file * (options.h) must be included before any other private *.h files * since those *.h files have some conditional remapping to do. */ #ifdef DMALLOC # include "dmalloc.h" #endif /* systems with killall(1M) don't need this */ #ifdef __sgi # ifdef WANT_PIDFILE # undef WANT_PIDFILE # endif #endif #ifdef LAME_LOGGING # define LAME_DELEGATION #endif #if defined(XSTATS) && !defined(STATS) # define STATS #endif ypbind-mt-2.7.2/lib/ypbind3_binding.h0000644000175000017500000000174013772054670017243 0ustar frankiefrankie/* Copyright (C) 2016 Thorsten Kukuk Author: Thorsten Kukuk This library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License in version 2.1 as published by the Free Software Foundation. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _YPBIND3_BINDING_H_ #define _YPBIND3_BINDING_H_ extern struct ypbind3_binding *__host2ypbind3_binding (const char *__host); extern struct ypbind3_binding *__ypbind3_binding_dup (struct ypbind3_binding *__src); extern void __ypbind3_binding_free (struct ypbind3_binding *ypb); #endif /* _YPBIND3_BINDING_H_ */ ypbind-mt-2.7.2/lib/Makefile.am0000644000175000017500000000105013772054670016056 0ustar frankiefrankie# # Copyright (c) 1998, 1999, 2003 Thorsten Kukuk, Germany # # Author: Thorsten Kukuk # # Process this file with automake to produce Makefile.in. noinst_LIBRARIES = libcompat.a noinst_HEADERS = ypbind3_binding.h AM_CFLAGS = -D_REENTRANT=1 @WARNFLAGS@ AM_CPPFLAGS = -I$(srcdir) @TIRPC_CFLAGS@ @NSL_CFLAGS@ -DLOCALEDIR=\"$(localedir)\" libcompat_a_SOURCES = dns_hosts.c res_options.h ypbind3_binding_dup.c \ ypbind3_binding_free.c host2ypbind3_binding.c libcompat_a_LIBADD = @LIBOBJS@ localedir = $(datadir)/locale CLEANFILES = *~ ypbind-mt-2.7.2/lib/ypbind3_binding_free.c0000644000175000017500000000213713772054670020240 0ustar frankiefrankie/* Copyright (C) 2014 Thorsten Kukuk Author: Thorsten Kukuk This library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License in version 2.1 as published by the Free Software Foundation. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include #include "ypbind3_binding.h" void __ypbind3_binding_free (struct ypbind3_binding *ypb) { if (ypb == NULL) return; /* netdir_free ((void *)ypb->ypbind_svcaddr, ND_ADDR); */ if (ypb->ypbind_svcaddr->buf) free (ypb->ypbind_svcaddr->buf); free (ypb->ypbind_svcaddr); free (ypb->ypbind_servername); freenetconfigent (ypb->ypbind_nconf); free (ypb); } ypbind-mt-2.7.2/lib/host2ypbind3_binding.c0000644000175000017500000000310213772054670020210 0ustar frankiefrankie/* Copyright (C) 2014 Thorsten Kukuk Author: Thorsten Kukuk This library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License in version 2.1 as published by the Free Software Foundation. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include #include "ypbind3_binding.h" struct ypbind3_binding * __host2ypbind3_binding (const char *host) { const struct timeval TIMEOUT10 = {1, 0}; CLIENT *server; ypbind3_binding ypb3, *res; struct netconfig *nconf; struct netbuf nbuf; /* connect to server to find out if it exist and runs */ if ((server = clnt_create_timed (host, YPPROG, YPVERS, "datagram_n", &TIMEOUT10)) == NULL) return NULL; /* get nconf, netbuf structures */ nconf = getnetconfigent (server->cl_netid); clnt_control(server, CLGET_SVC_ADDR, (char *)&nbuf); ypb3.ypbind_nconf = nconf; ypb3.ypbind_svcaddr = (struct netbuf *)(&nbuf); ypb3.ypbind_servername = (char *)host; ypb3.ypbind_hi_vers = YPVERS; ypb3.ypbind_lo_vers = YPVERS; res = __ypbind3_binding_dup (&ypb3); freenetconfigent (nconf); clnt_destroy (server); return res; } ypbind-mt-2.7.2/lib/dns_hosts.c0000644000175000017500000003174413772054670016207 0ustar frankiefrankie/* ** dns_hosts.c DNS/Hesiod Hosts map access routines ** ** Copyright (c) 1993 Signum Support AB, Sweden ** ** This file is part of the NYS Library. ** ** The NYS Library is free software; you can redistribute it and/or ** modify it under the terms of the GNU Library General Public License as ** published by the Free Software Foundation; either version 2 of the ** License, or (at your option) any later version. ** ** The NYS Library is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ** Library General Public License for more details. ** ** You should have received a copy of the GNU Library General Public ** License along with the NYS Library; see the file COPYING.LIB. If ** not, write to the Free Software Foundation, Inc., 675 Mass Ave, ** Cambridge, MA 02139, USA. ** ** ** This file contains software derived from the gethostnamadr.c file ** from lib/libc/net/ in the 4.3BSD NET.2 distribution: ** ** Copyright (c) 1985, 1988 Regents of the University of California. ** 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. ** 3. All advertising materials mentioning features or use of this software ** must display the following acknowledgement: ** This product includes software developed by the University of ** California, Berkeley and its contributors. ** 4. Neither the name of the University nor the names of its contributors ** may be used to endorse or promote products derived from this software ** without specific prior written permission. ** ** THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. */ #if defined(HAVE_CONFIG_H) #include "config.h" #endif #if defined(linux) && !defined(HAVE__DNS_GETHOSTBYNAME) && !defined(HAVE_RES_GETHOSTBYNAME) && !defined(HAVE___NSS_CONFIGURE_LOOKUP) #include #include #include #include #include #include #include #include #include #include #include #include #include "res_options.h" extern void _res_close(void); extern struct hostent *_gethtbyaddr(const char *, int, int); #ifndef LOG_AUTH # define LOG_AUTH 0 #endif #define MULTI_PTRS_ARE_ALIASES 1 /* XXX - experimental */ #define MAXALIASES 35 #define MAXADDRS 35 static const char AskedForGot[] = "gethostby*.getanswer: asked for \"%s\", got \"%s\""; static char *h_addr_ptrs[MAXADDRS + 1]; static struct hostent host; static char *host_aliases[MAXALIASES]; static char hostbuf[8*1024]; static struct in_addr host_addr; #ifdef RESOLVSORT static void addrsort __P((char **, int)); #endif #if PACKETSZ > 1024 #define MAXPACKET PACKETSZ #else #define MAXPACKET 1024 #endif typedef union { HEADER hdr; u_char buf[MAXPACKET]; } querybuf; typedef union { int32_t al; char ac; } align; # define dprintf(msg, num) /*nada*/ static struct hostent * getanswer(const querybuf *answer, int anslen, const char *qname, int qclass, int qtype) { register const HEADER *hp; register const u_char *cp; register int n; const u_char *eom; char *bp, **ap, **hap; int type, class, buflen, ancount, qdcount; int haveanswer, had_error; int toobig = 0; char tbuf[MAXDNAME+1]; host.h_name = NULL; eom = answer->buf + anslen; /* * find first satisfactory answer */ hp = &answer->hdr; ancount = ntohs(hp->ancount); qdcount = ntohs(hp->qdcount); bp = hostbuf; buflen = sizeof hostbuf; cp = answer->buf + HFIXEDSZ; if (qdcount != 1) { h_errno = NO_RECOVERY; return (NULL); } if ((n = dn_expand(answer->buf, eom, cp, bp, buflen)) < 0) { h_errno = NO_RECOVERY; return (NULL); } cp += n + QFIXEDSZ; if (qtype == T_A) { /* res_send() has already verified that the query name is the * same as the one we sent; this just gets the expanded name * (i.e., with the succeeding search-domain tacked on). */ n = strlen(bp) + 1; /* for the \0 */ host.h_name = bp; bp += n; buflen -= n; /* The qname can be abbreviated, but h_name is now absolute. */ qname = host.h_name; } ap = host_aliases; *ap = NULL; host.h_aliases = host_aliases; hap = h_addr_ptrs; *hap = NULL; host.h_addr_list = h_addr_ptrs; haveanswer = 0; had_error = 0; while (ancount-- > 0 && cp < eom && !had_error) { n = dn_expand(answer->buf, eom, cp, bp, buflen); if (n < 0) { had_error++; continue; } cp += n; /* name */ type = _getshort(cp); cp += INT16SZ; /* type */ class = _getshort(cp); cp += INT16SZ + INT32SZ; /* class, TTL */ n = _getshort(cp); cp += INT16SZ; /* len */ if (class != qclass) { /* XXX - debug? syslog? */ cp += n; continue; /* XXX - had_error++ ? */ } if (qtype == T_A && type == T_CNAME) { if (ap >= &host_aliases[MAXALIASES-1]) continue; n = dn_expand(answer->buf, eom, cp, tbuf, sizeof tbuf); if (n < 0) { had_error++; continue; } cp += n; if (host.h_name && strcasecmp(host.h_name, bp) != 0) { syslog(LOG_NOTICE|LOG_AUTH, "gethostby*.getanswer: asked for \"%s\", got CNAME for \"%s\"", host.h_name, bp); continue; /* XXX - had_error++ ? */ } /* Store alias. */ *ap++ = bp; n = strlen(bp) + 1; /* for the \0 */ bp += n; buflen -= n; /* Get canonical name. */ n = strlen(tbuf) + 1; /* for the \0 */ if (n > buflen) { had_error++; continue; } strcpy(bp, tbuf); host.h_name = bp; bp += n; buflen -= n; continue; } if (type != qtype) { syslog(LOG_NOTICE|LOG_AUTH, "gethostby*.getanswer: asked for \"%s %s %s\", got type \"%s\"", qname, p_class(qclass), p_type(qtype), p_type(type)); cp += n; continue; /* XXX - had_error++ ? */ } switch (type) { case T_PTR: if (strcasecmp(qname, bp) != 0) { syslog(LOG_NOTICE|LOG_AUTH, AskedForGot, qname, bp); cp += n; continue; /* XXX - had_error++ ? */ } n = dn_expand(answer->buf, eom, cp, bp, buflen); if (n < 0) { had_error++; break; } #if MULTI_PTRS_ARE_ALIASES cp += n; if (!haveanswer) host.h_name = bp; else if (ap < &host_aliases[MAXALIASES-1]) *ap++ = bp; else n = -1; if (n != -1) { n = strlen(bp) + 1; /* for the \0 */ bp += n; buflen -= n; } break; #else host.h_name = bp; h_errno = NETDB_SUCCESS; return (&host); #endif case T_A: if (strcasecmp(host.h_name, bp) != 0) { syslog(LOG_NOTICE|LOG_AUTH, AskedForGot, host.h_name, bp); cp += n; continue; /* XXX - had_error++ ? */ } if (haveanswer) { if (n != host.h_length) { cp += n; continue; } } else { register int nn; host.h_length = n; host.h_addrtype = (class == C_IN) ? AF_INET : AF_UNSPEC; host.h_name = bp; nn = strlen(bp) + 1; /* for the \0 */ bp += nn; buflen -= nn; } bp += sizeof(align) - ((u_long)bp % sizeof(align)); if (bp + n >= &hostbuf[sizeof hostbuf]) { dprintf("size (%d) too big\n", n); had_error++; continue; } if (hap >= &h_addr_ptrs[MAXADDRS-1]) { if (!toobig++) dprintf("Too many addresses (%d)\n", MAXADDRS); cp += n; continue; } bcopy(cp, *hap++ = bp, n); bp += n; cp += n; break; default: dprintf("Impossible condition (type=%d)\n", type); h_errno = NO_RECOVERY; return (NULL); } /*switch*/ if (!had_error) haveanswer++; } /*while*/ if (haveanswer) { *ap = NULL; *hap = NULL; # if defined(RESOLVSORT) /* * Note: we sort even if host can take only one address * in its return structures - should give it the "best" * address in that case, not some random one */ if (_res.nsort && haveanswer > 1 && qclass == C_IN && qtype == T_A) addrsort(h_addr_ptrs, haveanswer); # endif /*RESOLVSORT*/ if (!host.h_name) { n = strlen(qname) + 1; /* for the \0 */ strcpy(bp, qname); host.h_name = bp; } h_errno = NETDB_SUCCESS; return (&host); } else { h_errno = TRY_AGAIN; return (NULL); } } #ifdef RESOLVSORT static void addrsort(char **ap, int num) { int i, j; char **p; short aval[MAXADDRS]; int needsort = 0; p = ap; for (i = 0; i < num; i++, p++) { for (j = 0 ; (unsigned)j < _res.nsort; j++) if (_res.sort_list[j].addr.s_addr == (((struct in_addr *)(*p))->s_addr & _res.sort_list[j].mask)) break; aval[i] = j; if (needsort == 0 && i > 0 && j < aval[i-1]) needsort = i; } if (!needsort) return; while (needsort < num) { for (j = needsort - 1; j >= 0; j--) { if (aval[j] > aval[j+1]) { char *hp; i = aval[j]; aval[j] = aval[j+1]; aval[j+1] = i; hp = ap[j]; ap[j] = ap[j+1]; ap[j+1] = hp; } else break; } needsort++; } } #endif struct hostent * _dns_gethostbyname(const char *name) { querybuf buf; register const char *cp; int n; /* * if there aren't any dots, it could be a user-level alias. * this is also done in res_query() since we are not the only * function that looks up host names. */ if (!strchr(name, '.') && (cp = __hostalias(name))) name = cp; /* * disallow names consisting only of digits/dots, unless * they end in a dot. */ if (isdigit(name[0])) for (cp = name;; ++cp) { if (!*cp) { if (*--cp == '.') break; /* * All-numeric, no dot at the end. * Fake up a hostent as if we'd actually * done a lookup. */ if (!inet_aton(name, &host_addr)) { h_errno = HOST_NOT_FOUND; return (NULL); } host.h_name = (char *)name; host.h_aliases = host_aliases; host_aliases[0] = NULL; host.h_addrtype = AF_INET; host.h_length = INT32SZ; h_addr_ptrs[0] = (char *)&host_addr; h_addr_ptrs[1] = NULL; host.h_addr_list = h_addr_ptrs; h_errno = NETDB_SUCCESS; return (&host); } if (!isdigit(*cp) && *cp != '.') break; } if ((n = res_search(name, C_IN, T_A, buf.buf, sizeof(buf))) < 0) { dprintf("res_search failed (%d)\n", n); return (NULL); } return (getanswer(&buf, n, name, C_IN, T_A)); } struct hostent * _dns_gethostbyaddr(const char *addr, int len, int type) { int n; querybuf buf; register struct hostent *hp; char qbuf[MAXDNAME+1]; #ifdef SUNSECURITY register struct hostent *rhp; char **haddr; u_long old_options; char hname2[MAXDNAME+1]; #endif /*SUNSECURITY*/ if (type != AF_INET) { errno = EAFNOSUPPORT; h_errno = NETDB_INTERNAL; return (NULL); } (void)sprintf(qbuf, "%u.%u.%u.%u.in-addr.arpa", ((unsigned)addr[3] & 0xff), ((unsigned)addr[2] & 0xff), ((unsigned)addr[1] & 0xff), ((unsigned)addr[0] & 0xff)); n = res_query(qbuf, C_IN, T_PTR, (u_char *)buf.buf, sizeof buf.buf); if (n < 0) { dprintf("res_query failed (%d)\n", n); return (NULL); } if (!(hp = getanswer(&buf, n, qbuf, C_IN, T_PTR))) return (NULL); /* h_errno was set by getanswer() */ #ifdef SUNSECURITY /* * turn off search as the name should be absolute, * 'localhost' should be matched by defnames */ strncpy(hname2, hp->h_name, MAXDNAME); hname2[MAXDNAME] = '\0'; old_options = _res.options; _res.options &= ~RES_DNSRCH; _res.options |= RES_DEFNAMES; if (!(rhp = gethostbyname(hp->h_name))) { syslog(LOG_NOTICE|LOG_AUTH, "gethostbyaddr: No A record for %s (verifying [%s])", hname2, inet_ntoa(*((struct in_addr *)addr))); _res.options = old_options; h_errno = HOST_NOT_FOUND; return (NULL); } _res.options = old_options; for (haddr = rhp->h_addr_list; *haddr; haddr++) if (!memcmp(*haddr, addr, INADDRSZ)) break; if (!*haddr) { syslog(LOG_NOTICE|LOG_AUTH, "gethostbyaddr: A record of %s != PTR record [%s]", hname2, inet_ntoa(*((struct in_addr *)addr))); h_errno = HOST_NOT_FOUND; return (NULL); } #endif /*SUNSECURITY*/ hp->h_addrtype = type; hp->h_length = len; h_addr_ptrs[0] = (char *)&host_addr; h_addr_ptrs[1] = NULL; host_addr = *(struct in_addr *)addr; h_errno = NETDB_SUCCESS; return (hp); } #endif ypbind-mt-2.7.2/lib/ypbind3_binding_dup.c0000644000175000017500000000617613772054670020116 0ustar frankiefrankie/* Copyright (C) 2014 Thorsten Kukuk Author: Thorsten Kukuk This library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License in version 2.1 as published by the Free Software Foundation. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include #include #include "ypbind3_binding.h" struct ypbind3_binding * __ypbind3_binding_dup (struct ypbind3_binding *src) { #define copy_str(source, dest) \ if (source != NULL) \ { \ dest = strdup (source); \ if (dest == NULL) \ { \ __ypbind3_binding_free (dst); \ return NULL; \ } \ } struct ypbind3_binding *dst; unsigned long i; dst = calloc(1, sizeof (struct ypbind3_binding)); if (dst == NULL) return NULL; dst->ypbind_nconf = calloc (1, sizeof (struct netconfig)); if (dst->ypbind_nconf == NULL) { __ypbind3_binding_free (dst); return NULL; } dst->ypbind_svcaddr = calloc(1, sizeof (struct netbuf)); if (dst->ypbind_svcaddr == NULL) { __ypbind3_binding_free (dst); return NULL; } dst->ypbind_hi_vers = src->ypbind_hi_vers; dst->ypbind_lo_vers = src->ypbind_lo_vers; if (src->ypbind_servername) dst->ypbind_servername = strdup(src->ypbind_servername); copy_str (src->ypbind_nconf->nc_netid, dst->ypbind_nconf->nc_netid); dst->ypbind_nconf->nc_semantics = src->ypbind_nconf->nc_semantics; dst->ypbind_nconf->nc_flag = src->ypbind_nconf->nc_flag; copy_str (src->ypbind_nconf->nc_protofmly, dst->ypbind_nconf->nc_protofmly); copy_str (src->ypbind_nconf->nc_proto, dst->ypbind_nconf->nc_proto); copy_str (src->ypbind_nconf->nc_device, dst->ypbind_nconf->nc_device); dst->ypbind_nconf->nc_nlookups = src->ypbind_nconf->nc_nlookups; dst->ypbind_nconf->nc_lookups = calloc (src->ypbind_nconf->nc_nlookups, sizeof (char *)); if (dst->ypbind_nconf->nc_lookups == NULL) { __ypbind3_binding_free (dst); return NULL; } for (i = 0; i < src->ypbind_nconf->nc_nlookups; i++) dst->ypbind_nconf->nc_lookups[i] = src->ypbind_nconf->nc_lookups[i] ? strdup (src->ypbind_nconf->nc_lookups[i]) : NULL; for (i = 0; i < 8; i++) dst->ypbind_nconf->nc_unused[i] = src->ypbind_nconf->nc_unused[i]; dst->ypbind_svcaddr->maxlen = src->ypbind_svcaddr->maxlen; dst->ypbind_svcaddr->len = src->ypbind_svcaddr->len; dst->ypbind_svcaddr->buf = malloc (src->ypbind_svcaddr->maxlen); if (dst->ypbind_svcaddr->buf == NULL) { __ypbind3_binding_free (dst); return NULL; } memcpy (dst->ypbind_svcaddr->buf, src->ypbind_svcaddr->buf, dst->ypbind_svcaddr->len); return dst; #undef copy_str } ypbind-mt-2.7.2/m4/0000755000175000017500000000000013772054670013600 5ustar frankiefrankieypbind-mt-2.7.2/m4/lcmessage.m40000644000175000017500000000240413772054670016005 0ustar frankiefrankie# lcmessage.m4 serial 4 (gettext-0.14.2) dnl Copyright (C) 1995-2002, 2004-2005 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995. # Check whether LC_MESSAGES is available in . AC_DEFUN([gt_LC_MESSAGES], [ AC_CACHE_CHECK([for LC_MESSAGES], gt_cv_val_LC_MESSAGES, [AC_TRY_LINK([#include ], [return LC_MESSAGES], gt_cv_val_LC_MESSAGES=yes, gt_cv_val_LC_MESSAGES=no)]) if test $gt_cv_val_LC_MESSAGES = yes; then AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your file defines LC_MESSAGES.]) fi ]) ypbind-mt-2.7.2/m4/inttypes_h.m40000644000175000017500000000162313772054670016232 0ustar frankiefrankie# inttypes_h.m4 serial 6 dnl Copyright (C) 1997-2004 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. # Define HAVE_INTTYPES_H_WITH_UINTMAX if exists, # doesn't clash with , and declares uintmax_t. AC_DEFUN([gl_AC_HEADER_INTTYPES_H], [ AC_CACHE_CHECK([for inttypes.h], gl_cv_header_inttypes_h, [AC_TRY_COMPILE( [#include #include ], [uintmax_t i = (uintmax_t) -1;], gl_cv_header_inttypes_h=yes, gl_cv_header_inttypes_h=no)]) if test $gl_cv_header_inttypes_h = yes; then AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1, [Define if exists, doesn't clash with , and declares uintmax_t. ]) fi ]) ypbind-mt-2.7.2/m4/nls.m40000644000175000017500000000231513772054670014637 0ustar frankiefrankie# nls.m4 serial 5 (gettext-0.18) dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ([2.50]) AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE([nls], [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT([$USE_NLS]) AC_SUBST([USE_NLS]) ]) ypbind-mt-2.7.2/m4/lock.m40000644000175000017500000002667313772054670015010 0ustar frankiefrankie# lock.m4 serial 2 (gettext-0.15) dnl Copyright (C) 2005 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Tests for a multithreading library to be used. dnl Defines at most one of the macros USE_POSIX_THREADS, USE_SOLARIS_THREADS, dnl USE_PTH_THREADS, USE_WIN32_THREADS dnl Sets the variables LIBTHREAD and LTLIBTHREAD to the linker options for use dnl in a Makefile (LIBTHREAD for use without libtool, LTLIBTHREAD for use with dnl libtool). dnl Sets the variables LIBMULTITHREAD and LTLIBMULTITHREAD similarly, for dnl programs that really need multithread functionality. The difference dnl between LIBTHREAD and LIBMULTITHREAD is that on platforms supporting weak dnl symbols, typically LIBTHREAD="" whereas LIBMULTITHREAD="-lpthread". dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for dnl multithread-safe programs. AC_DEFUN([gl_LOCK], [ AC_REQUIRE([gl_LOCK_BODY]) ]) dnl The guts of gl_LOCK. Needs to be expanded only once. AC_DEFUN([gl_LOCK_BODY], [ dnl Ordering constraints: This macro modifies CPPFLAGS in a way that dnl influences the result of the autoconf tests that test for *_unlocked dnl declarations, on AIX 5 at least. Therefore it must come early. AC_BEFORE([$0], [gl_FUNC_GLIBC_UNLOCKED_IO])dnl AC_BEFORE([$0], [gl_ARGP])dnl AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_GNU_SOURCE]) dnl needed for pthread_rwlock_t on glibc systems dnl Check for multithreading. AC_ARG_ENABLE(threads, AC_HELP_STRING([--enable-threads={posix|solaris|pth|win32}], [specify multithreading API]) AC_HELP_STRING([--disable-threads], [build without multithread safety]), gl_use_threads=$enableval, gl_use_threads=yes) gl_threads_api=none LIBTHREAD= LTLIBTHREAD= LIBMULTITHREAD= LTLIBMULTITHREAD= if test "$gl_use_threads" != no; then dnl Check whether the compiler and linker support weak declarations. AC_MSG_CHECKING([whether imported symbols can be declared weak]) gl_have_weak=no AC_TRY_LINK([extern void xyzzy (); #pragma weak xyzzy], [xyzzy();], [gl_have_weak=yes]) AC_MSG_RESULT([$gl_have_weak]) if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that # it groks . gl_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS -D_REENTRANT" AC_CHECK_HEADER(pthread.h, gl_have_pthread_h=yes, gl_have_pthread_h=no) CPPFLAGS="$gl_save_CPPFLAGS" if test "$gl_have_pthread_h" = yes; then # Other possible tests: # -lpthreads (FSU threads, PCthreads) # -lgthreads case "$host_os" in osf*) # On OSF/1, the compiler needs the flag -D_REENTRANT so that it # groks . cc also understands the flag -pthread, but # we don't use it because 1. gcc-2.95 doesn't understand -pthread, # 2. putting a flag into CPPFLAGS that has an effect on the linker # causes the AC_TRY_LINK test below to succeed unexpectedly, # leading to wrong values of LIBTHREAD and LTLIBTHREAD. CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac gl_have_pthread= # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist # in libc. IRIX 6.5 has the first one in both libc and libpthread, but # the second one only in libpthread, and lock.c needs it. AC_TRY_LINK([#include ], [pthread_mutex_lock((pthread_mutex_t*)0); pthread_mutexattr_init((pthread_mutexattr_t*)0);], [gl_have_pthread=yes]) # Test for libpthread by looking for pthread_kill. (Not pthread_self, # since it is defined as a macro on OSF/1.) if test -n "$gl_have_pthread"; then # The program links fine without libpthread. But it may actually # need to link with libpthread in order to create multiple threads. AC_CHECK_LIB(pthread, pthread_kill, [LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread # On Solaris and HP-UX, most pthread functions exist also in libc. # Therefore pthread_in_use() needs to actually try to create a # thread: pthread_create from libc will fail, whereas # pthread_create will actually create a thread. case "$host_os" in solaris* | hpux*) AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], 1, [Define if the pthread_in_use() detection is hard.]) esac ]) else # Some library is needed. Try libpthread and libc_r. AC_CHECK_LIB(pthread, pthread_kill, [gl_have_pthread=yes LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread]) if test -z "$gl_have_pthread"; then # For FreeBSD 4. AC_CHECK_LIB(c_r, pthread_kill, [gl_have_pthread=yes LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r]) fi fi if test -n "$gl_have_pthread"; then gl_threads_api=posix AC_DEFINE([USE_POSIX_THREADS], 1, [Define if the POSIX multithreading library can be used.]) if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then if test $gl_have_weak = yes; then AC_DEFINE([USE_POSIX_THREADS_WEAK], 1, [Define if references to the POSIX multithreading library should be made weak.]) LIBTHREAD= LTLIBTHREAD= fi fi # OSF/1 4.0 and MacOS X 10.1 lack the pthread_rwlock_t type and the # pthread_rwlock_* functions. AC_CHECK_TYPE([pthread_rwlock_t], [AC_DEFINE([HAVE_PTHREAD_RWLOCK], 1, [Define if the POSIX multithreading library has read/write locks.])], [], [#include ]) # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro. AC_TRY_COMPILE([#include ], [#if __FreeBSD__ == 4 error "No, in FreeBSD 4.0 recursive mutexes actually don't work." #else int x = (int)PTHREAD_MUTEX_RECURSIVE; #endif], [AC_DEFINE([HAVE_PTHREAD_MUTEX_RECURSIVE], 1, [Define if the defines PTHREAD_MUTEX_RECURSIVE.])]) # Some systems optimize for single-threaded programs by default, and # need special flags to disable these optimizations. For example, the # definition of 'errno' in . case "$host_os" in aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac fi fi fi if test -z "$gl_have_pthread"; then if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then gl_have_solaristhread= gl_save_LIBS="$LIBS" LIBS="$LIBS -lthread" AC_TRY_LINK([#include #include ], [thr_self();], [gl_have_solaristhread=yes]) LIBS="$gl_save_LIBS" if test -n "$gl_have_solaristhread"; then gl_threads_api=solaris LIBTHREAD=-lthread LTLIBTHREAD=-lthread LIBMULTITHREAD="$LIBTHREAD" LTLIBMULTITHREAD="$LTLIBTHREAD" AC_DEFINE([USE_SOLARIS_THREADS], 1, [Define if the old Solaris multithreading library can be used.]) if test $gl_have_weak = yes; then AC_DEFINE([USE_SOLARIS_THREADS_WEAK], 1, [Define if references to the old Solaris multithreading library should be made weak.]) LIBTHREAD= LTLIBTHREAD= fi fi fi fi if test "$gl_use_threads" = pth; then gl_save_CPPFLAGS="$CPPFLAGS" AC_LIB_LINKFLAGS(pth) gl_have_pth= gl_save_LIBS="$LIBS" LIBS="$LIBS -lpth" AC_TRY_LINK([#include ], [pth_self();], gl_have_pth=yes) LIBS="$gl_save_LIBS" if test -n "$gl_have_pth"; then gl_threads_api=pth LIBTHREAD="$LIBPTH" LTLIBTHREAD="$LTLIBPTH" LIBMULTITHREAD="$LIBTHREAD" LTLIBMULTITHREAD="$LTLIBTHREAD" AC_DEFINE([USE_PTH_THREADS], 1, [Define if the GNU Pth multithreading library can be used.]) if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then if test $gl_have_weak = yes; then AC_DEFINE([USE_PTH_THREADS_WEAK], 1, [Define if references to the GNU Pth multithreading library should be made weak.]) LIBTHREAD= LTLIBTHREAD= fi fi else CPPFLAGS="$gl_save_CPPFLAGS" fi fi if test -z "$gl_have_pthread"; then if test "$gl_use_threads" = yes || test "$gl_use_threads" = win32; then if { case "$host_os" in mingw*) true;; *) false;; esac }; then gl_threads_api=win32 AC_DEFINE([USE_WIN32_THREADS], 1, [Define if the Win32 multithreading API can be used.]) fi fi fi fi AC_MSG_CHECKING([for multithread API to use]) AC_MSG_RESULT([$gl_threads_api]) AC_SUBST(LIBTHREAD) AC_SUBST(LTLIBTHREAD) AC_SUBST(LIBMULTITHREAD) AC_SUBST(LTLIBMULTITHREAD) gl_PREREQ_LOCK ]) # Prerequisites of lib/lock.c. AC_DEFUN([gl_PREREQ_LOCK], [ AC_REQUIRE([AC_C_INLINE]) ]) dnl Survey of platforms: dnl dnl Platform Available Compiler Supports test-lock dnl flavours option weak result dnl --------------- --------- --------- -------- --------- dnl Linux 2.4/glibc posix -lpthread Y OK dnl dnl GNU Hurd/glibc posix dnl dnl FreeBSD 5.3 posix -lc_r Y dnl posix -lkse ? Y dnl posix -lpthread ? Y dnl posix -lthr Y dnl dnl FreeBSD 5.2 posix -lc_r Y dnl posix -lkse Y dnl posix -lthr Y dnl dnl FreeBSD 4.0,4.10 posix -lc_r Y OK dnl dnl NetBSD 1.6 -- dnl dnl OpenBSD 3.4 posix -lpthread Y OK dnl dnl MacOS X 10.[123] posix -lpthread Y OK dnl dnl Solaris 7,8,9 posix -lpthread Y Sol 7,8: 0.0; Sol 9: OK dnl solaris -lthread Y Sol 7,8: 0.0; Sol 9: OK dnl dnl HP-UX 11 posix -lpthread N (cc) OK dnl Y (gcc) dnl dnl IRIX 6.5 posix -lpthread Y 0.5 dnl dnl AIX 4.3,5.1 posix -lpthread N AIX 4: 0.5; AIX 5: OK dnl dnl OSF/1 4.0,5.1 posix -pthread (cc) N OK dnl -lpthread (gcc) Y dnl dnl Cygwin posix -lpthread Y OK dnl dnl Any of the above pth -lpth 0.0 dnl dnl Mingw win32 N OK dnl dnl BeOS 5 -- dnl dnl The test-lock result shows what happens if in test-lock.c EXPLICIT_YIELD is dnl turned off: dnl OK if all three tests terminate OK, dnl 0.5 if the first test terminates OK but the second one loops endlessly, dnl 0.0 if the first test already loops endlessly. ypbind-mt-2.7.2/m4/po.m40000644000175000017500000004503713772054670014471 0ustar frankiefrankie# po.m4 serial 22 (gettext-0.19) dnl Copyright (C) 1995-2014 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ([2.60]) dnl Checks for all prerequisites of the po subdirectory. AC_DEFUN([AM_PO_SUBDIRS], [ AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl AC_REQUIRE([AC_PROG_SED])dnl AC_REQUIRE([AM_NLS])dnl dnl Release version of the gettext macros. This is used to ensure that dnl the gettext macros and po/Makefile.in.in are in sync. AC_SUBST([GETTEXT_MACRO_VERSION], [0.19]) dnl Perform the following tests also if --disable-nls has been given, dnl because they are needed for "make dist" to work. dnl Search for GNU msgfmt in the PATH. dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. dnl The second test excludes FreeBSD msgfmt. AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT]) dnl Test whether it is GNU msgfmt >= 0.15. changequote(,)dnl case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; *) MSGFMT_015=$MSGFMT ;; esac changequote([,])dnl AC_SUBST([MSGFMT_015]) changequote(,)dnl case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac changequote([,])dnl AC_SUBST([GMSGFMT_015]) dnl Search for GNU xgettext 0.12 or newer in the PATH. dnl The first test excludes Solaris xgettext and early GNU xgettext versions. dnl The second test excludes FreeBSD xgettext. AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) dnl Remove leftover from FreeBSD xgettext call. rm -f messages.po dnl Test whether it is GNU xgettext >= 0.15. changequote(,)dnl case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; *) XGETTEXT_015=$XGETTEXT ;; esac changequote([,])dnl AC_SUBST([XGETTEXT_015]) dnl Search for GNU msgmerge 0.11 or newer in the PATH. AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) dnl Installation directories. dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we dnl have to define it here, so that it can be used in po/Makefile. test -n "$localedir" || localedir='${datadir}/locale' AC_SUBST([localedir]) dnl Support for AM_XGETTEXT_OPTION. test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) AC_CONFIG_COMMANDS([po-directories], [[ for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" gt_tab=`printf '\t'` cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assignment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. # Hide the ALL_LINGUAS assignment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done]], [# Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" ]) ]) dnl Postprocesses a Makefile in a directory containing PO files. AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], [ # When this code is run, in config.status, two variables have already been # set: # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, # - LINGUAS is the value of the environment variable LINGUAS at configure # time. changequote(,)dnl # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Find a way to echo strings without interpreting backslash. if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then gt_echo='echo' else if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then gt_echo='printf %s\n' else echo_func () { cat < "$ac_file.tmp" tab=`printf '\t'` if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` cat >> "$ac_file.tmp" < /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` cat >> "$ac_file.tmp" <> "$ac_file.tmp" < exists, # doesn't clash with , and declares uintmax_t. AC_DEFUN([gl_AC_HEADER_STDINT_H], [ AC_CACHE_CHECK([for stdint.h], gl_cv_header_stdint_h, [AC_TRY_COMPILE( [#include #include ], [uintmax_t i = (uintmax_t) -1;], gl_cv_header_stdint_h=yes, gl_cv_header_stdint_h=no)]) if test $gl_cv_header_stdint_h = yes; then AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1, [Define if exists, doesn't clash with , and declares uintmax_t. ]) fi ]) ypbind-mt-2.7.2/m4/longdouble.m40000644000175000017500000000227713772054670016204 0ustar frankiefrankie# longdouble.m4 serial 2 (gettext-0.15) dnl Copyright (C) 2002-2003, 2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether the compiler supports the 'long double' type. dnl Prerequisite: AC_PROG_CC dnl This file is only needed in autoconf <= 2.59. Newer versions of autoconf dnl have a macro AC_TYPE_LONG_DOUBLE with identical semantics. AC_DEFUN([gt_TYPE_LONGDOUBLE], [ AC_CACHE_CHECK([for long double], gt_cv_c_long_double, [if test "$GCC" = yes; then gt_cv_c_long_double=yes else AC_TRY_COMPILE([ /* The Stardent Vistra knows sizeof(long double), but does not support it. */ long double foo = 0.0; /* On Ultrix 4.3 cc, long double is 4 and double is 8. */ int array [2*(sizeof(long double) >= sizeof(double)) - 1]; ], , gt_cv_c_long_double=yes, gt_cv_c_long_double=no) fi]) if test $gt_cv_c_long_double = yes; then AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the 'long double' type.]) fi ]) ypbind-mt-2.7.2/m4/jh_path_xml_catalog.m40000644000175000017500000000321713772054670020034 0ustar frankiefrankie# Checks the location of the XML Catalog # Usage: # JH_PATH_XML_CATALOG([ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # Defines XMLCATALOG and XML_CATALOG_FILE substitutions AC_DEFUN([JH_PATH_XML_CATALOG], [ # check for the presence of the XML catalog AC_ARG_WITH([xml-catalog], AC_HELP_STRING([--with-xml-catalog=CATALOG], [path to xml catalog to use]),, [with_xml_catalog=/etc/xml/catalog]) jh_found_xmlcatalog=true XML_CATALOG_FILE="$with_xml_catalog" AC_SUBST([XML_CATALOG_FILE]) AC_MSG_CHECKING([for XML catalog ($XML_CATALOG_FILE)]) if test -f "$XML_CATALOG_FILE"; then AC_MSG_RESULT([found]) else jh_found_xmlcatalog=false AC_MSG_RESULT([not found]) fi # check for the xmlcatalog program AC_PATH_PROG(XMLCATALOG, xmlcatalog, no) if test "x$XMLCATALOG" = xno; then jh_found_xmlcatalog=false fi if $jh_found_xmlcatalog; then ifelse([$1],,[:],[$1]) else ifelse([$2],,[AC_MSG_ERROR([could not find XML catalog])],[$2]) fi ]) # Checks if a particular URI appears in the XML catalog # Usage: # JH_CHECK_XML_CATALOG(URI, [FRIENDLY-NAME], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) AC_DEFUN([JH_CHECK_XML_CATALOG], [ AC_REQUIRE([JH_PATH_XML_CATALOG],[JH_PATH_XML_CATALOG(,[:])])dnl AC_MSG_CHECKING([for ifelse([$2],,[$1],[$2]) in XML catalog]) if $jh_found_xmlcatalog && \ AC_RUN_LOG([$XMLCATALOG --noout "$XML_CATALOG_FILE" "$1" >&2]); then AC_MSG_RESULT([found]) ifelse([$3],,,[$3 ])dnl else AC_MSG_RESULT([not found]) ifelse([$4],, [AC_MSG_ERROR([could not find ifelse([$2],,[$1],[$2]) in XML catalog])], [$4]) fi ]) ypbind-mt-2.7.2/m4/intmax.m40000644000175000017500000000174613772054670015352 0ustar frankiefrankie# intmax.m4 serial 2 (gettext-0.14.2) dnl Copyright (C) 2002-2005 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether the system has the 'intmax_t' type, but don't attempt to dnl find a replacement if it is lacking. AC_DEFUN([gt_TYPE_INTMAX_T], [ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) AC_REQUIRE([gl_AC_HEADER_STDINT_H]) AC_CACHE_CHECK(for intmax_t, gt_cv_c_intmax_t, [AC_TRY_COMPILE([ #include #include #if HAVE_STDINT_H_WITH_UINTMAX #include #endif #if HAVE_INTTYPES_H_WITH_UINTMAX #include #endif ], [intmax_t x = -1;], gt_cv_c_intmax_t=yes, gt_cv_c_intmax_t=no)]) if test $gt_cv_c_intmax_t = yes; then AC_DEFINE(HAVE_INTMAX_T, 1, [Define if you have the 'intmax_t' type in or .]) fi ]) ypbind-mt-2.7.2/m4/printf-posix.m40000644000175000017500000000266113772054670016511 0ustar frankiefrankie# printf-posix.m4 serial 2 (gettext-0.13.1) dnl Copyright (C) 2003 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether the printf() function supports POSIX/XSI format strings with dnl positions. AC_DEFUN([gt_PRINTF_POSIX], [ AC_REQUIRE([AC_PROG_CC]) AC_CACHE_CHECK([whether printf() supports POSIX/XSI format strings], gt_cv_func_printf_posix, [ AC_TRY_RUN([ #include #include /* The string "%2$d %1$d", with dollar characters protected from the shell's dollar expansion (possibly an autoconf bug). */ static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' }; static char buf[100]; int main () { sprintf (buf, format, 33, 55); return (strcmp (buf, "55 33") != 0); }], gt_cv_func_printf_posix=yes, gt_cv_func_printf_posix=no, [ AC_EGREP_CPP(notposix, [ #if defined __NetBSD__ || defined _MSC_VER || defined __MINGW32__ || defined __CYGWIN__ notposix #endif ], gt_cv_func_printf_posix="guessing no", gt_cv_func_printf_posix="guessing yes") ]) ]) case $gt_cv_func_printf_posix in *yes) AC_DEFINE(HAVE_POSIX_PRINTF, 1, [Define if your printf() function supports format strings with positions.]) ;; esac ]) ypbind-mt-2.7.2/m4/inttypes-pri.m40000644000175000017500000000200613772054670016507 0ustar frankiefrankie# inttypes-pri.m4 serial 2 (gettext-0.15) dnl Copyright (C) 1997-2002, 2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. # Define PRI_MACROS_BROKEN if exists and defines the PRI* # macros to non-string values. This is the case on AIX 4.3.3. AC_DEFUN([gt_INTTYPES_PRI], [ AC_REQUIRE([gl_HEADER_INTTYPES_H]) if test $gl_cv_header_inttypes_h = yes; then AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken], gt_cv_inttypes_pri_broken, [ AC_TRY_COMPILE([#include #ifdef PRId32 char *p = PRId32; #endif ], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes) ]) fi if test "$gt_cv_inttypes_pri_broken" = yes; then AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1, [Define if exists and defines unusable PRI* macros.]) fi ]) ypbind-mt-2.7.2/m4/glibc2.m40000644000175000017500000000135413772054670015207 0ustar frankiefrankie# glibc2.m4 serial 1 dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Test for the GNU C Library, version 2.0 or newer. # From Bruno Haible. AC_DEFUN([gt_GLIBC2], [ AC_CACHE_CHECK(whether we are using the GNU C Library 2 or newer, ac_cv_gnu_library_2, [AC_EGREP_CPP([Lucky GNU user], [ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ >= 2) Lucky GNU user #endif #endif ], ac_cv_gnu_library_2=yes, ac_cv_gnu_library_2=no) ] ) AC_SUBST(GLIBC2) GLIBC2="$ac_cv_gnu_library_2" ] ) ypbind-mt-2.7.2/m4/longlong.m40000644000175000017500000000141613772054670015663 0ustar frankiefrankie# longlong.m4 serial 5 dnl Copyright (C) 1999-2004 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. # Define HAVE_LONG_LONG if 'long long' works. AC_DEFUN([gl_AC_TYPE_LONG_LONG], [ AC_CACHE_CHECK([for long long], ac_cv_type_long_long, [AC_TRY_LINK([long long ll = 1LL; int i = 63;], [long long llmax = (long long) -1; return ll << i | ll >> i | llmax / ll | llmax % ll;], ac_cv_type_long_long=yes, ac_cv_type_long_long=no)]) if test $ac_cv_type_long_long = yes; then AC_DEFINE(HAVE_LONG_LONG, 1, [Define if you have the 'long long' type.]) fi ]) ypbind-mt-2.7.2/m4/xsize.m40000644000175000017500000000064513772054670015211 0ustar frankiefrankie# xsize.m4 serial 3 dnl Copyright (C) 2003-2004 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_XSIZE], [ dnl Prerequisites of lib/xsize.h. AC_REQUIRE([gl_SIZE_MAX]) AC_REQUIRE([AC_C_INLINE]) AC_CHECK_HEADERS(stdint.h) ]) ypbind-mt-2.7.2/m4/isc-posix.m40000644000175000017500000000213313772054670015757 0ustar frankiefrankie# isc-posix.m4 serial 2 (gettext-0.11.2) dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. # This file is not needed with autoconf-2.53 and newer. Remove it in 2005. # This test replaces the one in autoconf. # Currently this macro should have the same name as the autoconf macro # because gettext's gettext.m4 (distributed in the automake package) # still uses it. Otherwise, the use in gettext.m4 makes autoheader # give these diagnostics: # configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX # configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX undefine([AC_ISC_POSIX]) AC_DEFUN([AC_ISC_POSIX], [ dnl This test replaces the obsolescent AC_ISC_POSIX kludge. AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) ] ) ypbind-mt-2.7.2/m4/visibility.m40000644000175000017500000000413013772054670016227 0ustar frankiefrankie# visibility.m4 serial 1 (gettext-0.15) dnl Copyright (C) 2005 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Tests whether the compiler supports the command-line option dnl -fvisibility=hidden and the function and variable attributes dnl __attribute__((__visibility__("hidden"))) and dnl __attribute__((__visibility__("default"))). dnl Does *not* test for __visibility__("protected") - which has tricky dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on dnl MacOS X. dnl Does *not* test for __visibility__("internal") - which has processor dnl dependent semantics. dnl Does *not* test for #pragma GCC visibility push(hidden) - which is dnl "really only recommended for legacy code". dnl Set the variable CFLAG_VISIBILITY. dnl Defines and sets the variable HAVE_VISIBILITY. AC_DEFUN([gl_VISIBILITY], [ AC_REQUIRE([AC_PROG_CC]) CFLAG_VISIBILITY= HAVE_VISIBILITY=0 if test -n "$GCC"; then AC_MSG_CHECKING([for simple visibility declarations]) AC_CACHE_VAL(gl_cv_cc_visibility, [ gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fvisibility=hidden" AC_TRY_COMPILE( [extern __attribute__((__visibility__("hidden"))) int hiddenvar; extern __attribute__((__visibility__("default"))) int exportedvar; extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); extern __attribute__((__visibility__("default"))) int exportedfunc (void);], [], gl_cv_cc_visibility=yes, gl_cv_cc_visibility=no) CFLAGS="$gl_save_CFLAGS"]) AC_MSG_RESULT([$gl_cv_cc_visibility]) if test $gl_cv_cc_visibility = yes; then CFLAG_VISIBILITY="-fvisibility=hidden" HAVE_VISIBILITY=1 fi fi AC_SUBST([CFLAG_VISIBILITY]) AC_SUBST([HAVE_VISIBILITY]) AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY], [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.]) ]) ypbind-mt-2.7.2/m4/wint_t.m40000644000175000017500000000130413772054670015344 0ustar frankiefrankie# wint_t.m4 serial 1 (gettext-0.12) dnl Copyright (C) 2003 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether has the 'wint_t' type. dnl Prerequisite: AC_PROG_CC AC_DEFUN([gt_TYPE_WINT_T], [ AC_CACHE_CHECK([for wint_t], gt_cv_c_wint_t, [AC_TRY_COMPILE([#include wint_t foo = (wchar_t)'\0';], , gt_cv_c_wint_t=yes, gt_cv_c_wint_t=no)]) if test $gt_cv_c_wint_t = yes; then AC_DEFINE(HAVE_WINT_T, 1, [Define if you have the 'wint_t' type.]) fi ]) ypbind-mt-2.7.2/m4/inttypes-h.m40000644000175000017500000000150013772054670016142 0ustar frankiefrankie# inttypes-h.m4 serial 1 (gettext-0.15) dnl Copyright (C) 1997-2002, 2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. # Define HAVE_INTTYPES_H if exists and doesn't clash with # . AC_DEFUN([gl_HEADER_INTTYPES_H], [ AC_CACHE_CHECK([for inttypes.h], gl_cv_header_inttypes_h, [ AC_TRY_COMPILE( [#include #include ], [], gl_cv_header_inttypes_h=yes, gl_cv_header_inttypes_h=no) ]) if test $gl_cv_header_inttypes_h = yes; then AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1, [Define if exists and doesn't clash with .]) fi ]) ypbind-mt-2.7.2/m4/glibc21.m40000644000175000017500000000144513772054670015271 0ustar frankiefrankie# glibc21.m4 serial 3 dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Test for the GNU C Library, version 2.1 or newer. # From Bruno Haible. AC_DEFUN([gl_GLIBC21], [ AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, ac_cv_gnu_library_2_1, [AC_EGREP_CPP([Lucky GNU user], [ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) Lucky GNU user #endif #endif ], ac_cv_gnu_library_2_1=yes, ac_cv_gnu_library_2_1=no) ] ) AC_SUBST(GLIBC21) GLIBC21="$ac_cv_gnu_library_2_1" ] ) ypbind-mt-2.7.2/m4/intdiv0.m40000644000175000017500000000334013772054670015417 0ustar frankiefrankie# intdiv0.m4 serial 1 (gettext-0.11.3) dnl Copyright (C) 2002 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([gt_INTDIV0], [ AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_CACHE_CHECK([whether integer division by zero raises SIGFPE], gt_cv_int_divbyzero_sigfpe, [ AC_TRY_RUN([ #include #include static void #ifdef __cplusplus sigfpe_handler (int sig) #else sigfpe_handler (sig) int sig; #endif { /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */ exit (sig != SIGFPE); } int x = 1; int y = 0; int z; int nan; int main () { signal (SIGFPE, sigfpe_handler); /* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */ #if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP) signal (SIGTRAP, sigfpe_handler); #endif /* Linux/SPARC yields signal SIGILL. */ #if defined (__sparc__) && defined (__linux__) signal (SIGILL, sigfpe_handler); #endif z = x / y; nan = y / y; exit (1); } ], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no, [ # Guess based on the CPU. case "$host_cpu" in alpha* | i[34567]86 | m68k | s390*) gt_cv_int_divbyzero_sigfpe="guessing yes";; *) gt_cv_int_divbyzero_sigfpe="guessing no";; esac ]) ]) case "$gt_cv_int_divbyzero_sigfpe" in *yes) value=1;; *) value=0;; esac AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value, [Define if integer division by zero raises signal SIGFPE.]) ]) ypbind-mt-2.7.2/m4/gettext.m40000644000175000017500000003561513772054670015540 0ustar frankiefrankie# gettext.m4 serial 66 (gettext-0.18.2) dnl Copyright (C) 1995-2014 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2006, 2008-2010. dnl Macro to add for using GNU gettext. dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The dnl default (if it is not specified or empty) is 'no-libtool'. dnl INTLSYMBOL should be 'external' for packages with no intl directory, dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. dnl If INTLSYMBOL is 'use-libtool', then a libtool library dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, dnl depending on --{enable,disable}-{shared,static} and on the presence of dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library dnl $(top_builddir)/intl/libintl.a will be created. dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext dnl implementations (in libc or libintl) without the ngettext() function dnl will be ignored. If NEEDSYMBOL is specified and is dnl 'need-formatstring-macros', then GNU gettext implementations that don't dnl support the ISO C 99 formatstring macros will be ignored. dnl INTLDIR is used to find the intl libraries. If empty, dnl the value '$(top_builddir)/intl/' is used. dnl dnl The result of the configuration is one of three cases: dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled dnl and used. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 2) GNU gettext has been found in the system's C library. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 3) No internationalization, always use English msgid. dnl Catalog format: none dnl Catalog extension: none dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. dnl The use of .gmo is historical (it was needed to avoid overwriting the dnl GNU format catalogs when building on a platform with an X/Open gettext), dnl but we keep it in order not to force irrelevant filename changes on the dnl maintainers. dnl AC_DEFUN([AM_GNU_GETTEXT], [ dnl Argument checking. ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT ])])])])]) ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old], [AC_DIAGNOSE([obsolete], [Use of AM_GNU_GETTEXT without [external] argument is deprecated.])]) ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT ])])])]) define([gt_included_intl], ifelse([$1], [external], ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), [yes])) define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) gt_NEEDS_INIT AM_GNU_GETTEXT_NEED([$2]) AC_REQUIRE([AM_PO_SUBDIRS])dnl ifelse(gt_included_intl, yes, [ AC_REQUIRE([AM_INTL_SUBDIR])dnl ]) dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Sometimes libintl requires libiconv, so first search for libiconv. dnl Ideally we would do this search only after the dnl if test "$USE_NLS" = "yes"; then dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT dnl the configure script would need to contain the same shell code dnl again, outside any 'if'. There are two solutions: dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not dnl documented, we avoid it. ifelse(gt_included_intl, yes, , [ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) ]) dnl Sometimes, on Mac OS X, libintl requires linking with CoreFoundation. gt_INTL_MACOSX dnl Set USE_NLS. AC_REQUIRE([AM_NLS]) ifelse(gt_included_intl, yes, [ BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no ]) LIBINTL= LTLIBINTL= POSUB= dnl Add a version number to the cache macros. case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" dnl If we use NLS figure out what method if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no ifelse(gt_included_intl, yes, [ AC_MSG_CHECKING([whether included gettext is requested]) AC_ARG_WITH([included-gettext], [ --with-included-gettext use the GNU gettext library included here], nls_cv_force_use_gnu_gettext=$withval, nls_cv_force_use_gnu_gettext=no) AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext]) nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then ]) dnl User does not insist on using GNU NLS library. Figure out what dnl to use. If GNU gettext is available we use this. Else we have dnl to fall back to GNU NLS library. if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings; ]], [[ bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings ]])], [eval "$gt_func_gnugettext_libc=yes"], [eval "$gt_func_gnugettext_libc=no"])]) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl Sometimes libintl requires libiconv, so first search for libiconv. ifelse(gt_included_intl, yes, , [ AM_ICONV_LINK ]) dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) dnl because that would add "-liconv" to LIBINTL and LTLIBINTL dnl even if libiconv doesn't exist. AC_LIB_LINKFLAGS_BODY([intl]) AC_CACHE_CHECK([for GNU gettext in libintl], [$gt_func_gnugettext_libintl], [gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" dnl Now see whether libintl exists and does not depend on libiconv. AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); ]], [[ bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ]])], [eval "$gt_func_gnugettext_libintl=yes"], [eval "$gt_func_gnugettext_libintl=no"]) dnl Now see whether libintl exists and depends on libiconv. if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); ]], [[ bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ]])], [LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" ]) fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS"]) fi dnl If an already present or preinstalled GNU gettext() is found, dnl use it. But if this macro is used in GNU gettext, and GNU dnl gettext is already preinstalled in libintl, we update this dnl libintl. (Cf. the install rule in intl/Makefile.in.) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else dnl Reset the values set by searching for libintl. LIBINTL= LTLIBINTL= INCINTL= fi ifelse(gt_included_intl, yes, [ if test "$gt_use_preinstalled_gnugettext" != "yes"; then dnl GNU gettext is not found in the C library. dnl Fall back on included GNU gettext library. nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions used to generate GNU NLS library. BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi CATOBJEXT= if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions to use GNU gettext tools. CATOBJEXT=.gmo fi ]) if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Some extra flags are needed during linking. LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then AC_DEFINE([ENABLE_NLS], [1], [Define to 1 if translation of program messages to the user's native language is requested.]) else USE_NLS=no fi fi AC_MSG_CHECKING([whether to use NLS]) AC_MSG_RESULT([$USE_NLS]) if test "$USE_NLS" = "yes"; then AC_MSG_CHECKING([where the gettext function comes from]) if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi AC_MSG_RESULT([$gt_source]) fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then AC_MSG_CHECKING([how to link with libintl]) AC_MSG_RESULT([$LIBINTL]) AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) fi dnl For backward compatibility. Some packages may be using this. AC_DEFINE([HAVE_GETTEXT], [1], [Define if the GNU gettext() function is already present or preinstalled.]) AC_DEFINE([HAVE_DCGETTEXT], [1], [Define if the GNU dcgettext() function is already present or preinstalled.]) fi dnl We need to process the po/ directory. POSUB=po fi ifelse(gt_included_intl, yes, [ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL dnl to 'yes' because some of the testsuite requires it. if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then BUILD_INCLUDED_LIBINTL=yes fi dnl Make all variables we use known to autoconf. AC_SUBST([BUILD_INCLUDED_LIBINTL]) AC_SUBST([USE_INCLUDED_LIBINTL]) AC_SUBST([CATOBJEXT]) dnl For backward compatibility. Some configure.ins may be using this. nls_cv_header_intl= nls_cv_header_libgt= dnl For backward compatibility. Some Makefiles may be using this. DATADIRNAME=share AC_SUBST([DATADIRNAME]) dnl For backward compatibility. Some Makefiles may be using this. INSTOBJEXT=.mo AC_SUBST([INSTOBJEXT]) dnl For backward compatibility. Some Makefiles may be using this. GENCAT=gencat AC_SUBST([GENCAT]) dnl For backward compatibility. Some Makefiles may be using this. INTLOBJS= if test "$USE_INCLUDED_LIBINTL" = yes; then INTLOBJS="\$(GETTOBJS)" fi AC_SUBST([INTLOBJS]) dnl Enable libtool support if the surrounding package wishes it. INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX]) ]) dnl For backward compatibility. Some Makefiles may be using this. INTLLIBS="$LIBINTL" AC_SUBST([INTLLIBS]) dnl Make all documented variables known to autoconf. AC_SUBST([LIBINTL]) AC_SUBST([LTLIBINTL]) AC_SUBST([POSUB]) ]) dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. m4_define([gt_NEEDS_INIT], [ m4_divert_text([DEFAULTS], [gt_needs=]) m4_define([gt_NEEDS_INIT], []) ]) dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) AC_DEFUN([AM_GNU_GETTEXT_NEED], [ m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) ]) dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) ypbind-mt-2.7.2/m4/ulonglong.m40000644000175000017500000000161513772054670016051 0ustar frankiefrankie# ulonglong.m4 serial 4 dnl Copyright (C) 1999-2004 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. # Define HAVE_UNSIGNED_LONG_LONG if 'unsigned long long' works. AC_DEFUN([gl_AC_TYPE_UNSIGNED_LONG_LONG], [ AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long, [AC_TRY_LINK([unsigned long long ull = 1ULL; int i = 63;], [unsigned long long ullmax = (unsigned long long) -1; return ull << i | ull >> i | ullmax / ull | ullmax % ull;], ac_cv_type_unsigned_long_long=yes, ac_cv_type_unsigned_long_long=no)]) if test $ac_cv_type_unsigned_long_long = yes; then AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1, [Define if you have the 'unsigned long long' type.]) fi ]) ypbind-mt-2.7.2/m4/codeset.m40000644000175000017500000000135113772054670015470 0ustar frankiefrankie# codeset.m4 serial AM1 (gettext-0.10.40) dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([AM_LANGINFO_CODESET], [ AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, [AC_TRY_LINK([#include ], [char* cs = nl_langinfo(CODESET);], am_cv_langinfo_codeset=yes, am_cv_langinfo_codeset=no) ]) if test $am_cv_langinfo_codeset = yes; then AC_DEFINE(HAVE_LANGINFO_CODESET, 1, [Define if you have and nl_langinfo(CODESET).]) fi ]) ypbind-mt-2.7.2/m4/inttypes.m40000644000175000017500000000171713772054670015727 0ustar frankiefrankie# inttypes.m4 serial 1 (gettext-0.11.4) dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Paul Eggert. # Define HAVE_INTTYPES_H if exists and doesn't clash with # . AC_DEFUN([gt_HEADER_INTTYPES_H], [ AC_CACHE_CHECK([for inttypes.h], gt_cv_header_inttypes_h, [ AC_TRY_COMPILE( [#include #include ], [], gt_cv_header_inttypes_h=yes, gt_cv_header_inttypes_h=no) ]) if test $gt_cv_header_inttypes_h = yes; then AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1, [Define if exists and doesn't clash with .]) fi ]) ypbind-mt-2.7.2/m4/lib-prefix.m40000644000175000017500000002042213772054670016103 0ustar frankiefrankie# lib-prefix.m4 serial 7 (gettext-0.18) dnl Copyright (C) 2001-2005, 2008-2014 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't dnl require excessive bracketing. ifdef([AC_HELP_STRING], [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], [AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl to access previously installed libraries. The basic assumption is that dnl a user will want packages to use other packages he previously installed dnl with the same --prefix option. dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate dnl libraries, but is otherwise very convenient. AC_DEFUN([AC_LIB_PREFIX], [ AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib-prefix], [ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib --without-lib-prefix don't search for libraries in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" fi fi ]) if test $use_additional = yes; then dnl Potentially add $additional_includedir to $CPPFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's already present in $CPPFLAGS, dnl 3. if it's /usr/local/include and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= for x in $CPPFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $CPPFLAGS. CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" fi fi fi fi dnl Potentially add $additional_libdir to $LDFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's already present in $LDFLAGS, dnl 3. if it's /usr/local/lib and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= for x in $LDFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LDFLAGS. LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" fi fi fi fi fi ]) dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, dnl acl_final_exec_prefix, containing the values to which $prefix and dnl $exec_prefix will expand at the end of the configure script. AC_DEFUN([AC_LIB_PREPARE_PREFIX], [ dnl Unfortunately, prefix and exec_prefix get only finally determined dnl at the end of configure. if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" ]) dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the dnl variables prefix and exec_prefix bound to the values they will have dnl at the end of the configure script. AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], [ acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" $1 exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" ]) dnl AC_LIB_PREPARE_MULTILIB creates dnl - a variable acl_libdirstem, containing the basename of the libdir, either dnl "lib" or "lib64" or "lib/64", dnl - a variable acl_libdirstem2, as a secondary possible value for dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or dnl "lib/amd64". AC_DEFUN([AC_LIB_PREPARE_MULTILIB], [ dnl There is no formal standard regarding lib and lib64. dnl On glibc systems, the current practice is that on a system supporting dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine dnl the compiler's default mode by looking at the compiler's library search dnl path. If at least one of its elements ends in /lib64 or points to a dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI. dnl Otherwise we use the default, namely "lib". dnl On Solaris systems, the current practice is that on a system supporting dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. AC_REQUIRE([AC_CANONICAL_HOST]) acl_libdirstem=lib acl_libdirstem2= case "$host_os" in solaris*) dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment dnl . dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the dnl symlink is missing, so we set acl_libdirstem2 too. AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], [AC_EGREP_CPP([sixtyfour bits], [ #ifdef _LP64 sixtyfour bits #endif ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no]) ]) if test $gl_cv_solaris_64bit = yes; then acl_libdirstem=lib/64 case "$host_cpu" in sparc*) acl_libdirstem2=lib/sparcv9 ;; i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; esac fi ;; *) searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; */../ | */.. ) # Better ignore directories of this form. They are misleading. ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" fi ;; esac test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" ]) ypbind-mt-2.7.2/m4/uintmax_t.m40000644000175000017500000000207613772054670016057 0ustar frankiefrankie# uintmax_t.m4 serial 9 dnl Copyright (C) 1997-2004 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. AC_PREREQ(2.13) # Define uintmax_t to 'unsigned long' or 'unsigned long long' # if it is not already defined in or . AC_DEFUN([gl_AC_TYPE_UINTMAX_T], [ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) AC_REQUIRE([gl_AC_HEADER_STDINT_H]) if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then AC_REQUIRE([gl_AC_TYPE_UNSIGNED_LONG_LONG]) test $ac_cv_type_unsigned_long_long = yes \ && ac_type='unsigned long long' \ || ac_type='unsigned long' AC_DEFINE_UNQUOTED(uintmax_t, $ac_type, [Define to unsigned long or unsigned long long if and don't define.]) else AC_DEFINE(HAVE_UINTMAX_T, 1, [Define if you have the 'uintmax_t' type in or .]) fi ]) ypbind-mt-2.7.2/m4/progtest.m40000644000175000017500000000604013772054670015711 0ustar frankiefrankie# progtest.m4 serial 7 (gettext-0.18.2) dnl Copyright (C) 1996-2003, 2005, 2008-2014 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1996. AC_PREREQ([2.50]) # Search path for a program which passes the given test. dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) AC_DEFUN([AM_PATH_PROG_WITH_TEST], [ # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL([ac_cv_path_$1], [case "[$]$1" in [[\\/]]* | ?:[[\\/]]*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in ifelse([$5], , $PATH, [$5]); do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$][$1]) else AC_MSG_RESULT([no]) fi AC_SUBST([$1])dnl ]) ypbind-mt-2.7.2/m4/lib-ld.m40000644000175000017500000000714313772054670015212 0ustar frankiefrankie# lib-ld.m4 serial 6 dnl Copyright (C) 1996-2003, 2009-2014 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Subroutines of libtool.m4, dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid dnl collision with libtool.m4. dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no. AC_DEFUN([AC_LIB_PROG_LD_GNU], [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], [# I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 /dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'` while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL([acl_cv_path_LD], [if test -z "$LD"; then acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$acl_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 #if HAVE_STDINT_H #include #endif #ifdef SIZE_MAX Found it #endif ], result=yes) if test -z "$result"; then dnl Define it ourselves. Here we assume that the type 'size_t' is not wider dnl than the type 'unsigned long'. Try hard to find a definition that can dnl be used in a preprocessor #if, i.e. doesn't contain a cast. _AC_COMPUTE_INT([sizeof (size_t) * CHAR_BIT - 1], size_t_bits_minus_1, [#include #include ], size_t_bits_minus_1=) _AC_COMPUTE_INT([sizeof (size_t) <= sizeof (unsigned int)], fits_in_uint, [#include ], fits_in_uint=) if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then if test $fits_in_uint = 1; then dnl Even though SIZE_MAX fits in an unsigned int, it must be of type dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'. AC_TRY_COMPILE([#include extern size_t foo; extern unsigned long foo; ], [], fits_in_uint=0) fi dnl We cannot use 'expr' to simplify this expression, because 'expr' dnl works only with 'long' integers in the host environment, while we dnl might be cross-compiling from a 32-bit platform to a 64-bit platform. if test $fits_in_uint = 1; then result="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)" else result="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)" fi else dnl Shouldn't happen, but who knows... result='((size_t)~(size_t)0)' fi fi AC_MSG_RESULT([$result]) if test "$result" != yes; then AC_DEFINE_UNQUOTED([SIZE_MAX], [$result], [Define as the maximum value of type 'size_t', if the system doesn't define it.]) fi ]) ypbind-mt-2.7.2/m4/iconv.m40000644000175000017500000002162013772054670015161 0ustar frankiefrankie# iconv.m4 serial 18 (gettext-0.18.2) dnl Copyright (C) 2000-2002, 2007-2014 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], [ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_LIB_LINKFLAGS_BODY([iconv]) ]) AC_DEFUN([AM_ICONV_LINK], [ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and dnl those with the standalone portable GNU libiconv installed). AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) dnl Add $INCICONV to CPPFLAGS before performing the following checks, dnl because if the user has installed libiconv and not disabled its use dnl via --without-libiconv-prefix, he wants to use it. The first dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed. am_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [ am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include #include ]], [[iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);]])], [am_cv_func_iconv=yes]) if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include #include ]], [[iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);]])], [am_cv_lib_iconv=yes] [am_cv_func_iconv=yes]) LIBS="$am_save_LIBS" fi ]) if test "$am_cv_func_iconv" = yes; then AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11, dnl Solaris 10. am_save_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" fi AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include int main () { int result = 0; /* Test against AIX 5.1 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); if (cd_utf8_to_88591 != (iconv_t)(-1)) { static const char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 1; iconv_close (cd_utf8_to_88591); } } /* Test against Solaris 10 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); if (cd_ascii_to_88591 != (iconv_t)(-1)) { static const char input[] = "\263"; char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_ascii_to_88591, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 2; iconv_close (cd_ascii_to_88591); } } /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ { iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static const char input[] = "\304"; static char buf[2] = { (char)0xDE, (char)0xAD }; const char *inptr = input; size_t inbytesleft = 1; char *outptr = buf; size_t outbytesleft = 1; size_t res = iconv (cd_88591_to_utf8, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) result |= 4; iconv_close (cd_88591_to_utf8); } } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_88591_to_utf8, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if ((int)res > 0) result |= 8; iconv_close (cd_88591_to_utf8); } } #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ if (/* Try standardized names. */ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) /* Try IRIX, OSF/1 names. */ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) /* Try AIX names. */ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) /* Try HP-UX names. */ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) result |= 16; return result; }]])], [am_cv_func_iconv_works=yes], [am_cv_func_iconv_works=no], [ changequote(,)dnl case "$host_os" in aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; *) am_cv_func_iconv_works="guessing yes" ;; esac changequote([,])dnl ]) LIBS="$am_save_LIBS" ]) case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; esac else am_func_iconv=no am_cv_lib_iconv=no fi if test "$am_func_iconv" = yes; then AC_DEFINE([HAVE_ICONV], [1], [Define if you have the iconv() function and it works.]) fi if test "$am_cv_lib_iconv" = yes; then AC_MSG_CHECKING([how to link with libiconv]) AC_MSG_RESULT([$LIBICONV]) else dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV dnl either. CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi AC_SUBST([LIBICONV]) AC_SUBST([LTLIBICONV]) ]) dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to dnl avoid warnings like dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required". dnl This is tricky because of the way 'aclocal' is implemented: dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN. dnl Otherwise aclocal's initial scan pass would miss the macro definition. dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions. dnl Otherwise aclocal would emit many "Use of uninitialized value $1" dnl warnings. m4_define([gl_iconv_AC_DEFUN], m4_version_prereq([2.64], [[AC_DEFUN_ONCE( [$1], [$2])]], [m4_ifdef([gl_00GNULIB], [[AC_DEFUN_ONCE( [$1], [$2])]], [[AC_DEFUN( [$1], [$2])]])])) gl_iconv_AC_DEFUN([AM_ICONV], [ AM_ICONV_LINK if test "$am_cv_func_iconv" = yes; then AC_MSG_CHECKING([for iconv declaration]) AC_CACHE_VAL([am_cv_proto_iconv], [ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include #include extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif ]], [[]])], [am_cv_proto_iconv_arg1=""], [am_cv_proto_iconv_arg1="const"]) am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` AC_MSG_RESULT([ $am_cv_proto_iconv]) AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1], [Define as const if the declaration of iconv() needs const.]) dnl Also substitute ICONV_CONST in the gnulib generated . m4_ifdef([gl_ICONV_H_DEFAULTS], [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) if test -n "$am_cv_proto_iconv_arg1"; then ICONV_CONST="const" fi ]) fi ]) ypbind-mt-2.7.2/m4/wchar_t.m40000644000175000017500000000132613772054670015473 0ustar frankiefrankie# wchar_t.m4 serial 1 (gettext-0.12) dnl Copyright (C) 2002-2003 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether has the 'wchar_t' type. dnl Prerequisite: AC_PROG_CC AC_DEFUN([gt_TYPE_WCHAR_T], [ AC_CACHE_CHECK([for wchar_t], gt_cv_c_wchar_t, [AC_TRY_COMPILE([#include wchar_t foo = (wchar_t)'\0';], , gt_cv_c_wchar_t=yes, gt_cv_c_wchar_t=no)]) if test $gt_cv_c_wchar_t = yes; then AC_DEFINE(HAVE_WCHAR_T, 1, [Define if you have the 'wchar_t' type.]) fi ]) ypbind-mt-2.7.2/m4/lib-link.m40000644000175000017500000010044313772054670015545 0ustar frankiefrankie# lib-link.m4 serial 26 (gettext-0.18.2) dnl Copyright (C) 2001-2014 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_PREREQ([2.54]) dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and dnl augments the CPPFLAGS variable. dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) pushdef([Name],[m4_translit([$1],[./+-], [____])]) pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ AC_LIB_LINKFLAGS_BODY([$1], [$2]) ac_cv_lib[]Name[]_libs="$LIB[]NAME" ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" ac_cv_lib[]Name[]_cppflags="$INC[]NAME" ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX" ]) LIB[]NAME="$ac_cv_lib[]Name[]_libs" LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" INC[]NAME="$ac_cv_lib[]Name[]_cppflags" LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) AC_SUBST([LIB]NAME[_PREFIX]) dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the dnl results of this search when this library appears as a dependency. HAVE_LIB[]NAME=yes popdef([NAME]) popdef([Name]) ]) dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode, [missing-message]) dnl searches for libname and the libraries corresponding to explicit and dnl implicit dependencies, together with the specified include files and dnl the ability to compile and link the specified testcode. The missing-message dnl defaults to 'no' and may contain additional hints for the user. dnl If found, it sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} dnl and LTLIB${NAME} variables and augments the CPPFLAGS variable, and dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) pushdef([Name],[m4_translit([$1],[./+-], [____])]) pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME dnl accordingly. AC_LIB_LINKFLAGS_BODY([$1], [$2]) dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, dnl because if the user has installed lib[]Name and not disabled its use dnl via --without-lib[]Name-prefix, he wants to use it. ac_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ ac_save_LIBS="$LIBS" dnl If $LIB[]NAME contains some -l options, add it to the end of LIBS, dnl because these -l options might require -L options that are present in dnl LIBS. -l options benefit only from the -L options listed before it. dnl Otherwise, add it to the front of LIBS, because it may be a static dnl library that depends on another static library that is present in LIBS. dnl Static libraries benefit only from the static libraries listed after dnl it. case " $LIB[]NAME" in *" -l"*) LIBS="$LIBS $LIB[]NAME" ;; *) LIBS="$LIB[]NAME $LIBS" ;; esac AC_LINK_IFELSE( [AC_LANG_PROGRAM([[$3]], [[$4]])], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name='m4_if([$5], [], [no], [[$5]])']) LIBS="$ac_save_LIBS" ]) if test "$ac_cv_lib[]Name" = yes; then HAVE_LIB[]NAME=yes AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the lib][$1 library.]) AC_MSG_CHECKING([how to link with lib[]$1]) AC_MSG_RESULT([$LIB[]NAME]) else HAVE_LIB[]NAME=no dnl If $LIB[]NAME didn't lead to a usable library, we don't need dnl $INC[]NAME either. CPPFLAGS="$ac_save_CPPFLAGS" LIB[]NAME= LTLIB[]NAME= LIB[]NAME[]_PREFIX= fi AC_SUBST([HAVE_LIB]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) AC_SUBST([LIB]NAME[_PREFIX]) popdef([NAME]) popdef([Name]) ]) dnl Determine the platform dependent parameters needed to use rpath: dnl acl_libext, dnl acl_shlibext, dnl acl_libname_spec, dnl acl_library_names_spec, dnl acl_hardcode_libdir_flag_spec, dnl acl_hardcode_libdir_separator, dnl acl_hardcode_direct, dnl acl_hardcode_minus_L. AC_DEFUN([AC_LIB_RPATH], [ dnl Tell automake >= 1.10 to complain if config.rpath is missing. m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done ]) wl="$acl_cv_wl" acl_libext="$acl_cv_libext" acl_shlibext="$acl_cv_shlibext" acl_libname_spec="$acl_cv_libname_spec" acl_library_names_spec="$acl_cv_library_names_spec" acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" acl_hardcode_direct="$acl_cv_hardcode_direct" acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" dnl Determine whether the user wants rpath handling at all. AC_ARG_ENABLE([rpath], [ --disable-rpath do not hardcode runtime library paths], :, enable_rpath=yes) ]) dnl AC_LIB_FROMPACKAGE(name, package) dnl declares that libname comes from the given package. The configure file dnl will then not have a --with-libname-prefix option but a dnl --with-package-prefix option. Several libraries can come from the same dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar dnl macro call that searches for libname. AC_DEFUN([AC_LIB_FROMPACKAGE], [ pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) define([acl_frompackage_]NAME, [$2]) popdef([NAME]) pushdef([PACK],[$2]) pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) define([acl_libsinpackage_]PACKUP, m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1]) popdef([PACKUP]) popdef([PACK]) ]) dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_LINKFLAGS_BODY], [ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) dnl Autoconf >= 2.61 supports dots in --with options. pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[m4_translit(PACK,[.],[_])],PACK)]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_ARG_WITH(P_A_C_K[-prefix], [[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && ! test -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi ]) dnl Search the library and its dependencies in $additional_libdir and dnl $LDFLAGS. Using breadth-first-seach. LIB[]NAME= LTLIB[]NAME= INC[]NAME= LIB[]NAME[]_PREFIX= dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been dnl computed. So it has to be reset here. HAVE_LIB[]NAME= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='$1 $2' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" dnl See if it was already located by an earlier AC_LIB_LINKFLAGS dnl or AC_LIB_HAVE_LINKFLAGS call. uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" else dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined dnl that this library doesn't exist. So just drop it. : fi else dnl Search the library lib$name in $additional_libdir and $LDFLAGS dnl and the already constructed $LIBNAME/$LTLIBNAME. found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" dnl The same code as in the loop below: dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then dnl Found the library. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then dnl Linking with a shared library. We attempt to hardcode its dnl directory into the executable's runpath, unless it's the dnl standard /usr/lib. if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then dnl No hardcoding is needed. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl Use an explicit option to hardcode DIR into the resulting dnl binary. dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi dnl The hardcoding into $LIBNAME is system dependent. if test "$acl_hardcode_direct" = yes; then dnl Using DIR/libNAME.so during linking hardcodes DIR into the dnl resulting binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode DIR into the resulting dnl binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else dnl Rely on "-L$found_dir". dnl But don't add it if it's already contained in the LDFLAGS dnl or the already constructed $LIBNAME haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH dnl here, because this doesn't fit in flags passed to the dnl compiler. So give up. No hardcoding. This affects only dnl very old systems. dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then dnl Linking with a static library. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" else dnl We shouldn't come here, but anyway it's good to have a dnl fallback. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" fi fi dnl Assume the include files are nearby. additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = '$1'; then LIB[]NAME[]_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = '$1'; then LIB[]NAME[]_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then dnl Potentially add $additional_includedir to $INCNAME. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's /usr/local/include and we are using GCC on Linux, dnl 3. if it's already present in $CPPFLAGS or the already dnl constructed $INCNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INC[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $INCNAME. INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" fi fi fi fi fi dnl Look for dependencies. if test -n "$found_la"; then dnl Read the .la file. It defines the variables dnl dlname, library_names, old_library, dependency_libs, current, dnl age, revision, installed, dlopen, dlpreopen, libdir. save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" dnl We use only dependency_libs. for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's /usr/local/lib and we are using GCC on Linux, dnl 3. if it's already present in $LDFLAGS or the already dnl constructed $LIBNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LIBNAME. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LTLIBNAME. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) dnl Handle this in the next round. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) dnl Handle this in the next round. Throw away the .la's dnl directory; it is already contained in a preceding -L dnl option. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) dnl Most likely an immediate library name. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" ;; esac done fi else dnl Didn't find the library; assume it is in the system directories dnl known to the linker and runtime loader. (All the system dnl directories known to the linker should also be known to the dnl runtime loader, otherwise the system is severely misconfigured.) LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user must dnl pass all path elements in one option. We can arrange that for a dnl single library, but not when more than one $LIBNAMEs are used. alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" else dnl The -rpath options are cumulative. for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then dnl When using libtool, the option that works for both libraries and dnl executables is -R. The -R options are cumulative. for found_dir in $ltrpathdirs; do LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" done fi popdef([P_A_C_K]) popdef([PACKLIBS]) popdef([PACKUP]) popdef([PACK]) popdef([NAME]) ]) dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, dnl unless already present in VAR. dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes dnl contains two or three consecutive elements that belong together. AC_DEFUN([AC_LIB_APPENDTOVAR], [ for element in [$2]; do haveit= for x in $[$1]; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then [$1]="${[$1]}${[$1]:+ }$element" fi done ]) dnl For those cases where a variable contains several -L and -l options dnl referring to unknown libraries and directories, this macro determines the dnl necessary additional linker options for the runtime path. dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) dnl sets LDADDVAR to linker options needed together with LIBSVALUE. dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, dnl otherwise linking without libtool is assumed. AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], [ AC_REQUIRE([AC_LIB_RPATH]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) $1= if test "$enable_rpath" != no; then if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode directories into the resulting dnl binary. rpathdirs= next= for opt in $2; do if test -n "$next"; then dir="$next" dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem" \ && test "X$dir" != "X/usr/$acl_libdirstem2"; then rpathdirs="$rpathdirs $dir" fi next= else case $opt in -L) next=yes ;; -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem" \ && test "X$dir" != "X/usr/$acl_libdirstem2"; then rpathdirs="$rpathdirs $dir" fi next= ;; *) next= ;; esac fi done if test "X$rpathdirs" != "X"; then if test -n ""$3""; then dnl libtool is used for linking. Use -R options. for dir in $rpathdirs; do $1="${$1}${$1:+ }-R$dir" done else dnl The linker is used for linking directly. if test -n "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user dnl must pass all path elements in one option. alldirs= for dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="$flag" else dnl The -rpath options are cumulative. for dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="${$1}${$1:+ }$flag" done fi fi fi fi fi AC_SUBST([$1]) ]) ypbind-mt-2.7.2/m4/signed.m40000644000175000017500000000115413772054670015314 0ustar frankiefrankie# signed.m4 serial 1 (gettext-0.10.40) dnl Copyright (C) 2001-2002 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([bh_C_SIGNED], [ AC_CACHE_CHECK([for signed], bh_cv_c_signed, [AC_TRY_COMPILE(, [signed char x;], bh_cv_c_signed=yes, bh_cv_c_signed=no)]) if test $bh_cv_c_signed = no; then AC_DEFINE(signed, , [Define to empty if the C compiler doesn't support this keyword.]) fi ]) ypbind-mt-2.7.2/src/0000755000175000017500000000000013772054670014047 5ustar frankiefrankieypbind-mt-2.7.2/src/ypbind.h0000644000175000017500000000442613772054670015513 0ustar frankiefrankie/* Copyright (c) 1998, 1999, 2001 Thorsten Kukuk This file is part of ypbind-mt. Author: Thorsten Kukuk The ypbind-mt are free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. ypbind-mt is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef __YPBIND_H__ #define __YPBIND_H__ #include #include #include #ifdef __cplusplus extern "C" { #endif #define YPMAXDOMAIN 256 #define SET_NO 0 #define SET_YPSET 1 #define SET_YPSETME 2 extern int ypset; typedef char *domainname; /* Detailed failure reason codes for response field ypbind_error*/ #define YPBIND_ERR_ERR 1 #define YPBIND_ERR_NOSERV 2 #define YPBIND_ERR_RESC 3 #define YPBINDPROC_OLDNULL 0 extern bool_t ypbindproc_oldnull_1_svc(void *, void *, struct svc_req *); #define YPBINDPROC_OLDDOMAIN 1 extern bool_t ypbindproc_olddomain_1_svc(domainname *, ypbind2_resp *, struct svc_req *); #define YPBINDPROC_OLDSETDOM 2 extern bool_t ypbindproc_oldsetdom_1_svc(ypbind_oldsetdom *, void *, struct svc_req *); extern int ypbindprog_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t); #define YPBINDPROC_NULL 0 extern bool_t ypbindproc_null_2_svc (void *, void *, struct svc_req *); #define YPBINDPROC_DOMAIN 1 extern bool_t ypbindproc_domain_2_svc (domainname *, ypbind2_resp *, struct svc_req *); #define YPBINDPROC_SETDOM 2 extern bool_t ypbindproc_setdom_2_svc (ypbind2_setdom *, void *, struct svc_req *); extern int ypbindprog_2_freeresult (SVCXPRT *, xdrproc_t, caddr_t); extern bool_t ypbindproc_null_3_svc (void *, void *, struct svc_req *); extern bool_t ypbindproc_domain_3_svc (domainname *, ypbind3_resp *, struct svc_req *); extern bool_t ypbindproc_setdom_3_svc (ypbind3_setdom *, void *, struct svc_req *); extern int ypbindprog_3_freeresult (SVCXPRT *, xdrproc_t, caddr_t); #ifdef __cplusplus } #endif #endif /* !__YPBIND_H__ */ ypbind-mt-2.7.2/src/ypbind_server.c0000644000175000017500000003373213772054670017076 0ustar frankiefrankie/* Copyright (c) 1998, 1999, 2000, 2001, 2006, 2009, 2014 Thorsten Kukuk, Germany This file is part of ypbind-mt. Author: Thorsten Kukuk The ypbind-mt are free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. ypbind-mt is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #if defined(HAVE_CONFIG_H) #include "config.h" #endif #include #include #include #include #include #include #include "ypbind.h" #include "ypbind3_binding.h" #include "log_msg.h" #include "local.h" #ifndef _ #define _(String) gettext (String) #endif bool_t ypbindproc_oldnull_1_svc (void *argp __attribute__ ((unused)), void *result, struct svc_req *rqstp) { if (debug_flag) { struct netconfig *nconf; struct netbuf *rqhost = svc_getrpccaller(rqstp->rq_xprt); if ((nconf = getnetconfigent (rqstp->rq_xprt->xp_netid)) == NULL) svcerr_systemerr (rqstp->rq_xprt); else { char namebuf6[INET6_ADDRSTRLEN]; log_msg (LOG_DEBUG, "ypbindproc_oldnull_1 from %s port %i", taddr2ipstr (nconf, rqhost, namebuf6, sizeof (namebuf6)), taddr2port (nconf, rqhost)); freenetconfigent (nconf); } } memset (result, 0, sizeof (char *)); return TRUE; } bool_t ypbindproc_null_2_svc (void *argp __attribute__ ((unused)), void *result, struct svc_req *rqstp) { if (debug_flag) { struct netconfig *nconf; struct netbuf *rqhost = svc_getrpccaller(rqstp->rq_xprt); if ((nconf = getnetconfigent (rqstp->rq_xprt->xp_netid)) == NULL) svcerr_systemerr (rqstp->rq_xprt); else { char namebuf6[INET6_ADDRSTRLEN]; log_msg (LOG_DEBUG, "ypbindproc_null_3 from %s port %i", taddr2ipstr (nconf, rqhost, namebuf6, sizeof (namebuf6)), taddr2port (nconf, rqhost)); freenetconfigent (nconf); } } memset (result, 0, sizeof (char *)); return TRUE; } bool_t ypbindproc_null_3_svc (void *argp __attribute__ ((unused)), void *result, struct svc_req *rqstp) { if (debug_flag) { struct netconfig *nconf; struct netbuf *rqhost = svc_getrpccaller(rqstp->rq_xprt); if ((nconf = getnetconfigent (rqstp->rq_xprt->xp_netid)) == NULL) svcerr_systemerr (rqstp->rq_xprt); else { char namebuf6[INET6_ADDRSTRLEN]; log_msg (LOG_DEBUG, "ypbindproc_null_3 from %s port %i", taddr2ipstr (nconf, rqhost, namebuf6, sizeof (namebuf6)), taddr2port (nconf, rqhost)); freenetconfigent (nconf); } } memset (result, 0, sizeof (char *)); return TRUE; } static bool_t ypbindproc_domain_v2 (char *domain_name, ypbind2_resp *result) { memset (result, 0, sizeof (ypbind2_resp)); result->ypbind_status = YPBIND_FAIL_VAL; result->ypbind2_error = YPBIND_ERR_NOSERV; if (strchr (domain_name, '/')) { log_msg (LOG_ERR, _("Domain name '%s' has embedded slash -- rejecting."), domain_name); result->ypbind2_error = YPBIND_ERR_NODOMAIN; return TRUE; } if (check_binding (domain_name) != 0) return TRUE; /* No server available for domain domain_name */ find_domain_v2 (domain_name, result); if (debug_flag) { if (result->ypbind_status == YPBIND_FAIL_VAL) log_msg (LOG_DEBUG, _("Status: YPBIND_FAIL_VAL, %s"), ypbinderr_string (result->ypbind2_error)); else log_msg (LOG_DEBUG, _("Status: YPBIND_SUCC_VAL")); } return TRUE; } bool_t ypbindproc_olddomain_1_svc (domainname *argp, ypbind2_resp *result, struct svc_req *rqstp) { if (debug_flag) { struct netconfig *nconf; struct netbuf *rqhost = svc_getrpccaller(rqstp->rq_xprt); if ((nconf = getnetconfigent (rqstp->rq_xprt->xp_netid)) == NULL) svcerr_systemerr (rqstp->rq_xprt); else { char namebuf6[INET6_ADDRSTRLEN]; log_msg (LOG_DEBUG, "ypbindproc_olddomain_1_svc (%s) from %s port %i", *argp, taddr2ipstr (nconf, rqhost, namebuf6, sizeof (namebuf6)), taddr2port (nconf, rqhost)); freenetconfigent (nconf); } } return ypbindproc_domain_v2 (*argp, result); } bool_t ypbindproc_domain_2_svc (domainname *argp, ypbind2_resp *result, struct svc_req *rqstp) { if (debug_flag) { struct netconfig *nconf; struct netbuf *rqhost = svc_getrpccaller(rqstp->rq_xprt); if ((nconf = getnetconfigent (rqstp->rq_xprt->xp_netid)) == NULL) svcerr_systemerr (rqstp->rq_xprt); else { char namebuf6[INET6_ADDRSTRLEN]; log_msg (LOG_DEBUG, "ypbindproc_domain_2_svc (%s) from %s port %i", *argp, taddr2ipstr (nconf, rqhost, namebuf6, sizeof (namebuf6)), taddr2port (nconf, rqhost)); freenetconfigent (nconf); } } return ypbindproc_domain_v2 (*argp, result); } bool_t ypbindproc_domain_3_svc (domainname *argp, ypbind3_resp *result, struct svc_req *rqstp) { if (debug_flag) { struct netconfig *nconf; struct netbuf *rqhost = svc_getrpccaller(rqstp->rq_xprt); if ((nconf = getnetconfigent (rqstp->rq_xprt->xp_netid)) == NULL) svcerr_systemerr (rqstp->rq_xprt); else { char namebuf6[INET6_ADDRSTRLEN]; log_msg (LOG_DEBUG, "ypbindproc_domain_3_svc (%s) from %s port %i", *argp, taddr2ipstr (nconf, rqhost, namebuf6, sizeof (namebuf6)), taddr2port (nconf, rqhost)); freenetconfigent (nconf); } } memset (result, 0, sizeof (ypbind3_resp)); result->ypbind_status = YPBIND_FAIL_VAL; result->ypbind3_error = YPBIND_ERR_NOSERV; if (strchr (*argp, '/')) { log_msg (LOG_ERR, _("Domain name '%s' has embedded slash -- rejecting."), *argp); result->ypbind3_error = YPBIND_ERR_NODOMAIN; return TRUE; } if (check_binding (*argp) != 0) return TRUE; /* No server available for domain *argp */ find_domain_v3 (*argp, result); #if 0 /* ugly hack, somehow this goes still wrong somewhere */ if (result->ypbind3_servername == NULL) result->ypbind3_servername = strdup (""); #endif if (debug_flag) { if (result->ypbind_status == YPBIND_FAIL_VAL) log_msg (LOG_DEBUG, _("Status: YPBIND_FAIL_VAL, %s"), ypbinderr_string (result->ypbind2_error)); else { log_msg (LOG_DEBUG, _("Status: YPBIND_SUCC_VAL")); #if 0 /* only for debugging */ char namebuf6[INET6_ADDRSTRLEN]; if (result->ypbind3_nconf && result->ypbind3_svcaddr) printf ("ypbind_netbuf:\n\taddr: %s\n\tport: %i\n", taddr2ipstr (result->ypbind3_nconf, result->ypbind3_svcaddr, namebuf6, sizeof namebuf6), taddr2port (result->ypbind3_nconf, result->ypbind3_svcaddr)); if (result->ypbind3_servername) printf ("ypbind_servername: %s\n", result->ypbind3_servername); else printf ("ypbind_servername: NULL\n"); printf ("ypbind_hi_vers: %u\n", (u_int32_t)result->ypbind3_hi_vers); printf ("ypbind_lo_vers: %u\n", (u_int32_t)result->ypbind3_lo_vers); #endif } } return TRUE; } static bool_t ypbindproc_setdom_v3 (const char *domain_name, ypbind3_binding *binding, struct netbuf *fromhost, SVCXPRT *xprt) { struct __rpc_sockinfo si; struct netconfig *nconf; if (strchr (domain_name, '/')) { log_msg (LOG_ERR, _("Domain name '%s' has embedded slash -- rejecting."), domain_name); svcerr_noprog (xprt); return FALSE; } if ((nconf = getnetconfigent (xprt->xp_netid)) == NULL) { svcerr_systemerr (xprt); return FALSE; } if (!__rpc_nconf2sockinfo (nconf, &si)) { freenetconfigent (nconf); svcerr_systemerr (xprt); return FALSE; } freenetconfigent (nconf); switch(si.si_af) { case AF_INET: { struct sockaddr_in *sin = fromhost->buf; switch(ypset) { case SET_YPSETME: if (sin->sin_addr.s_addr != htonl(INADDR_LOOPBACK)) { if (debug_flag) log_msg (LOG_DEBUG, _("User from '%s' try's to change the binding."), inet_ntoa (sin->sin_addr)); svcerr_noprog (xprt); return FALSE; } break; case SET_YPSET: break; case SET_NO: default: if (debug_flag) log_msg (LOG_DEBUG , _("Changing the binding is not allowed.")); svcerr_noprog (xprt); return FALSE; } if (ntohs (sin->sin_port) >= IPPORT_RESERVED) { log_msg (LOG_ERR, _("SETDOM request doesn't come from reserved port.")); return TRUE; } } break; case AF_INET6: { static const unsigned char localhost_bytes[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }; static const unsigned char mapped_ipv4_localhost[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0x7f, 0, 0, 1 }; struct sockaddr_in6 *sin = fromhost->buf; switch(ypset) { case SET_YPSETME: if (memcmp(sin->sin6_addr.s6_addr, localhost_bytes, 16) != 0 && memcmp(sin->sin6_addr.s6_addr, mapped_ipv4_localhost, 16) != 0) { if (debug_flag) { char buf[INET6_ADDRSTRLEN]; if (inet_ntop(AF_INET6, &(sin->sin6_addr), buf, sizeof(buf)) != NULL) log_msg (LOG_DEBUG, _("User from '%s' try's to change the binding."), buf); } svcerr_noprog (xprt); return FALSE; } break; case SET_YPSET: break; case SET_NO: default: if (debug_flag) log_msg (LOG_DEBUG, _("Changing the binding is not allowed.")); svcerr_noprog (xprt); return FALSE; } if (ntohs (sin->sin6_port) >= IPPORT_RESERVED) { log_msg (LOG_ERR, _("SETDOM request doesn't come from reserved port.")); svcerr_noprog (xprt); return FALSE; } } break; } if (change_binding (domain_name, binding)) { svcerr_systemerr (xprt); return FALSE; } /* Trigger check of new server */ check_binding (domain_name); return TRUE; } static bool_t ypbindproc_setdom (const char *domain_name, ypbind2_binding *binding, struct netbuf *fromhost, SVCXPRT *xprt) { bool_t retval; struct ypbind3_binding *ypb3; ypb3 = __host2ypbind3_binding (inet_ntoa (binding->ypbind_binding_addr)); retval = ypbindproc_setdom_v3 (domain_name, ypb3, fromhost, xprt); __ypbind3_binding_free (ypb3); return retval; } bool_t ypbindproc_oldsetdom_1_svc (ypbind_oldsetdom *argp, void *result, struct svc_req *rqstp) { if (debug_flag) { struct netconfig *nconf; struct netbuf *rqhost = svc_getrpccaller(rqstp->rq_xprt); if ((nconf = getnetconfigent (rqstp->rq_xprt->xp_netid)) == NULL) svcerr_systemerr (rqstp->rq_xprt); else { char namebuf6[INET6_ADDRSTRLEN]; uint16_t port; port = ntohs(argp->ypoldsetdom_binding.ypbind_binding_port); log_msg (LOG_DEBUG, "ypbindproc_oldsetdom_1 (%s:%s:%d) from %s port %i", *argp->ypoldsetdom_domain, inet_ntoa (argp->ypoldsetdom_binding.ypbind_binding_addr), port, taddr2ipstr (nconf, rqhost, namebuf6, sizeof (namebuf6)), taddr2port (nconf, rqhost)); freenetconfigent (nconf); } } memset (result, 0, sizeof (char *)); return ypbindproc_setdom (argp->ypoldsetdom_domain, &argp->ypoldsetdom_binding, svc_getrpccaller (rqstp->rq_xprt), rqstp->rq_xprt); } bool_t ypbindproc_setdom_2_svc (ypbind2_setdom *argp, void *result, struct svc_req *rqstp) { if (debug_flag) { struct netconfig *nconf; struct netbuf *rqhost = svc_getrpccaller(rqstp->rq_xprt); if ((nconf = getnetconfigent (rqstp->rq_xprt->xp_netid)) == NULL) svcerr_systemerr (rqstp->rq_xprt); else { char namebuf6[INET6_ADDRSTRLEN]; log_msg (LOG_DEBUG, "ypbindproc_setdom_2 (%s) from %s port %i", argp->ypsetdom_domain, taddr2ipstr (nconf, rqhost, namebuf6, sizeof (namebuf6)), taddr2port (nconf, rqhost)); freenetconfigent (nconf); } } memset (result, 0, sizeof (char *)); return ypbindproc_setdom (argp->ypsetdom_domain, &argp->ypsetdom_binding, svc_getrpccaller (rqstp->rq_xprt), rqstp->rq_xprt); } bool_t ypbindproc_setdom_3_svc (ypbind3_setdom *argp, void *result, struct svc_req *rqstp) { if (debug_flag) { struct netconfig *nconf; struct netbuf *rqhost = svc_getrpccaller(rqstp->rq_xprt); if ((nconf = getnetconfigent (rqstp->rq_xprt->xp_netid)) == NULL) svcerr_systemerr (rqstp->rq_xprt); else { char namebuf6[INET6_ADDRSTRLEN]; log_msg (LOG_DEBUG, "ypbindproc_setdom_3 (%s) from %s port %i", argp->ypsetdom_domain, taddr2ipstr (nconf, rqhost, namebuf6, sizeof (namebuf6)), taddr2port (nconf, rqhost)); #if 0 /* only for debugging */ if (argp->ypsetdom3_nconf && argp->ypsetdom3_svcaddr) printf ("ypbind_netbuf:\n\taddr: %s\n\tport: %i\n", taddr2ipstr (argp->ypsetdom3_nconf, argp->ypsetdom3_svcaddr, namebuf6, sizeof namebuf6), taddr2port (argp->ypsetdom3_nconf, argp->ypsetdom3_svcaddr)); if (argp->ypsetdom3_servername) printf ("ypbind_servername: %s\n", argp->ypsetdom3_servername); else printf ("ypbind_servername: NULL\n"); printf ("ypbind_hi_vers: %u\n", (u_int32_t)argp->ypsetdom3_hi_vers); printf ("ypbind_lo_vers: %u\n", (u_int32_t)argp->ypsetdom3_lo_vers); #endif freenetconfigent (nconf); } } memset (result, 0, sizeof (char *)); return ypbindproc_setdom_v3 (argp->ypsetdom_domain, argp->ypsetdom_bindinfo, svc_getrpccaller (rqstp->rq_xprt), rqstp->rq_xprt); } int ypbindprog_1_freeresult (SVCXPRT *transp __attribute__ ((unused)), xdrproc_t xdr_result, caddr_t result) { xdr_free (xdr_result, result); return 1; } int ypbindprog_2_freeresult (SVCXPRT *transp __attribute__ ((unused)), xdrproc_t xdr_result, caddr_t result) { xdr_free (xdr_result, result); return 1; } int ypbindprog_3_freeresult (SVCXPRT *transp __attribute__ ((unused)), xdrproc_t xdr_result, caddr_t result) { xdr_free (xdr_result, result); return 1; } ypbind-mt-2.7.2/src/ypbind_svc.c0000644000175000017500000002023313772054670016353 0ustar frankiefrankie/* Copyright (c) 1998 - 2014 Thorsten Kukuk This file is part of ypbind-mt. Author: Thorsten Kukuk The ypbind-mt are free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. ypbind-mt is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include "ypbind.h" #include "log_msg.h" #include "local.h" #define _(String) gettext (String) void ypbindprog_1 (struct svc_req *rqstp, register SVCXPRT *transp) { union { domainname ypbindproc_olddomain_1_arg; ypbind_oldsetdom ypbindproc_oldsetdom_1_arg; } argument; union { ypbind2_resp ypbindproc_olddomain_1_res; } result; bool_t retval; xdrproc_t xdr_argument, xdr_result; bool_t (*local) (char *, void *, struct svc_req *); switch (rqstp->rq_proc) { case YPBINDPROC_OLDNULL: xdr_argument = (xdrproc_t) xdr_void; xdr_result = (xdrproc_t) xdr_void; local = (bool_t (*)(char *, void *, struct svc_req *)) ypbindproc_oldnull_1_svc; break; case YPBINDPROC_OLDDOMAIN: xdr_argument = (xdrproc_t) xdr_domainname; xdr_result = (xdrproc_t) xdr_ypbind2_resp; local = (bool_t (*)(char *, void *, struct svc_req *)) ypbindproc_olddomain_1_svc; break; case YPBINDPROC_OLDSETDOM: xdr_argument = (xdrproc_t) xdr_ypbind_oldsetdom; xdr_result = (xdrproc_t) xdr_void; local = (bool_t (*)(char *, void *, struct svc_req *)) ypbindproc_oldsetdom_1_svc; break; default: svcerr_noproc (transp); return; } memset ((char *) &argument, 0, sizeof (argument)); if (!svc_getargs (transp, xdr_argument, (caddr_t) & argument)) { struct netconfig *nconf; struct netbuf *rqhost = svc_getrpccaller(transp); if ((nconf = getnetconfigent (transp->xp_netid)) == NULL) svcerr_systemerr (transp); else { char namebuf6[INET6_ADDRSTRLEN]; log_msg (LOG_ERR, "ypbindprog_1: cannot decode arguments for %d from %s port %i", rqstp->rq_proc, taddr2ipstr (nconf, rqhost, namebuf6, sizeof (namebuf6)), rqstp->rq_xprt->xp_port); freenetconfigent (nconf); } /* try to free already allocated memory during decoding. bnc#471924 */ svc_freeargs (transp, xdr_argument, (caddr_t) &argument); svcerr_decode (transp); return; } retval = (bool_t) (*local) ((char *) &argument, (void *) &result, rqstp); if (retval > 0 && !svc_sendreply (transp, xdr_result, (char *) &result)) { svcerr_systemerr (transp); } if (!svc_freeargs (transp, xdr_argument, (caddr_t) &argument)) log_msg (LOG_ERR, _("unable to free arguments")); if (!ypbindprog_1_freeresult (transp, xdr_result, (caddr_t) &result)) log_msg (LOG_ERR, _("unable to free results")); return; } void ypbindprog_2 (struct svc_req *rqstp, register SVCXPRT *transp) { union { domainname ypbindproc_domain_2_arg; ypbind2_setdom ypbindproc_setdom_2_arg; } argument; union { ypbind2_resp ypbindproc_domain_2_res; } result; bool_t retval; xdrproc_t xdr_argument, xdr_result; bool_t (*local) (char *, void *, struct svc_req *); switch (rqstp->rq_proc) { case YPBINDPROC_NULL: xdr_argument = (xdrproc_t) xdr_void; xdr_result = (xdrproc_t) xdr_void; local = (bool_t (*)(char *, void *, struct svc_req *)) ypbindproc_null_2_svc; break; case YPBINDPROC_DOMAIN: xdr_argument = (xdrproc_t) xdr_domainname; xdr_result = (xdrproc_t) xdr_ypbind2_resp; local = (bool_t (*)(char *, void *, struct svc_req *)) ypbindproc_domain_2_svc; break; case YPBINDPROC_SETDOM: xdr_argument = (xdrproc_t) xdr_ypbind2_setdom; xdr_result = (xdrproc_t) xdr_void; local = (bool_t (*)(char *, void *, struct svc_req *)) ypbindproc_setdom_2_svc; break; default: svcerr_noproc (transp); return; } memset ((char *) &argument, 0, sizeof (argument)); if (!svc_getargs (transp, xdr_argument, (caddr_t) & argument)) { struct netconfig *nconf; struct netbuf *rqhost = svc_getrpccaller(transp); if ((nconf = getnetconfigent (transp->xp_netid)) == NULL) svcerr_systemerr (transp); else { char namebuf6[INET6_ADDRSTRLEN]; log_msg (LOG_ERR, "ypbindprog_2: cannot decode arguments for %d from %s port %i", rqstp->rq_proc, taddr2ipstr (nconf, rqhost, namebuf6, sizeof (namebuf6)), rqstp->rq_xprt->xp_port); freenetconfigent (nconf); } /* try to free already allocated memory during decoding. bnc#471924 */ svc_freeargs (transp, xdr_argument, (caddr_t) &argument); svcerr_decode (transp); return; } retval = (bool_t) (*local) ((char *) &argument, (void *) &result, rqstp); if (retval > 0 && !svc_sendreply (transp, xdr_result, (char *) &result)) { svcerr_systemerr (transp); } if (!svc_freeargs (transp, xdr_argument, (caddr_t) & argument)) log_msg (LOG_ERR, _("unable to free arguments")); if (!ypbindprog_2_freeresult (transp, xdr_result, (caddr_t) & result)) log_msg (LOG_ERR, _("unable to free results")); return; } void ypbindprog_3 (struct svc_req *rqstp, register SVCXPRT *transp) { union { domainname ypbindproc_domain_3_arg; ypbind3_setdom ypbindproc_setdom_3_arg; } argument; union { ypbind3_resp ypbindproc_domain_3_res; } result; bool_t retval; xdrproc_t xdr_argument, xdr_result; bool_t (*local) (char *, void *, struct svc_req *); switch (rqstp->rq_proc) { case YPBINDPROC_NULL: xdr_argument = (xdrproc_t) xdr_void; xdr_result = (xdrproc_t) xdr_void; local = (bool_t (*)(char *, void *, struct svc_req *)) ypbindproc_null_3_svc; break; case YPBINDPROC_DOMAIN: xdr_argument = (xdrproc_t) xdr_domainname; xdr_result = (xdrproc_t) xdr_ypbind3_resp; local = (bool_t (*)(char *, void *, struct svc_req *)) ypbindproc_domain_3_svc; break; case YPBINDPROC_SETDOM: xdr_argument = (xdrproc_t) xdr_ypbind3_setdom; xdr_result = (xdrproc_t) xdr_void; local = (bool_t (*)(char *, void *, struct svc_req *)) ypbindproc_setdom_3_svc; break; default: svcerr_noproc (transp); return; } memset ((char *) &argument, 0, sizeof (argument)); if (!svc_getargs (transp, xdr_argument, (caddr_t) & argument)) { struct netconfig *nconf; struct netbuf *rqhost = svc_getrpccaller(transp); if ((nconf = getnetconfigent (transp->xp_netid)) == NULL) svcerr_systemerr (transp); else { char namebuf6[INET6_ADDRSTRLEN]; log_msg (LOG_ERR, "ypbindprog_3: cannot decode arguments for %d from %s port %i", rqstp->rq_proc, taddr2ipstr (nconf, rqhost, namebuf6, sizeof (namebuf6)), rqstp->rq_xprt->xp_port); freenetconfigent (nconf); } /* try to free already allocated memory during decoding. bnc#471924 */ svc_freeargs (transp, xdr_argument, (caddr_t) &argument); svcerr_decode (transp); return; } retval = (bool_t) (*local) ((char *) &argument, (void *) &result, rqstp); if (retval > 0 && !svc_sendreply (transp, xdr_result, (char *) &result)) { svcerr_systemerr (transp); } if (!svc_freeargs (transp, xdr_argument, (caddr_t) & argument)) log_msg (LOG_ERR, _("unable to free arguments")); if (!ypbindprog_3_freeresult (transp, xdr_result, (caddr_t) & result)) log_msg (LOG_ERR, _("unable to free results")); return; } ypbind-mt-2.7.2/src/ypbind-mt.c0000644000175000017500000005646213772054670016133 0ustar frankiefrankie/* Copyright (c) 1998 - 2009, 2011, 2013, 2014 Thorsten Kukuk This file is part of ypbind-mt. Author: Thorsten Kukuk The ypbind-mt are free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. ypbind-mt is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #define _POSIX_PTHREAD_SEMANTICS /* for Solaris threads */ #if defined(HAVE_CONFIG_H) #include "config.h" #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if USE_SD_NOTIFY #include #endif #include "ypbind.h" #include "log_msg.h" #include "local.h" #define _(String) gettext (String) #ifndef _PATH_VARRUN #define _PATH_VARRUN "/etc/" #endif #ifndef _YPBIND_PIDFILE #define _YPBIND_PIDFILE _PATH_VARRUN"ypbind.pid" #endif #define DEFAULT_CONFIG_FILE "/etc/yp.conf" #define DEFAULT_RUNTIME_CONFIG "/run/netconfig/yp.conf" const char *configfile; int ypset = SET_NO; int use_broadcast = 0; int broken_server = 0; int foreground_flag = 0; int ping_interval = 300; int local_only = 0; int ypbind_port = -1; static char domain[1025]; static int lock_fd; static int pid_is_written = 0; static pthread_mutex_t mutex_pid = PTHREAD_MUTEX_INITIALIZER; static pthread_cond_t cond_pid = PTHREAD_COND_INITIALIZER; static void unlink_bindingdir (void) { DIR *dird; char path[MAXPATHLEN]; struct dirent *dirp; /* blow away everything in BINDINGDIR (if it exists) */ if ((dird = opendir (BINDINGDIR)) != NULL) { while ((dirp = readdir (dird)) != NULL) if (strcmp (dirp->d_name, ".") && strcmp (dirp->d_name, "..")) { snprintf (path, MAXPATHLEN, "%s/%s", BINDINGDIR, dirp->d_name); unlink (path); } closedir (dird); } } /* Load or check syntax of the config file (/etc/yp.conf) */ int load_config (int check_syntax) { FILE *fp; char *buf = NULL; size_t buflen = 0; int have_entries = 0; /* # of entries we found in config file */ int bad_entries = 0; if (configfile) { fp = fopen (configfile, "r"); if (NULL == fp) return 1; } else { configfile = DEFAULT_CONFIG_FILE; fp = fopen (configfile, "r"); if (NULL == fp) { configfile = DEFAULT_RUNTIME_CONFIG; fp = fopen (DEFAULT_RUNTIME_CONFIG, "r"); if (NULL == fp) { configfile = DEFAULT_CONFIG_FILE; return 1; } } } if (debug_flag) log_msg (LOG_DEBUG, "parsing config file"); while (!feof (fp)) { char tmpserver[81], tmpdomain[YPMAXDOMAIN + 1]; int count; char *tmp, *cp; ssize_t n = getline (&buf, &buflen, fp); cp = buf; if (n < 1) break; tmp = strchr (cp, '#'); /* remove comments */ if (tmp) *tmp = '\0'; while (isspace ((int)*cp)) /* remove spaces and tabs */ ++cp; if (*cp == '\0') /* ignore empty lines */ continue; if (cp[strlen (cp) - 1] == '\n') cp[strlen (cp) - 1] = '\0'; if (debug_flag) log_msg (LOG_DEBUG, "%s %s", _("Trying entry:"), cp); if (check_syntax) printf ("%s %s\n", _("Trying entry:"), cp); if (strncmp (cp, "domain", 6) == 0 && isspace ((int)cp[6])) { /* We have domain server or domain broadcast */ if (strstr (cp, "server") != NULL) { count = sscanf (cp, "domain %64s server %80s", tmpdomain, tmpserver); if (count == 2) { if (debug_flag) log_msg (LOG_DEBUG, _("parsed domain '%s' server '%s'"), tmpdomain, tmpserver); if (add_server (tmpdomain, tmpserver)) ++have_entries; else ++bad_entries; continue; } } if (strstr (cp, "broadcast") != NULL) { count = sscanf (cp, "domain %s broadcast", tmpdomain); if (count == 1) { if (debug_flag) log_msg (LOG_DEBUG, _("parsed domain '%s' broadcast"), tmpdomain); if (add_server (tmpdomain, NULL)) ++have_entries; else ++bad_entries; continue; } } } else if (strncmp (cp, "ypserver", 8) == 0 && isspace ((int)cp[8])) { /* We have ypserver */ count = sscanf (cp, "ypserver %80s", tmpserver); if (count == 1) { if (debug_flag) log_msg (LOG_DEBUG, _("parsed ypserver %s"), tmpserver); if (add_server (domain, tmpserver)) ++have_entries; else ++bad_entries; } else ++bad_entries; continue; } else if (strncmp (cp, "broadcast", 9) == 0 && (isspace ((int)cp[9]) || cp[9] == '\0')) { /* We have broadcast */ if (debug_flag) log_msg (LOG_DEBUG, _("parsed broadcast")); if (add_server (domain, NULL)) ++have_entries; else ++bad_entries; continue; } if (check_syntax) { fprintf (stderr, _("Entry \"%s\" is not valid!\n"), cp); ++bad_entries; } else log_msg (LOG_ERR, _("Entry \"%s\" is not valid, ignore it!"), cp); } fclose (fp); if (buf) free (buf); if (check_syntax) { if (bad_entries) { fprintf (stderr, _("Bad entries found.\n")); return 1; } if (!have_entries) { fprintf (stderr, _("No entry found.\n")); return 1; } } if (!have_entries) { if (debug_flag) log_msg (LOG_DEBUG, _("No entry found.")); return 1; } return 0; } /* Load the configuration, exiting if there's an error */ static void load_config_or_exit(void) { if (load_config (0) != 0) { fputs (_("No NIS server and no -broadcast option specified.\n"), stderr); fprintf (stderr, _("Add a NIS server to the %s configuration file,\n"), DEFAULT_CONFIG_FILE); fputs (_("or start ypbind with the -broadcast option.\n"), stderr); exit (1); } } /* Create a pidfile on startup */ static void create_pidfile (void) { struct flock lock; int left, written; pid_t pid; char pbuf[15], *ptr; int flags; lock_fd = open (_YPBIND_PIDFILE, O_CREAT | O_RDWR, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); if (lock_fd < 0) { log_msg (LOG_ERR, _("cannot create pidfile %s"), _YPBIND_PIDFILE); return; } /* Make sure file gets correctly closed when process finished. */ flags = fcntl (lock_fd, F_GETFD, 0); if (flags == -1) { /* Cannot get file flags. */ close (lock_fd); return; } flags |= FD_CLOEXEC; /* Close on exit. */ if (fcntl (lock_fd, F_SETFD, flags) < 0) { /* Cannot set new flags. */ close (lock_fd); return; } lock.l_type = F_WRLCK; lock.l_start = 0; lock.l_whence = SEEK_SET; lock.l_len = 0; /* Is the pidfile locked by another ypserv ? */ if (fcntl (lock_fd, F_GETLK, &lock) < 0) { if (errno != ENOLCK) { log_msg (LOG_ERR, _("fcntl error: %s"), strerror (errno)); /* XXX look, which pid is in pidfile */ } pid = 0; } else if (lock.l_type == F_UNLCK) pid = 0; /* false, region is not locked by another proc */ else pid = lock.l_pid; /* true, return pid of lock owner */ if (pid != 0) { log_msg (LOG_ERR, _("ypbind-mt already running (pid %d) - exiting"), pid); exit (1); } /* write lock */ lock.l_type = F_WRLCK; lock.l_start = 0; lock.l_whence = SEEK_SET; lock.l_len = 0; if (fcntl (lock_fd, F_SETLK, &lock) != 0) log_msg (LOG_ERR, _("cannot lock pidfile")); sprintf (pbuf, "%ld\n", (long) getpid ()); left = strlen (pbuf); ptr = pbuf; while (left > 0) { if ((written = write (lock_fd, ptr, left)) <= 0) return; /* error */ left -= written; ptr += written; } return; } /* Thread for handling signals */ static void * sig_handler (void *v_param __attribute__ ((unused))) { struct flock lock; sigset_t sigs_to_catch; int caught; /* Create pid file in sig handler thread. Due the broken thread signal handling with Linux the pid must be the one of the thread handler */ create_pidfile (); /* Signal the main thread that we have the pid file created and no other ypbind is running. So we can continue and unset bogus portmap information and register ourself */ pthread_mutex_lock(&mutex_pid); pid_is_written = 1; pthread_cond_broadcast(&cond_pid); pthread_mutex_unlock(&mutex_pid); sigemptyset (&sigs_to_catch); sigaddset (&sigs_to_catch, SIGCHLD); sigaddset (&sigs_to_catch, SIGTERM); sigaddset (&sigs_to_catch, SIGINT); sigaddset (&sigs_to_catch, SIGQUIT); sigaddset (&sigs_to_catch, SIGSEGV); sigaddset (&sigs_to_catch, SIGHUP); sigaddset (&sigs_to_catch, SIGPIPE); while (1) { int ret = sigwait (&sigs_to_catch, &caught); if (ret != 0) { if (ret != EINTR) log_msg (LOG_ERR, _("sigwait failed: ret=%d."), ret); continue; } switch (caught) { case SIGCHLD: log_msg (LOG_ERR, _("SIGCHLD arrived, what should I do ?")); break; case SIGTERM: case SIGINT: case SIGQUIT: case SIGSEGV: /* Clean up if we quit the program. */ if (debug_flag) log_msg (LOG_DEBUG, _("Signal (%d) for quitting program arrived."), caught); portmapper_disconnect (); /* unlock pidfile */ lock.l_type = F_UNLCK; lock.l_start = 0; lock.l_whence = SEEK_SET; lock.l_len = 0; if (fcntl (lock_fd, F_SETLK, &lock) != 0) log_msg (LOG_ERR, _("cannot unlock pidfile")); close (lock_fd); unlink (_YPBIND_PIDFILE); unlink_bindingdir (); if (logfile_flag) { log_msg (LOG_DEBUG, "Stopping %s-%s", PACKAGE, VERSION); close_logfile (); } exit (0); break; case SIGHUP: /* Reload config file */ if (debug_flag) log_msg (LOG_DEBUG, _("SIGHUP arrived, reloading config file.")); clear_server (); if (use_broadcast) add_server (domain, NULL); else load_config (0); if (ping_interval < 1) do_binding (); break; case SIGPIPE: if (debug_flag) log_msg (LOG_DEBUG, _("Ignoring SIGPIPE.")); break; default: log_msg (LOG_ERR, _("Unknown signal: %d"), caught); break; } } } int verbose_flag; static void usage (int ret) { FILE *output; if (ret) output = stderr; else output = stdout; fputs (_("Usage:\n"), output); fputs (_("\typbind [-broadcast | -ypset | -ypsetme] [-f configfile]\n\t [-no-ping] [-broken-server] [-local-only] [-i ping-interval]\n\t [-debug] [-verbose] [-n | -foreground]\n"), output); fputs (_("\typbind -c [-f configfile]\n"), output); fputs (_("\typbind --version\n"), output); exit (ret); } void portmapper_disconnect (void) { rpcb_unset (YPBINDPROG, YPBINDVERS_1, NULL); rpcb_unset (YPBINDPROG, YPBINDVERS_2, NULL); rpcb_unset (YPBINDPROG, YPBINDVERS, NULL); } /* * Quick check to see if rpcbind is up. Tries to connect over * local transport. */ static bool_t __rpcbind_is_up (void) { struct netconfig *nconf; struct sockaddr_un sun; int sock; nconf = getnetconfigent ("local"); if (nconf == NULL) return FALSE; memset (&sun, 0, sizeof sun); sock = socket (AF_LOCAL, SOCK_STREAM, 0); if (sock < 0) return FALSE; sun.sun_family = AF_LOCAL; strncpy (sun.sun_path, _PATH_RPCBINDSOCK, sizeof(sun.sun_path)); if (connect (sock, (struct sockaddr *)&sun, SUN_LEN(&sun)) < 0) { close (sock); return FALSE; } close (sock); return TRUE; } static int portmapper_register (void) { struct netconfig *nconf; void *nc_handle; int connmaxrec = RPC_MAXDATASIZE; if (!__rpcbind_is_up()) { log_msg (LOG_ERR, "terminating: rpcbind is not running"); return 1; } /* Set non-blocking mode and maximum record size for connection oriented RPC transports. */ if (!rpc_control(RPC_SVC_CONNMAXREC_SET, &connmaxrec)) log_msg (LOG_ERR, "unable to set maximum RPC record size"); portmapper_disconnect (); nc_handle = __rpc_setconf ("netpath"); /* open netconfig file */ if (nc_handle == NULL) { log_msg(LOG_ERR, "could not read /etc/netconfig, exiting.."); return 1; } while ((nconf = __rpc_getconf (nc_handle))) { SVCXPRT *xprt; struct sockaddr *sa; struct sockaddr_in sin; struct sockaddr_in6 sin6; int sock; sa_family_t family; /* AF_INET, AF_INET6 */ int type; /* SOCK_DGRAM (udp), SOCK_STREAM (tcp) */ int proto; /* IPPROTO_UDP, IPPROTO_TCP */ if (debug_flag) log_msg (LOG_DEBUG, "Register ypbind for %s,%s", nconf->nc_protofmly, nconf->nc_proto); if (strcmp (nconf->nc_protofmly, "inet6") == 0) family = AF_INET6; else if (strcmp (nconf->nc_protofmly, "inet") == 0) family = AF_INET; else continue; /* we don't support nconf->nc_protofmly */ if (strcmp (nconf->nc_proto, "udp") == 0) { type = SOCK_DGRAM; proto = IPPROTO_UDP; } else if (strcmp (nconf->nc_proto, "tcp") == 0) { type = SOCK_STREAM; proto = IPPROTO_TCP; } else continue; /* We don't support nconf->nc_proto */ if ((sock = socket (family, type, proto)) < 0) { log_msg (LOG_ERR, _("Cannot create socket for %s,%s: %s"), nconf->nc_protofmly, nconf->nc_proto, strerror (errno)); continue; } if (family == AF_INET6) { /* Disallow v4-in-v6 to allow host-based access checks */ int i; if (setsockopt (sock, IPPROTO_IPV6, IPV6_V6ONLY, &i, sizeof(i)) == -1) { log_msg (LOG_ERR, "ERROR: cannot disable v4-in-v6 on %s6 socket", nconf->nc_proto); return 1; } } switch (family) { case AF_INET: memset (&sin, 0, sizeof(sin)); sin.sin_family = AF_INET; if (local_only) sin.sin_addr.s_addr = htonl (INADDR_LOOPBACK); if (ypbind_port > 0) sin.sin_port = htons (ypbind_port); sa = (struct sockaddr *)(void *)&sin; break; case AF_INET6: memset (&sin6, 0, sizeof (sin6)); sin6.sin6_family = AF_INET6; if (local_only) sin6.sin6_addr = in6addr_any; if (ypbind_port > 0) sin6.sin6_port = htons (ypbind_port); sa = (struct sockaddr *)(void *)&sin6; break; default: log_msg (LOG_ERR, _("Unsupported address family %d"), family); return -1; } if (bindresvport_sa (sock, sa) == -1) { if (ypbind_port > 0 && local_only) log_msg (LOG_ERR, _("Cannot bind to reserved port %d and localhostonly (%s)"), ypbind_port, strerror (errno)); else if (ypbind_port > 0) log_msg (LOG_ERR, _("Cannot bind to reserved port %d (%s)"), ypbind_port, strerror (errno)); else if (local_only) log_msg (LOG_ERR, _("Cannot bind to localhost only (%s)"), strerror (errno)); else log_msg (LOG_ERR, _("bindresvport failed: %s"), strerror (errno)); return 1; } if (type == SOCK_STREAM) { listen (sock, SOMAXCONN); xprt = svc_vc_create (sock, 0, 0); } else xprt = svc_dg_create (sock, 0, 0); if (xprt == NULL) { log_msg (LOG_ERR, "terminating: cannot create rpcbind handle"); return 1; } rpcb_unset (YPBINDPROG, YPBINDVERS, nconf); if (!svc_reg (xprt, YPBINDPROG, YPBINDVERS, ypbindprog_3, nconf)) { log_msg (LOG_ERR, _("unable to register (YPBINDPROG, 3) for %s, %s."), nconf->nc_protofmly, nconf->nc_proto); continue; } if (family == AF_INET) { rpcb_unset (YPBINDPROG, YPBINDVERS_2, nconf); if (!svc_reg (xprt, YPBINDPROG, YPBINDVERS_2, ypbindprog_2, nconf)) { log_msg (LOG_INFO, _("unable to register (YPBINDPROG, 2) [%s]"), nconf->nc_netid); continue; } rpcb_unset (YPBINDPROG, YPBINDVERS_1, nconf); if (!svc_reg (xprt, YPBINDPROG, YPBINDVERS_1, ypbindprog_1, nconf)) { log_msg (LOG_ERR, _("unable to register (YPBINDPROG, 1).")); continue; } } } __rpc_endconf (nc_handle); return 0; } int main (int argc, char **argv) { int i; sigset_t sigs_to_block; pthread_t sig_thread, ping_thread; struct stat st; int configcheck_only = 0; setlocale (LC_MESSAGES, ""); setlocale (LC_CTYPE, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); /* Parse commandline. */ for (i = 1; i < argc; i++) { if (strcmp ("--version", argv[i]) == 0) { fprintf (stdout, "ypbind (%s) %s\n", PACKAGE, VERSION); exit (0); } else if (strcmp ("-ypset", argv[i]) == 0) ypset = SET_YPSET; else if (strcmp ("-ypsetme", argv[i]) == 0) ypset = SET_YPSETME; else if (strcmp ("-d", argv[i]) == 0 || strcmp ("-debug", argv[i]) == 0) debug_flag = 1; else if (strcmp ("-n", argv[i]) == 0 || strcmp ("-foreground", argv[i]) == 0) foreground_flag = 1; else if (strcmp ("-v", argv[i]) == 0 || strcmp ("-verbose", argv[i]) == 0) verbose_flag = 1; else if (strcmp ("-broken-server", argv[i]) == 0 || strcmp ("-broken_server", argv[i]) == 0) broken_server = 1; else if (strcmp ("-no-ping", argv[i]) == 0 || strcmp ("-no_ping", argv[i]) == 0) ping_interval = 0; else if (strcmp ("-broadcast", argv[i]) == 0) use_broadcast = 1; else if (strcmp ("-local-only", argv[i]) == 0 || strcmp ("-local_only", argv[i]) == 0) local_only = 1; else if (strcmp ("-f", argv[i]) == 0) { if (i+1 == argc || argv[i+1][0] == '-') usage (1); ++i; configfile = argv[i]; } else if (strcmp ("-p", argv[i]) == 0) { if (i+1 == argc || argv[i+1][0] == '-') usage (1); ++i; ypbind_port = atoi (argv[i]); } else if (strcmp ("-ping-interval", argv[i]) == 0 || strcmp ("-ping_interval", argv[i]) == 0 || strcmp ("-i", argv[i]) == 0) { if (i+1 == argc || argv[i+1][0] == '-') usage (1); ++i; ping_interval = atoi (argv[i]); } else if (strcmp ("-c", argv[i]) == 0) configcheck_only = 1; else if (strcmp ("-log", argv[i]) == 0) { logfile_flag = 1; debug_flag = 1; } else if (strcmp ("--help", argv[i]) == 0) usage (0); else usage (1); } domain[0] = '\0'; if (getdomainname (domain, sizeof(domain)) || domain[0] == '\0' || strcmp(domain, "(none)") == 0) { if (configcheck_only) { fputs (_("ERROR: domainname not set.\n"), stderr); } else { fputs (_("domainname not set - aborting.\n"), stderr); exit (1); } } if (configcheck_only) { if (load_config (1) != 0) { fprintf (stderr, _("Config file %s is not ok.\n"), configfile); exit (1); } else { fprintf (stdout, _("Config file %s is ok.\n"), configfile); exit (0); } } if (getuid() != 0) { fputs (_("ypbind must be run as root\n"), stderr); exit (1); } if (stat ("/var/yp", &st) == -1) if (mkdir ("/var/yp", (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH | S_IXUSR | S_IXGRP | S_IXOTH )) < 0) { fprintf (stderr, _("Could not create %s: %s\n"), "/var/yp", strerror (errno)); exit (1); } if (stat (BINDINGDIR, &st) == -1) if (mkdir (BINDINGDIR, (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH | S_IXUSR | S_IXGRP | S_IXOTH)) < 0) { fprintf (stderr, _("Could not create %s: %s\n"), BINDINGDIR, strerror (errno)); exit (1); } /* Change current directory to bindingdir */ if (chdir (BINDINGDIR) < 0) { fprintf (stderr, _("Could not change to directory %s: %s\n"), BINDINGDIR, strerror (errno)); exit (1); } if (!use_broadcast) load_config_or_exit (); else add_server (domain, NULL); unlink_bindingdir (); openlog ("ypbind", LOG_PID, LOG_DAEMON); if (debug_flag) { log_msg (LOG_DEBUG, "[Welcome to ypbind-mt, version %s]\n", VERSION); log_msg (LOG_DEBUG, "ping interval is %d seconds\n", ping_interval); } else if (! foreground_flag) { int j; if ((j = fork()) > 0) exit(0); if (j < 0) { log_msg (LOG_ERR, "Cannot fork: %s\n", strerror (errno)); exit (-1); } if (setsid() == -1) { log_msg (LOG_ERR, "Cannot setsid: %s\n", strerror (errno)); exit (-1); } if ((j = fork()) > 0) exit(0); if (j < 0) { log_msg (LOG_ERR, "Cannot fork: %s\n", strerror (errno)); exit (-1); } for (j = 0; j < getdtablesize (); ++j) close (j); errno = 0; umask (0); j = open ("/dev/null", O_RDWR); if (j < 0) { log_msg (LOG_ERR, "Cannot open /dev/null: %s\n", strerror (errno)); exit (-1); } /* two dups: stdin, stdout, stderr */ if (dup (j) == -1) { log_msg (LOG_ERR, "Cannot dup file handle: %s\n", strerror (errno)); exit (-1); } if (dup (j) == -1) { log_msg (LOG_ERR, "Cannot dup file handle: %s\n", strerror (errno)); exit (-1); } } #if defined(HAVE___NSS_CONFIGURE_LOOKUP) /* We only use /etc/hosts and DNS query to avoid deadlocks */ __nss_configure_lookup ("hosts", "files dns"); #endif /* HAVE___NSS_CONFIGURE_LOOKUP */ sigemptyset (&sigs_to_block); sigaddset (&sigs_to_block, SIGCHLD); sigaddset (&sigs_to_block, SIGTERM); sigaddset (&sigs_to_block, SIGINT); sigaddset (&sigs_to_block, SIGQUIT); sigaddset (&sigs_to_block, SIGSEGV); sigaddset (&sigs_to_block, SIGHUP); sigaddset (&sigs_to_block, SIGPIPE); if (pthread_sigmask (SIG_BLOCK, &sigs_to_block, NULL) != 0) { log_msg (LOG_ERR, _("Could not block signals.")); exit (1); } pthread_create (&sig_thread, NULL, &sig_handler, NULL); /* wait until signal thread has created the pid file */ pthread_mutex_lock(&mutex_pid); while (pid_is_written < 1) { pthread_cond_wait(&cond_pid, &mutex_pid); } pthread_mutex_unlock(&mutex_pid); if (logfile_flag) log_msg (LOG_DEBUG, "Starting %s-%s", PACKAGE, VERSION); portmapper_disconnect (); if (portmapper_register () != 0) { portmapper_disconnect (); exit (1); } pthread_create (&ping_thread, NULL, &test_bindings, NULL); #if USE_SD_NOTIFY { /* * If we use systemd as an init process we may want to give it * a message, that ypbind daemon is ready to accept connections. * At this time, sockets for receiving connections are already * created, so we can say we're ready now. */ int result; result = sd_notifyf(0, "READY=1\n" "STATUS=Processing requests...\n" "MAINPID=%lu", (unsigned long) getpid()); /* * Return code from sd_notifyf can be ignored, as per sd_notifyf(3). * However, if we use systemd's native unit file, we need to send * this message to let systemd know that daemon is ready. * Thus, we want to know that the call had some issues. */ if (result < 0) log_msg (LOG_ERR, _("sd_notifyf failed: %s"), strerror(-result)); } #endif svc_run (); log_msg (LOG_ERR, _("svc_run returned.")); unlink (_YPBIND_PIDFILE); exit (1); /* NOTREACHED */ } ypbind-mt-2.7.2/src/log_msg.h0000644000175000017500000000036113772054670015647 0ustar frankiefrankie#ifndef _LOG_MSG_H #define _LOG_MSG_H 1 #include extern int debug_flag; extern int logfile_flag; extern void log_msg (int type, const char *, ...); extern void close_logfile (void); extern void log2file (const char *); #endif ypbind-mt-2.7.2/src/serv_list.c0000644000175000017500000006137413772054670016240 0ustar frankiefrankie/* Copyright (c) 1998-2009, 2011, 2012, 2013, 2014, 2016, 2019 Thorsten Kukuk This file is part of ypbind-mt. Author: Thorsten Kukuk The ypbind-mt are free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. ypbind-mt is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #if defined(HAVE_CONFIG_H) #include "config.h" #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "ypbind.h" #include "ypbind3_binding.h" #include "log_msg.h" #include "local.h" #include "pthread_np.h" extern int verbose_flag; #define _(String) gettext (String) #define _MAXSERVER 30 struct server_list { char *entry; struct ypbind3_binding *ypbind3; }; struct binding { char domain[YPMAXDOMAIN + 1]; int active; /* index into server, -2 means "other" */ bool_t use_broadcast; struct server_list server[_MAXSERVER]; struct ypbind3_binding *other; }; static const char * get_server_str (struct ypbind3_binding *ypb3) { if (ypb3->ypbind_servername != NULL) return ypb3->ypbind_servername; else { static char buf[INET6_ADDRSTRLEN]; return taddr2ipstr (ypb3->ypbind_nconf, ypb3->ypbind_svcaddr, buf, sizeof (buf)); } } static const char * bound_host (struct binding *bptr) { if (bptr->active >= 0) return get_server_str (bptr->server[bptr->active].ypbind3); else if (bptr->active == -2) return get_server_str (bptr->other); else return "Unknown Host"; } static const struct netbuf * bound_svcaddr (struct binding *bptr) { if (bptr->active >= 0) return bptr->server[bptr->active].ypbind3->ypbind_svcaddr; else if (bptr->active == -2) return bptr->other->ypbind_svcaddr; else return NULL; } static struct binding *domainlist = NULL; static int max_domains = 0; static pthread_rdwr_t domainlock = PTHREAD_RDWR_INITIALIZER; static pthread_mutex_t search_lock = PTHREAD_MUTEX_INITIALIZER; static void do_broadcast (struct binding *list); static int search_ypserver (struct binding *list); static struct ypbind2_resp convert_v3_to_respv2 (struct ypbind3_binding *ypb3) { struct sockaddr_in *sin; struct ypbind2_resp resp; memset (&resp, '\0', sizeof (resp)); resp.ypbind_status = YPBIND_SUCC_VAL; sin = (struct sockaddr_in *) ypb3->ypbind_svcaddr->buf; if (sin->sin_family == AF_INET) { resp.ypbind2_addr = sin->sin_addr; resp.ypbind2_port = sin->sin_port; } else { if (ypb3->ypbind_servername) log_msg (LOG_INFO, "Cannot convert '%s' to IPv4 address", ypb3->ypbind_servername); else log_msg (LOG_INFO, "Don't have IPv4 address for bound host"); resp.ypbind_status = YPBIND_FAIL_VAL; resp.ypbind2_error = YPBIND_ERR_NOSERV; } return resp; } static void remove_bindingfile (struct binding *entry) { const char *domain_name = entry->domain; char path[strlen (BINDINGDIR) + strlen (domain_name) + 10]; sprintf (path, "%s/%s.1", BINDINGDIR, domain_name); unlink (path); sprintf (path, "%s/%s.2", BINDINGDIR, domain_name); unlink (path); sprintf (path, "%s/%s.3", BINDINGDIR, domain_name); unlink (path); } #define FILE_MODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH) static void update_bindingfile (struct binding *entry) { /* The calling functions must hold a lock ! */ unsigned short int sport = ypbind_port; struct iovec iov[2]; struct ypbind2_resp ypbres2; struct ypbind3_binding *ypb3; char path1[MAXPATHLEN + 1]; char path2[MAXPATHLEN + 1]; char path3[MAXPATHLEN + 1]; int fd, len; FILE *fp; if (debug_flag) log_msg (LOG_DEBUG, "Update binding file for '%s' with '%s'", entry->domain, bound_host (entry)); /* XXX check length of path vs MAXPATHLEN */ snprintf (path1, MAXPATHLEN, "%s/%s.1", BINDINGDIR, entry->domain); snprintf (path2, MAXPATHLEN, "%s/%s.2", BINDINGDIR, entry->domain); snprintf (path3, MAXPATHLEN, "%s/%s.3", BINDINGDIR, entry->domain); if (entry->active >= 0) ypb3 = entry->server[entry->active].ypbind3; else if (entry->active == -2) /* ypset/broadcast was used */ ypb3 = entry->other; else { /* This should not happen. Remove binding files which means, libc will query ypbind direct. */ unlink (path1); unlink (path2); unlink (path3); log_msg (LOG_ERR, "INTERNAL ERROR: update_bindingfile called without valid data!"); return; } ypbres2 = convert_v3_to_respv2 (ypb3); if (ypbres2.ypbind_status == YPBIND_SUCC_VAL) { iov[0].iov_base = (caddr_t) &sport; iov[0].iov_len = sizeof (sport); iov[1].iov_base = (caddr_t) &ypbres2; iov[1].iov_len = sizeof ypbres2; len = iov[0].iov_len + iov[1].iov_len; if ((fd = open(path1, O_CREAT | O_RDWR | O_TRUNC, FILE_MODE )) != -1) { if (writev (fd, iov, 2) != len ) { log_msg (LOG_ERR, "writev (%s): %s", path1, strerror (errno)); unlink (path1); } close (fd); } else log_msg (LOG_ERR, "open (%s): %s", path1, strerror (errno)); if ((fd = open(path2, O_CREAT | O_RDWR | O_TRUNC, FILE_MODE )) != -1) { if (writev (fd, iov, 2) != len ) { log_msg (LOG_ERR, "writev (%s): %s", path2, strerror (errno)); unlink (path2); } close (fd); } else log_msg (LOG_ERR, "open (%s): %s", path2, strerror (errno)); } else { /* Ok, we don't have a IPv4 address, make sure old stuff is really gone. */ unlink (path1); unlink (path2); } /* Write binding information for version 3 protocol */ if ((fp = fopen (path3, "wce")) == NULL) log_msg (LOG_ERR, "fopen (%s): %s", path3, strerror (errno)); else { XDR xdrs; bool_t status; xdrstdio_create (&xdrs, fp, XDR_ENCODE); status = xdr_ypbind3_binding (&xdrs, ypb3); if (!status) { log_msg (LOG_ERR, "write of %s failed!", path3); unlink (path3); } xdr_destroy (&xdrs); fclose (fp); } } /* this is called from the RPC thread (ypset). */ int change_binding (const char *domain, ypbind3_binding *binding) { int i; pthread_rdwr_rlock_np (&domainlock); for (i = 0; i < max_domains; ++i) { if (strcmp (domainlist[i].domain, domain) == 0) { pthread_rdwr_runlock_np (&domainlock); pthread_rdwr_wlock_np (&domainlock); if (domainlist[i].other != NULL) __ypbind3_binding_free (domainlist[i].other); domainlist[i].other = __ypbind3_binding_dup (binding); domainlist[i].active = -2; pthread_rdwr_wunlock_np (&domainlock); pthread_rdwr_rlock_np (&domainlock); if (verbose_flag || debug_flag) log_msg (LOG_NOTICE, "NIS server for domain '%s' set to '%s'", domainlist[i].domain, bound_host(&domainlist[i])); update_bindingfile (&domainlist[i]); pthread_rdwr_runlock_np (&domainlock); return 0; } } pthread_rdwr_runlock_np (&domainlock); if (i >= max_domains) { log_msg (LOG_ERR, "ERROR: Domain '%s' not managed by us!", domain); return 1; } return 0; } void find_domain_v3 (const char *domain, ypbind3_resp *result) { int i, count = 0; memset (result, 0, sizeof (ypbind3_resp)); result->ypbind_status = YPBIND_FAIL_VAL; result->ypbind3_error = YPBIND_ERR_NOSERV; if (domainlist == NULL) { result->ypbind3_error = YPBIND_ERR_NODOMAIN; return; } pthread_rdwr_rlock_np (&domainlock); for (i = 0; i < max_domains; ++i) if (strcmp (domainlist[i].domain, domain) == 0) break; if (i >= max_domains) { pthread_rdwr_runlock_np (&domainlock); result->ypbind3_error = YPBIND_ERR_NODOMAIN; return; } again: ++count; if (domainlist[i].active >= 0) { result->ypbind_status = YPBIND_SUCC_VAL; result->ypbind_respbody.ypbind_bindinfo = __ypbind3_binding_dup (domainlist[i].server[domainlist[i].active].ypbind3); if (debug_flag) log_msg (LOG_DEBUG, "YPBINDPROC_DOMAIN: server '%s', port %d", get_server_str (domainlist[i].server[domainlist[i].active].ypbind3), taddr2port (domainlist[i].server[domainlist[i].active].ypbind3->ypbind_nconf, domainlist[i].server[domainlist[i].active].ypbind3->ypbind_svcaddr)); } else if (domainlist[i].active == -2) { result->ypbind_status = YPBIND_SUCC_VAL; result->ypbind_respbody.ypbind_bindinfo = __ypbind3_binding_dup (domainlist[i].other); if (debug_flag) log_msg (LOG_DEBUG, "YPBINDPROC_DOMAIN: server '%s', port %d", get_server_str (domainlist[i].other), taddr2port (domainlist[i].other->ypbind_nconf, domainlist[i].other->ypbind_svcaddr)); } else { /* Look, if we could find a new server for this domain. But only, if the other thread is not searching already */ pthread_rdwr_runlock_np (&domainlock); if (count > 2) /* No more than 2 tries. */ return; if (pthread_mutex_trylock (&search_lock) == 0) { if (debug_flag) log_msg (LOG_DEBUG, "trylock = success"); if (!search_ypserver (&domainlist[i]) && domainlist[i].use_broadcast) do_broadcast (&domainlist[i]); } else { if (debug_flag) log_msg (LOG_DEBUG, "trylock = failed"); /* Another thread has the lock, ugly hack to wait until this thread is finished with search. */ pthread_mutex_lock (&search_lock); } pthread_mutex_unlock (&search_lock); /* Get the read lock again for next run. */ pthread_rdwr_rlock_np (&domainlock); goto again; } pthread_rdwr_runlock_np (&domainlock); return; } void find_domain_v2 (const char *domain, ypbind2_resp *result) { struct ypbind3_resp res3; memset (&res3, '\0', sizeof (struct ypbind3_resp)); find_domain_v3 (domain, &res3); if (res3.ypbind_status == YPBIND_SUCC_VAL) { *result = convert_v3_to_respv2 (res3.ypbind_respbody.ypbind_bindinfo); __ypbind3_binding_free (res3.ypbind_respbody.ypbind_bindinfo); } else { result->ypbind_status = res3.ypbind_status; result->ypbind_respbody.ypbind_error = res3.ypbind_respbody.ypbind_error; } return; } void clear_server (void) { int i, j; pthread_rdwr_wlock_np (&domainlock); if (domainlist != NULL) { for (i = 0; i < max_domains; ++i) { if (domainlist[i].active != -1) { remove_bindingfile (&domainlist[i]); for (j = 0; j < _MAXSERVER; ++j) { if (domainlist[i].server[j].entry != NULL) { free (domainlist[i].server[j].entry); domainlist[i].server[j].entry = NULL; if (domainlist[i].server[j].ypbind3) { __ypbind3_binding_free (domainlist[i].server[j].ypbind3); domainlist[i].server[j].ypbind3 = NULL; } } } if (domainlist[i].other != NULL) { __ypbind3_binding_free (domainlist[i].other); domainlist[i].other = NULL; } domainlist[i].active = -1; } } free (domainlist); } domainlist = NULL; max_domains = 0; pthread_rdwr_wunlock_np (&domainlock); } static int get_entry (const char *domain, struct binding **entry) { int i; *entry = NULL; for (i = 0; i < max_domains; ++i) { if (strcmp (domainlist[i].domain, domain) == 0) *entry = &domainlist[i]; } if (!(*entry)) { ++max_domains; domainlist = realloc (domainlist, max_domains * sizeof (struct binding)); if (domainlist == NULL) { log_msg (LOG_ERR, _("Not enough memory !")); exit (1); } strcpy (domainlist[max_domains - 1].domain, domain); domainlist[max_domains - 1].other = NULL; domainlist[max_domains - 1].active = (-1); domainlist[max_domains - 1].use_broadcast = FALSE; memset (domainlist[max_domains - 1].server, 0, sizeof(domainlist[max_domains - 1].server)); *entry = &domainlist[max_domains - 1]; } return 0; } int add_server (const char *domain, const char *host) { struct binding *entry; int active; int res = 0; if (domain == NULL) { log_msg (LOG_ERR, _("internal error: add_server called with NULL domain.")); abort (); } pthread_rdwr_wlock_np (&domainlock); get_entry (domain, &entry); if (host == NULL) { entry->use_broadcast = TRUE; res = 1; if (debug_flag) log_msg (LOG_DEBUG, _("add_server() domain: %s, broadcast"), domain); } else { /* find empty slot */ for (active = 0; active < _MAXSERVER; ++active) if (entry->server[active].entry == NULL) break; /* There is no empty slot */ if (active >= _MAXSERVER) { if (debug_flag) log_msg (LOG_DEBUG, _("add_server() domain: %s, host: %s, NO SLOT FREE!"), domain, host); goto exit; } if (debug_flag) log_msg (LOG_DEBUG, _("add_server() domain: %s, host: %s, slot: %d"), domain, host, active); entry->server[active].entry = strdup (host); res = 1; } exit: pthread_rdwr_wunlock_np (&domainlock); return res; } static struct binding *in_use = NULL; static bool_t eachresult (bool_t *out, struct netbuf *nbuf, struct netconfig *nconf) { char namebuf6[INET6_ADDRSTRLEN]; if (*out) { struct ypbind3_binding ypb3; if(debug_flag) log_msg (LOG_DEBUG, _("Answer for domain '%s' from server '%s'"), in_use->domain, taddr2ipstr (nconf, nbuf, namebuf6, sizeof (namebuf6))); if (!broken_server && (taddr2port (nconf, nbuf) >= IPPORT_RESERVED)) { log_msg (LOG_ERR, _("Answer for domain '%s' from '%s' on illegal port %d."), in_use->domain, taddr2ipstr (nconf, nbuf, namebuf6, sizeof (namebuf6)), taddr2port (nconf, nbuf)); return 0; } ypb3.ypbind_nconf = nconf; ypb3.ypbind_svcaddr = nbuf; ypb3.ypbind_servername = (char *)taddr2ipstr (nconf, nbuf, namebuf6, sizeof (namebuf6)); ypb3.ypbind_hi_vers = YPVERS; ypb3.ypbind_lo_vers = YPVERS; in_use->other = __ypbind3_binding_dup (&ypb3); in_use->active = -2; return 1; } else { return 0; } } static void do_broadcast (struct binding *list) { char *domain; bool_t out; enum clnt_stat status; /* Get readlock and create a local copy of the domainname. Else a SIGHUP could delete the data and we will dereference invalid data. */ pthread_rdwr_rlock_np (&domainlock); domain = strdupa (list->domain); pthread_rdwr_runlock_np (&domainlock); if (debug_flag) log_msg (LOG_DEBUG, _("do_broadcast() for domain '%s' is called"), domain); /* Get a writer lock for the domain list, since we modify one entry. */ pthread_rdwr_wlock_np (&domainlock); list->active = -1; if (list->other != NULL) { __ypbind3_binding_free (list->other); list->other = NULL; } pthread_rdwr_wunlock_np (&domainlock); /* Get a reader lock while we do the broadcast. Normally we would need the writer lock, since we modify the data. But in this case, the broadcast timeout is too long and we would block all queries. Since we don't change pointers and all data is always valid, we only acquire the reader lock. */ pthread_rdwr_rlock_np (&domainlock); in_use = list; /* global variable for eachresult */ status = rpc_broadcast (YPPROG, YPVERS, YPPROC_DOMAIN_NONACK, (xdrproc_t) xdr_domainname, (caddr_t) &domain, (xdrproc_t) xdr_bool, (caddr_t) &out, (resultproc_t) eachresult, "datagram_n"); if (status != RPC_SUCCESS) { remove_bindingfile (list); log_msg (LOG_ERR, "broadcast: %s.", clnt_sperrno (status)); } else update_bindingfile (list); pthread_rdwr_runlock_np (&domainlock); if (debug_flag) log_msg (LOG_DEBUG, _("leave do_broadcast() for domain '%s'"), domain); } /* Go through the list of known server and look, which ones answers */ static int search_ypserver (struct binding *list) { int i = 0; int old_active = list->active; if (list->server[0].entry == NULL) /* There is no known server */ { if (debug_flag) log_msg (LOG_DEBUG, "search_ypserver: no server known"); return 0; } pthread_rdwr_wlock_np (&domainlock); list->active = -1; pthread_rdwr_wunlock_np (&domainlock); while (list->server[i].entry != NULL && i < _MAXSERVER) { bool_t has_domain; struct timeval timeout; CLIENT *clnt_handlep = NULL; enum clnt_stat status; char ipbuf[INET6_ADDRSTRLEN]; const char *host; char *domain = strdupa (list->domain); /* XXX Avoid to double call clnt_create_timed :( */ if (list->server[i].ypbind3 == NULL) { list->server[i].ypbind3 = __host2ypbind3_binding (list->server[i].entry); if (list->server[i].ypbind3 == NULL) { /* server is not reacheable, next in list */ i++; continue; } } if (list->server[i].ypbind3->ypbind_servername != 0) host = list->server[i].ypbind3->ypbind_servername; else host = taddr2ipstr (list->server[i].ypbind3->ypbind_nconf, list->server[i].ypbind3->ypbind_svcaddr, ipbuf, sizeof (ipbuf)); if (debug_flag) log_msg (LOG_DEBUG, _("ping host '%s', domain '%s'"), host, list->domain); timeout.tv_sec = 1; timeout.tv_usec = 0; clnt_handlep = clnt_create_timed (host, YPPROG, YPVERS, "udp", &timeout); if (clnt_handlep == NULL) { if (debug_flag) log_msg (LOG_DEBUG, _("clnt_create for server '%s' (domain '%s') failed"), host, list->domain); ++i; continue; } timeout.tv_sec = 5; timeout.tv_usec = 0; status = clnt_call (clnt_handlep, YPPROC_DOMAIN, (xdrproc_t) xdr_domainname, &domain, (xdrproc_t) xdr_bool, (caddr_t) &has_domain, timeout); if (status != RPC_SUCCESS) { log_msg (LOG_ERR, "%s", clnt_sperror (clnt_handlep, host)); clnt_destroy (clnt_handlep); __ypbind3_binding_free (list->server[i].ypbind3); list->server[i].ypbind3 = NULL; ++i; continue; } else if (has_domain != TRUE) { log_msg (LOG_ERR, _("domain '%s' not served by '%s'"), list->domain, host); clnt_destroy (clnt_handlep); __ypbind3_binding_free (list->server[i].ypbind3); list->server[i].ypbind3 = NULL; ++i; continue; } else { clnt_destroy (clnt_handlep); pthread_rdwr_wlock_np (&domainlock); list->active = i; pthread_rdwr_wunlock_np (&domainlock); pthread_rdwr_rlock_np (&domainlock); if (debug_flag && old_active != list->active) { if (old_active == -1) log_msg (LOG_DEBUG, "NIS server for domain '%s' set to '%s'", list->domain, host); else log_msg (LOG_DEBUG, "NIS server for domain '%s' changed from '%s' to '%s'", list->domain, get_server_str (list->server[old_active].ypbind3), host); } else if (debug_flag) log_msg (LOG_DEBUG, _("Answer for domain '%s' from server '%s'"), list->domain, host); update_bindingfile (list); pthread_rdwr_runlock_np (&domainlock); return 1; } ++i; } if (i > _MAXSERVER) remove_bindingfile(list); return 0; } void do_binding (void) { int i; pthread_mutex_lock (&search_lock); for (i = 0; i < max_domains; ++i) { int active = domainlist[i].active; if (!search_ypserver (&domainlist[i]) && domainlist[i].use_broadcast) do_broadcast (&domainlist[i]); if (verbose_flag && domainlist[i].active >= 0 && active != domainlist[i].active) { log_msg (LOG_NOTICE, "NIS server for domain '%s' is '%s'", domainlist[i].domain, bound_host(&domainlist[i])); } } pthread_mutex_unlock (&search_lock); } /* This thread will send an ping to all NIS server marked as active. If a server doesn't answer or tell us, that he doesn't serv this domain any longer, we mark it as inactive and try to find a new server */ void * test_bindings (void *param __attribute__ ((unused))) { static int success = 0; do_binding (); if (ping_interval < 1) pthread_exit (&success); while (1) { sleep (ping_interval); /* Check, if ping_interval was changed through a SIGHUP. */ if (ping_interval < 1) pthread_exit (&success); check_binding (NULL); } /* end while() endless loop */ } int check_binding (const char *req_domain) { int i, old_active; int found_domain = 0; /* Since we need the write lock later, getting the read lock here is not enough. During the time, where we wait for the write lock, the other thread can modify our data. */ pthread_rdwr_wlock_np (&domainlock); if (debug_flag) { if (req_domain) log_msg (LOG_DEBUG, _("Ping active server for '%s'"), req_domain); else log_msg (LOG_DEBUG, _("Ping active servers for all domains.")); } for (i = 0; i < max_domains; ++i) { char *domain = domainlist[i].domain; bool_t has_domain = TRUE; enum clnt_stat status = RPC_SUCCESS; if (req_domain && strcmp (domain, req_domain) != 0) continue; found_domain = 1; old_active = domainlist[i].active; if (domainlist[i].active != -1) { const struct timeval TIMEOUT50 = {5, 0}; /* The binding is in use, check if it is still valid*/ CLIENT *client_handle = clnt_create_timed (bound_host (&domainlist[i]), YPPROG, YPVERS, "datagram_n", &TIMEOUT50); if (client_handle == NULL) { if (verbose_flag || debug_flag) log_msg (LOG_NOTICE, "NIS server '%s' for domain '%s' not reachable", bound_host(&domainlist[i]), domainlist[i].domain); status = RPC_CANTSEND; } else { /* Check only if the current binding is still valid. */ struct netbuf nbuf1; const struct netbuf *nbuf2; /* At first compare the ports, clnt_create() does not use our port information, but old SunRPC could be. */ clnt_control (client_handle, CLGET_SVC_ADDR, (char *)&nbuf1); nbuf2 = bound_svcaddr (&domainlist[i]); if (nbuf1.len != nbuf2->len || memcmp (nbuf1.buf, nbuf2->buf, sizeof (nbuf1.len)) != 0) { if (debug_flag) log_msg (LOG_DEBUG, "Server address/port has changed"); status = RPC_CANTSEND; } else { struct timeval time_out; time_out.tv_sec = 3; time_out.tv_usec = 0; status = clnt_call (client_handle, YPPROC_DOMAIN, (xdrproc_t) xdr_domainname, (caddr_t) &domain, (xdrproc_t) xdr_bool, (caddr_t) &has_domain, time_out); if ((debug_flag || verbose_flag) && status != RPC_SUCCESS) log_msg (LOG_NOTICE, "NIS server '%s' not responding for domain '%s'", bound_host(&domainlist[i]), domainlist[i].domain); else if (status == RPC_SUCCESS && has_domain != TRUE) log_msg (LOG_ERR, "NIS server '%s' does not support domain '%s'", bound_host(&domainlist[i]), domainlist[i].domain); } clnt_destroy (client_handle); } /* We need to search a new server */ if (status != RPC_SUCCESS || has_domain != TRUE) { /* The current binding is not valid. */ if (domainlist[i].active == -2) { /* We can give this free, server does not answer any longer. */ if (domainlist[i].other != NULL) __ypbind3_binding_free (domainlist[i].other); domainlist[i].other = NULL; } else { if (domainlist[i].server[domainlist[i].active].ypbind3 != NULL) __ypbind3_binding_free (domainlist[i].server[domainlist[i].active].ypbind3); domainlist[i].server[domainlist[i].active].ypbind3 = NULL; } domainlist[i].active = -1; } } if (domainlist[i].active == -1) { /* there is no binding for this domain, try to find a new server */ pthread_rdwr_wunlock_np (&domainlock); pthread_mutex_lock (&search_lock); if (domainlist[i].use_broadcast) do_broadcast (&domainlist[i]); else search_ypserver (&domainlist[i]); pthread_mutex_unlock (&search_lock); pthread_rdwr_wlock_np (&domainlock); } if (verbose_flag && domainlist[i].active >= 0 && old_active != domainlist[i].active) { log_msg (LOG_NOTICE, "NIS server for domain '%s' is '%s'", domainlist[i].domain, bound_host(&domainlist[i])); } } /* end for () all domains */ pthread_rdwr_wunlock_np (&domainlock); if (found_domain == 0) { if (!req_domain) log_msg (LOG_ERR, "ERROR? No single known domain!"); if (debug_flag && req_domain) log_msg (LOG_DEBUG, "domain '%s' not known", req_domain); return 1; } return 0; } ypbind-mt-2.7.2/src/Makefile.am0000644000175000017500000000126213772054670016104 0ustar frankiefrankie# # Copyright (c) 1998, 1999, 2001, 2003 Thorsten Kukuk, Germany # # Author: Thorsten Kukuk # localedir = $(datadir)/locale WARNFLAGS = @WARNFLAGS@ AM_CFLAGS = -D_REENTRANT=1 $(WARNFLAGS) -DLOCALEDIR=\"$(localedir)\" \ @NSL_CFLAGS@ @TIRPC_CFLAGS@ -DUSE_SD_NOTIFY=@USE_SD_NOTIFY@ \ -I$(srcdir)/../lib # Disabled for now: @DBUS_CFLAGS@ @GLIB_CFLAGS@ ypbind_LDADD = ../lib/libcompat.a @SYSTEMD_LIBS@ @NSL_LIBS@ @TIRPC_LIBS@ # Disabled for now: @DBUS_LIBS@ @GLIB_LIBS@ CLEANFILES = *~ sbin_PROGRAMS = ypbind noinst_HEADERS = ypbind.h log_msg.h local.h pthread_np.h ypbind_SOURCES = ypbind-mt.c ypbind_svc.c \ ypbind_server.c log_msg.c serv_list.c \ pthread_np.c ypbind-mt-2.7.2/src/log_msg.c0000644000175000017500000000433113772054670015643 0ustar frankiefrankie/* Copyright (c) 2000, 2002, 2006, 2009, 2014 Thorsten Kukuk This file is part of ypbind-mt. Author: Thorsten Kukuk The ypbind-mt are free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. ypbind-mt is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include #include #include #include #include #include "log_msg.h" #include #ifndef HAVE_GETTID #ifdef __NR_gettid static pid_t gettid (void) { return syscall (__NR_gettid); } #else pid_t gettid (void) { return getpid (); } #endif #endif /* ! HAVE_GETTID */ int debug_flag = 0; int logfile_flag = 0; static FILE *logfp = NULL; static const char *logfilename = "/var/log/ypbind-mt.log"; void close_logfile (void) { if (logfp == NULL) return; fclose (logfp); logfp = NULL; } static int open_logfile (void) { if (logfp != NULL) close_logfile(); if ((logfp = fopen (logfilename, "a+")) == NULL) { log_msg (LOG_ERR, "Cannot open log file '%s': %m", logfilename); return 1; } return 0; } void log2file (const char *string) { char date[128]; time_t tmp; struct tm *t; if (logfp == NULL) { if (open_logfile () != 0) return; } tmp = time (NULL); t = localtime (&tmp); strftime (date, sizeof (date), "%F %T", t); fprintf (logfp, "%s (%d): %s \n", date, gettid (), string); fflush (logfp); } void log_msg (int type, const char *fmt,...) { char string[400]; va_list ap; va_start (ap, fmt); vsnprintf (string, sizeof (string), fmt, ap); va_end (ap); if (logfile_flag) log2file (string); else if (debug_flag) fprintf (stderr, "%d: %s\n", gettid (), string); if (type != LOG_DEBUG) syslog (type, "%s", string); } ypbind-mt-2.7.2/src/pthread_np.c0000644000175000017500000000437513772054670016350 0ustar frankiefrankie/* Copyright (c) 1998, 1999, 2000 Thorsten Kukuk, Germany This file is part of ypbind-mt. Author: Thorsten Kukuk The ypbind-mt are free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. ypbind-mt is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #include #include int pthread_rdwr_init_np (pthread_rdwr_t *rdwrp) { rdwrp->readers = 0; rdwrp->writers = 0; rdwrp->wishwrite = 0; pthread_mutex_init (&(rdwrp->mutex), NULL); pthread_cond_init (&(rdwrp->lock_free), NULL); return 0; } int pthread_rdwr_rlock_np (pthread_rdwr_t *rdwrp) { pthread_mutex_lock (&(rdwrp->mutex)); while (rdwrp->writers || rdwrp->wishwrite) pthread_cond_wait (&(rdwrp->lock_free), &(rdwrp->mutex)); rdwrp->readers++; pthread_mutex_unlock (&(rdwrp->mutex)); return 0; } int pthread_rdwr_wlock_np (pthread_rdwr_t *rdwrp) { pthread_mutex_lock (&(rdwrp->mutex)); rdwrp->wishwrite++; while (rdwrp->writers || rdwrp->readers) pthread_cond_wait (&(rdwrp->lock_free), &(rdwrp->mutex)); rdwrp->writers++; rdwrp->wishwrite--; pthread_mutex_unlock (&(rdwrp->mutex)); return 0; } int pthread_rdwr_runlock_np (pthread_rdwr_t *rdwrp) { int status; pthread_mutex_lock (&(rdwrp->mutex)); if (rdwrp->readers == 0) { status = -1; } else { rdwrp->readers--; if (rdwrp->readers == 0) pthread_cond_signal (&(rdwrp->lock_free)); status = 0; } pthread_mutex_unlock (&rdwrp->mutex); return status; } int pthread_rdwr_wunlock_np (pthread_rdwr_t *rdwrp) { int status; pthread_mutex_lock (&(rdwrp->mutex)); if (rdwrp->writers == 0) { status = -1; } else { rdwrp->writers = 0; pthread_cond_broadcast (&(rdwrp->lock_free)); status = 0; } pthread_mutex_unlock (&(rdwrp->mutex)); return status; } ypbind-mt-2.7.2/src/local.h0000644000175000017500000000232513772054670015314 0ustar frankiefrankie#ifndef _LOCAL_H #define _LOCAL_H 1 #define BINDINGDIR "/var/yp/binding" extern int broken_server; extern int ping_interval; extern int use_broadcast; extern int ypbind_port; extern void find_domain_v2 (const char *domain, ypbind2_resp *result); extern void find_domain_v3 (const char *domain, ypbind3_resp *result); extern void clear_server (void); extern int add_server (const char *__domain, const char *__host); extern int change_binding (const char *__domain, ypbind3_binding *binding); extern int load_config (int check_syntax); extern void *test_bindings (void *param); extern int check_binding (const char *domain); extern void do_binding (void); extern void ypbindprog_1 (struct svc_req *rqstp, register SVCXPRT *transp); extern void ypbindprog_2 (struct svc_req *rqstp, register SVCXPRT *transp); extern void ypbindprog_3 (struct svc_req *rqstp, register SVCXPRT *transp); #if !defined (HAVE___NSS_CONFIGURE_LOOKUP) /* the res_gethost* functions are not in standard header files */ extern struct hostent *res_gethostbyname(const char *); extern struct hostent *res_gethostbyaddr(const char *, int, int); #endif /* HAVE___NSS_CONFIGURE_LOOKUP */ void portmapper_disconnect (void); int portmapper_connect (void); #endif ypbind-mt-2.7.2/src/pthread_np.h0000644000175000017500000000251213772054670016344 0ustar frankiefrankie/* Copyright (c) 1998, 1999 Thorsten Kukuk, Germany This file is part of ypbind-mt. Author: Thorsten Kukuk The ypbind-mt are free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. ypbind-mt is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef _PTHREAD_NP_H #define _PTHREAD_NP_H #include typedef struct { int readers; int writers; int wishwrite; pthread_mutex_t mutex; pthread_cond_t lock_free; } pthread_rdwr_t; #define PTHREAD_RDWR_INITIALIZER \ {0, 0, 0, PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER} int pthread_rdwr_init_np (pthread_rdwr_t *rdwrp); int pthread_rdwr_rlock_np (pthread_rdwr_t *rdwrp); int pthread_rdwr_wlock_np (pthread_rdwr_t *rdwrp); int pthread_rdwr_runlock_np (pthread_rdwr_t *rdwrp); int pthread_rdwr_wunlock_np (pthread_rdwr_t *rdwrp); #endif ypbind-mt-2.7.2/src/ypbind.x0000644000175000017500000000350013772054670015523 0ustar frankiefrankie const YPMAXDOMAIN = 256; typedef string domainname; typedef char olddomainname; #ifdef RPC_HDR %/* % * Response structure and overall result status codes. Success and failure % * represent two separate response message types. % */ #endif enum ypbind_resptype { YPBIND_SUCC_VAL = 1, YPBIND_FAIL_VAL = 2 }; struct ypbind_binding { opaque ypbind_binding_addr[4]; /* In network order */ opaque ypbind_binding_port[2]; /* In network order */ }; union ypbind_resp switch (ypbind_resptype ypbind_status) { case YPBIND_FAIL_VAL: unsigned ypbind_error; case YPBIND_SUCC_VAL: ypbind_binding ypbind_bindinfo; }; #ifdef RPC_HDR % %/* Detailed failure reason codes for response field ypbind_error*/ #endif const YPBIND_ERR_ERR = 1; /* Internal error */ const YPBIND_ERR_NOSERV = 2; /* No bound server for passed domain */ const YPBIND_ERR_RESC = 3; /* System resource allocation failure */ #ifdef RPC_HDR % %/* % * Request data structure for ypbind "Set domain" procedure. % */ #endif struct ypbind_oldsetdom { char ypoldsetdom_domain[YPMAXDOMAIN]; ypbind_binding ypoldsetdom_binding; }; #ifdef RPC_HDR %#define ypoldsetdom_addr ypoldsetdom_binding.ypbind_binding_addr %#define ypoldsetdom_port ypoldsetdom_binding.ypbind_binding_port #endif struct ypbind_setdom { domainname ypsetdom_domain; ypbind_binding ypsetdom_binding; unsigned ypsetdom_vers; }; #ifdef RPC_HDR % %/* % * NIS binding protocol % */ #endif program YPBINDPROG { version YPBINDOLDVERS { void YPBINDPROC_OLDNULL(void) = 0; ypbind_resp YPBINDPROC_OLDDOMAIN(olddomainname) = 1; void YPBINDPROC_OLDSETDOM(ypbind_oldsetdom) = 2; } = 1; version YPBINDVERS { void YPBINDPROC_NULL(void) = 0; ypbind_resp YPBINDPROC_DOMAIN(domainname) = 1; void YPBINDPROC_SETDOM(ypbind_setdom) = 2; } = 2; } = 100007;