--- proftpd-1.2.10.orig/debian/po/CVS/Root +++ proftpd-1.2.10/debian/po/CVS/Root @@ -0,0 +1 @@ +:ext:frankie@cvs.alioth.debian.org:/cvsroot/pkg-proftpd --- proftpd-1.2.10.orig/debian/po/CVS/Repository +++ proftpd-1.2.10/debian/po/CVS/Repository @@ -0,0 +1 @@ +debian/po --- proftpd-1.2.10.orig/debian/po/CVS/Entries +++ proftpd-1.2.10/debian/po/CVS/Entries @@ -0,0 +1,11 @@ +/POTFILES.in/1.1.1.1/Sat Apr 17 18:16:02 2004// +/de.po/1.2/Sat Apr 17 18:16:02 2004// +/es.po/1.2/Sat Apr 17 18:16:02 2004// +/fr.po/1.2/Sat Apr 17 18:16:02 2004// +/it.po/1.2/Sat Apr 17 18:16:02 2004// +/ja.po/1.2/Sat Apr 17 18:16:02 2004// +/nl.po/1.2/Sat Apr 17 18:16:02 2004// +/pt_BR.po/1.2/Sat Apr 17 18:16:02 2004// +/ru.po/1.3/Sat Apr 17 18:16:02 2004// +/templates.pot/1.2/Sat Apr 17 18:16:02 2004// +D --- proftpd-1.2.10.orig/debian/po/templates.pot +++ proftpd-1.2.10/debian/po/templates.pot @@ -0,0 +1,82 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-08-28 13:32+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../proftpd.templates:3 +msgid "inetd, standalone" +msgstr "" + +#. Type: select +#. Description +#: ../proftpd.templates:5 +msgid "Run proftpd from inetd or standalone?" +msgstr "" + +#. Type: select +#. Description +#: ../proftpd.templates:5 +msgid "" +"ProFTPd can be run either as a service from inetd, or as a standalone " +"server. Each choice has its own benefits. If you have only a few ftp " +"connections per day, it is probably better to run proftp from inetd in order " +"to save resources." +msgstr "" + +#. Type: select +#. Description +#: ../proftpd.templates:5 +msgid "" +"On the other hand, if your ftp site is visited frequently, you should rather " +"run proftp as a standalone server (because with inetd, each time a " +"connection is opened, a new process is spawned)." +msgstr "" + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "Warning on syntax changes in ProFTPd configuration." +msgstr "" + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "" +"You are upgrading from a pre-1.2.8 version. Probably you will need to revise " +"your previous configuration to be compliant with current directives. Please, " +"consult documentation available in proftpd-doc and change /etc/proftpd.conf " +"as needed." +msgstr "" + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "" +"Unfortunately, it is nearly impossible for me to convert your setup " +"automatically, but for some elementary issues. You will have to do it " +"yourself. ProFTPd could also be unable to use the resulting configuration, " +"and it would not restart after upgrading." +msgstr "" --- proftpd-1.2.10.orig/debian/po/da.po +++ proftpd-1.2.10/debian/po/da.po @@ -0,0 +1,96 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: proftpd 1.2.9-16\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-08-28 13:32+0200\n" +"PO-Revision-Date: 2005-11-21 07:04+0200\n" +"Last-Translator: Morten Brix Pedersen \n" +"Language-Team: Danish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../proftpd.templates:3 +msgid "inetd, standalone" +msgstr "inetd, alene" + +#. Type: select +#. Description +#: ../proftpd.templates:5 +msgid "Run proftpd from inetd or standalone?" +msgstr "Kør proftpd fra inetd eller alene?" + +#. Type: select +#. Description +#: ../proftpd.templates:5 +msgid "" +"ProFTPd can be run either as a service from inetd, or as a standalone " +"server. Each choice has its own benefits. If you have only a few ftp " +"connections per day, it is probably better to run proftp from inetd in order " +"to save resources." +msgstr "" +"ProFTPd kan køre enten som en service fra inetd, eller som en alenestående " +"server. Hvert valg har deres fordele. Hvis du kun har et par ftp " +"forbindelser om dagen, er det måske bedre at køre proftp fra inetd for at " +"spare på ressourcerne." + +#. Type: select +#. Description +#: ../proftpd.templates:5 +msgid "" +"On the other hand, if your ftp site is visited frequently, you should rather " +"run proftp as a standalone server (because with inetd, each time a " +"connection is opened, a new process is spawned)." +msgstr "" +"På den anden side, hvis dit ftpsted bliver besøgt ofte, så bør du hellere " +"køre proftp som en alenestående server (fordi med inetd åbnes en ny proces " +"hver gang en ny forbindelse bliver åbnet)." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "Warning on syntax changes in ProFTPd configuration." +msgstr "Advarsel om syntaksændringer i ProFTPd opsætning." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "" +"You are upgrading from a pre-1.2.8 version. Probably you will need to revise " +"your previous configuration to be compliant with current directives. Please, " +"consult documentation available in proftpd-doc and change /etc/proftpd.conf " +"as needed." +msgstr "" +"Du opgraderer fra en før-1.2.8 version. Du bør kigge din gamle opsætning " +"igennem for at sikre, at den er kompatibel med de nuværende direktiver. Se " +"dokumentationen tilgængelig i proftpd-doc og ret /etc/proftpd.conf til dine " +"behov." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "" +"Unfortunately, it is nearly impossible for me to convert your setup " +"automatically, but for some elementary issues. You will have to do it " +"yourself. ProFTPd could also be unable to use the resulting configuration, " +"and it would not restart after upgrading." +msgstr "" +"Desværre er det næsten umuligt for mig at konvertere hele din opsætning " +"automatisk, udover nogle enkelte ting. Du skal gøre det selv. ProFTPd " +"kan måske ikke bruge den resulterede opsætning, og vil ikke kunne starte " +"efter opgraderingen." --- proftpd-1.2.10.orig/debian/po/de.po +++ proftpd-1.2.10/debian/po/de.po @@ -0,0 +1,94 @@ +# translation of de.po to German +# translation of proftpd_1.2.9-16_de.po to German +# This file is distributed under the same license as the PACKAGE package. +# Translators, please read /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# Jens Nachtigall , 2004, 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: de\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-08-28 13:32+0200\n" +"PO-Revision-Date: 2005-09-05 21:34+0200\n" +"Last-Translator: Jens Nachtigall \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.10.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. Type: select +#. Choices +#: ../proftpd.templates:3 +msgid "inetd, standalone" +msgstr "inetd, Daemon" + +#. Type: select +#. Description +#: ../proftpd.templates:5 +msgid "Run proftpd from inetd or standalone?" +msgstr "ProFTPd über inetd oder als Daemon starten?" + +#. Type: select +#. Description +#: ../proftpd.templates:5 +msgid "" +"ProFTPd can be run either as a service from inetd, or as a standalone " +"server. Each choice has its own benefits. If you have only a few ftp " +"connections per day, it is probably better to run proftp from inetd in order " +"to save resources." +msgstr "" +"ProFTPd kann entweder als Dienst über inetd oder als eigener Daemon " +"gestartet werden. Jede der zwei Startarten hat ihre Vorteile. Wenn Sie pro " +"Tag nur wenige Verbindungen zum ProFTP-Server erwarten, dann " +"ist es wahrscheinlich besser proftp über inetd zu starten um Ressourcen zu sparen." + +#. Type: select +#. Description +#: ../proftpd.templates:5 +msgid "" +"On the other hand, if your ftp site is visited frequently, you should rather " +"run proftp as a standalone server (because with inetd, each time a " +"connection is opened, a new process is spawned)." +msgstr "" +"Wenn der FTP-Server jedoch sehr oft benutzt werden wird, dann " +"sollten Sie proftp lieber als eigenen Daemon starten (da bei initd fuer jede neue Verbindung ein eigener Prozess gestartet würde.)" + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "Warning on syntax changes in ProFTPd configuration." +msgstr "Warnung: Syntax-Veränderungen der ProFTPd-Konfiguration." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "" +"You are upgrading from a pre-1.2.8 version. Probably you will need to revise " +"your previous configuration to be compliant with current directives. Please, " +"consult documentation available in proftpd-doc and change /etc/proftpd.conf " +"as needed." +msgstr "" +"Sie aktualisieren eine Version älter als 1.2.8. Wahrscheinlich werden Sie " +"Ihre bisherige Konfiguration hinsichtlich der neuen Direktiven überprüfen " +"müssen. Bitte konsultieren Sie hierfür die Dokumentation im Paket proftpd-" +"doc und passen Sie Ihre /etc/proftpd.conf an." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "" +"Unfortunately, it is nearly impossible for me to convert your setup " +"automatically, but for some elementary issues. You will have to do it " +"yourself. ProFTPd could also be unable to use the resulting configuration, " +"and it would not restart after upgrading." +msgstr "" +"Leider ist es nahezu unmöglich ihre bisherige Konfiguration automatisch zu " +"konvertieren, abgesehen von ein paar elementaren Dingen. Sie werden es " +"selbst tun müssen. Außerdem könnte es sein, dass ProFTPd nicht in der Lage " +"wäre die aus der Konvertierung resultierende Konfiguration zu nutzen, so " +"dass es nach dem Upgrade nicht neu starten würde." + --- proftpd-1.2.10.orig/debian/po/cs.po +++ proftpd-1.2.10/debian/po/cs.po @@ -0,0 +1,95 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: proftpd\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-08-28 13:32+0200\n" +"PO-Revision-Date: 2005-10-23 11:49+0200\n" +"Last-Translator: Jan Outrata \n" +"Language-Team: Czech \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../proftpd.templates:3 +msgid "inetd, standalone" +msgstr "inetd, samostatn" + +#. Type: select +#. Description +#: ../proftpd.templates:5 +msgid "Run proftpd from inetd or standalone?" +msgstr "Spoutt proftpd z inetd nebo samostatn?" + +#. Type: select +#. Description +#: ../proftpd.templates:5 +msgid "" +"ProFTPd can be run either as a service from inetd, or as a standalone " +"server. Each choice has its own benefits. If you have only a few ftp " +"connections per day, it is probably better to run proftp from inetd in order " +"to save resources." +msgstr "" +"ProFTPd me bet bu jako sluba z inetd, nebo jako samostatn " +"server. Ob monosti maj svoje vhody. Pokud mte jen pr ftp spojen " +"za den, za elem ueten zdroj bude pravdpodobn lep spoutt " +"proftpd z inetd." + +#. Type: select +#. Description +#: ../proftpd.templates:5 +msgid "" +"On the other hand, if your ftp site is visited frequently, you should rather " +"run proftp as a standalone server (because with inetd, each time a " +"connection is opened, a new process is spawned)." +msgstr "" +"Na druhou stranu, pokud je v ftp server navtvovn asto, mli " +"byste spustit proftpd radji jako samostatn server (protoe s inetd, " +"pokad, kdy je oteveno spojen, je sputn nov proces)." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "Warning on syntax changes in ProFTPd configuration." +msgstr "Upozornn na zmny syntaxe v konfiguraci ProFTPd." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "" +"You are upgrading from a pre-1.2.8 version. Probably you will need to revise " +"your previous configuration to be compliant with current directives. Please, " +"consult documentation available in proftpd-doc and change /etc/proftpd.conf " +"as needed." +msgstr "" +"Aktualizujete z verze ped 1.2.8. Pravdpodobn budete potebovat " +"zkontrolovat vai pedchoz konfiguraci, aby byla v souladu s nynjmi " +"pokyny. Konzultujte dokumentaci dostupnou v proftpd-doc a podle poteby " +"upravte /etc/proftpd.conf." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "" +"Unfortunately, it is nearly impossible for me to convert your setup " +"automatically, but for some elementary issues. You will have to do it " +"yourself. ProFTPd could also be unable to use the resulting configuration, " +"and it would not restart after upgrading." +msgstr "" +"Nanetst je tm nemon pevst vae nastaven, a na njak zkladn " +"vci, automaticky. Budete to muset udlat sami. ProFTPd tak nemus bt " +"schopn pout vslednou konfiguraci a po aktualizaci se znovu nespust." --- proftpd-1.2.10.orig/debian/po/es.po +++ proftpd-1.2.10/debian/po/es.po @@ -0,0 +1,138 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +# Carlos Valdivia Yage , 2003. +# +msgid "" +msgstr "" +"Project-Id-Version: proftpd 1.2.8-8\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-08-28 13:32+0200\n" +"PO-Revision-Date: 2003-07-12 18:40+0200\n" +"Last-Translator: Carlos Valdivia Yage \n" +"Language-Team: Debian L10n Spanish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../proftpd.templates:3 +msgid "inetd, standalone" +msgstr "inetd, independiente" + +#. Type: select +#. Description +#: ../proftpd.templates:5 +msgid "Run proftpd from inetd or standalone?" +msgstr "Ejecutar proftpd desde inetd o independientemente?" + +#. Type: select +#. Description +#: ../proftpd.templates:5 +#, fuzzy +msgid "" +"ProFTPd can be run either as a service from inetd, or as a standalone " +"server. Each choice has its own benefits. If you have only a few ftp " +"connections per day, it is probably better to run proftp from inetd in order " +"to save resources." +msgstr "" +"ProFTPd puede ejecutarse como servicio desde inetd o como servidor " +"independiente. Ambas opciones tienen sus ventajas. Si recibe solamente unas " +"pocas conexiones ftp diarias, puede que no merezca la pena mantener proftpd " +"funcionando constantemente con el consiguiente consumo de recursos." + +#. Type: select +#. Description +#: ../proftpd.templates:5 +#, fuzzy +msgid "" +"On the other hand, if your ftp site is visited frequently, you should rather " +"run proftp as a standalone server (because with inetd, each time a " +"connection is opened, a new process is spawned)." +msgstr "" +"Por otro lado, si su sitio ftp recibe muchas visitas, inetd no es una buena " +"eleccin, porque cada vez que se abre una conexin se crea un nuevo proceso." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "Warning on syntax changes in ProFTPd configuration." +msgstr "Aviso de cambios de sintaxis en la configuracin de ProFTPd." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "" +"You are upgrading from a pre-1.2.8 version. Probably you will need to revise " +"your previous configuration to be compliant with current directives. Please, " +"consult documentation available in proftpd-doc and change /etc/proftpd.conf " +"as needed." +msgstr "" +"Est actualizando desde una versin de ProFTPd anterior a la 1.2.8. Es muy " +"posible que necesite revisar la configuracin anterior para que se adecue a " +"las directivas actuales. Por favor, consulte la documentacin disponible en " +"proftpd-doc y modifique apropiadamente /etc/proftpd.conf." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +#, fuzzy +msgid "" +"Unfortunately, it is nearly impossible for me to convert your setup " +"automatically, but for some elementary issues. You will have to do it " +"yourself. ProFTPd could also be unable to use the resulting configuration, " +"and it would not restart after upgrading." +msgstr "" +"Desgraciadamente, es casi imposible convertir su configuracin de forma " +"automtica, salvo algunas cuestiones elementales, por lo que tendr que " +"hacerlo manualmente. ProFTPd podra tener problemas para usar la nueva " +"configuracin y no arrancar despus de actualizar." + +#~ msgid "Enable anonymous access?" +#~ msgstr "Permitir acceso annimo?" + +#~ msgid "" +#~ "Enabling anonymous access grants access to your ftp site by any user, " +#~ "without being a system user. This is probably not a good idea for " +#~ "paranoid sysadmins. Only enable if you know what it does." +#~ msgstr "" +#~ "Permitir acceso annimo ofrece acceso a su sitio ftp a cualquier usuario " +#~ "aunque no lo sea del sistema. Probablemente no sea una buena idea para " +#~ "administradores paranoicos. Slo permtalo si sabe lo que hace." + +#~ msgid "Manage ProFTPd configuration with debconf?" +#~ msgstr "Gestionar la configuracin de ProFTPd con debconf?" + +#~ msgid "" +#~ "If you accept here, some aspect of ProFTPd will be automatically managed " +#~ "by debconf. ProFTPd is quite complicated and flexible, so this kind of " +#~ "management could be useful for newbies, or very simple kinds of " +#~ "configuration." +#~ msgstr "" +#~ "Si acepta, algunos aspectos de ProFTPd se gestionarn automticamente con " +#~ "debconf. ProFTPd es muy complicado y flexible, por lo que puede resultar " +#~ "til a usuarios noveles o para configuraciones muy sencillas." + +#~ msgid "" +#~ "If you refuse here, all aspects of ProFTPd configuration will be under " +#~ "your responsability. If this is your first installation, I'll create a " +#~ "very basic default configuration in /etc/proftpd.conf, else I'll try " +#~ "create an updated configuration on the basis of your current one and some " +#~ "known conversion issues." +#~ msgstr "" +#~ "En caso contrario, todos los aspectos de la configuracin quedarn bajo " +#~ "su responsabilidad. Si es su primera instalacin se crear una " +#~ "configuracin predeterminada muy bsica en /etc/proftpd.conf, sino se " +#~ "intentar actualizar la configuracin existente teniendo en cuenta " +#~ "ciertos problemas conocidos en la conversin." --- proftpd-1.2.10.orig/debian/po/fr.po +++ proftpd-1.2.10/debian/po/fr.po @@ -0,0 +1,136 @@ +# translation of fr.po to French +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators, please read /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +msgid "" +msgstr "" +"Project-Id-Version: proftpd 1.2.8-6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-08-28 13:32+0200\n" +"PO-Revision-Date: 2005-09-05 11:22+0200\n" +"Last-Translator: Christian Perrier \n" +"Language-Team: Debian french translation team \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.9.1\n" + +#. Type: select +#. Choices +#: ../proftpd.templates:3 +msgid "inetd, standalone" +msgstr "inetd, indpendamment" + +#. Type: select +#. Description +#: ../proftpd.templates:5 +msgid "Run proftpd from inetd or standalone?" +msgstr "Mthode de lancement de proftpd:" + +#. Type: select +#. Description +#: ../proftpd.templates:5 +msgid "" +"ProFTPd can be run either as a service from inetd, or as a standalone " +"server. Each choice has its own benefits. If you have only a few ftp " +"connections per day, it is probably better to run proftp from inetd in order " +"to save resources." +msgstr "" +"ProFTPd peut tre lanc soit partir d'inetd, soit comme un serveur " +"indpendant. Chaque mthode a ses avantages. Pour quelques connexions par " +"jour, il n'est peut-tre pas ncessaire de le laisser fonctionner en " +"permanence." + +#. Type: select +#. Description +#: ../proftpd.templates:5 +msgid "" +"On the other hand, if your ftp site is visited frequently, you should rather " +"run proftp as a standalone server (because with inetd, each time a " +"connection is opened, a new process is spawned)." +msgstr "" +"Par contre, si votre site ftp est assez frquent, inetd n'est pas un choix " +"judicieux, car chaque ouverture de connexion lance un nouveau processus. Il " +"est alors conseill de lancer proftpd indpendamment." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "Warning on syntax changes in ProFTPd configuration." +msgstr "" +"Avertissement pour changement de syntaxe dans la configuration de ProFTPd" + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "" +"You are upgrading from a pre-1.2.8 version. Probably you will need to revise " +"your previous configuration to be compliant with current directives. Please, " +"consult documentation available in proftpd-doc and change /etc/proftpd.conf " +"as needed." +msgstr "" +"Vous effectuez une mise jour depuis une version infrieure 1.2.8. Il " +"vous sera probablement ncessaire de revoir votre configuration antrieure " +"afin d'tre conforme aux nouvelles directives. Veuillez, s'il vous plait, " +"consulter la documentation disponible dans le paquet proftpd-doc et " +"modifier /etc/proftpd.conf en consquence." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "" +"Unfortunately, it is nearly impossible for me to convert your setup " +"automatically, but for some elementary issues. You will have to do it " +"yourself. ProFTPd could also be unable to use the resulting configuration, " +"and it would not restart after upgrading." +msgstr "" +"Malheureusement, il est peu prs impossible de convertir votre " +"configuration automatiquement, sauf pour des points particulirement " +"simples. Vous devrez le faire vous-mme. ProFTPd pourrait tre incapable " +"d'utiliser le fichier de configuration rsultant et risque de ne pas " +"redmarrer aprs la mise jour." + +#~ msgid "Enable anonymous access?" +#~ msgstr "Autoriser les connexions anonymes?" + +#~ msgid "" +#~ "Enabling anonymous access grants access to your ftp site by any user, " +#~ "without being a system user. This is probably not a good idea for " +#~ "paranoid sysadmins. Only enable if you know what it does." +#~ msgstr "" +#~ "Autoriser les connexions anonymes donne l'accs au serveur ftp toute " +#~ "personne (mme inconnue de la machine). Les administrateurs systme " +#~ "paranoaques pensent que ce n'est probablement pas une bonne ide. Ne " +#~ "l'activez que si vous savez ce que vous faites." + +#~ msgid "Manage ProFTPd configuration with debconf?" +#~ msgstr "Grer la configuration de ProFTPd avec debconf?" + +#~ msgid "" +#~ "If you accept here, some aspect of ProFTPd will be automatically managed " +#~ "by debconf. ProFTPd is quite complicated and flexible, so this kind of " +#~ "management could be useful for newbies, or very simple kinds of " +#~ "configuration." +#~ msgstr "" +#~ "Si vous acceptez ici, certains aspects de ProFTPd seront grs " +#~ "automatiquement par debconf. ProFTPd est relativement complexe et " +#~ "souple: ce type de gestion peut simplifier la tche pour les dbutants " +#~ "ou pour les configurations trs simples." + +#~ msgid "" +#~ "If you refuse here, all aspects of ProFTPd configuration will be under " +#~ "your responsability. If this is your first installation, I'll create a " +#~ "very basic default configuration in /etc/proftpd.conf, else I'll try " +#~ "create an updated configuration on the basis of your current one and some " +#~ "known conversion issues." +#~ msgstr "" +#~ "Si vous refusez, l'ensemble de la configuration de ProFTPd sera de votre " +#~ "responsabilit. S'il s'agit de votre premire installation, je vais crer " +#~ "un fichier de configuration trs simplifi sous le nom /etc/proftpd.conf. " +#~ "Si un fichier de configuration existe, je vais tenter de le convertir " +#~ "l'aide de mthodes de conversion connues." --- proftpd-1.2.10.orig/debian/po/ja.po +++ proftpd-1.2.10/debian/po/ja.po @@ -0,0 +1,136 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: proftpd 1.2.8-6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-08-28 13:32+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Tomohiro KUBOTA \n" +"Language-Team: Japanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=EUC-JP\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../proftpd.templates:3 +msgid "inetd, standalone" +msgstr "inetd, ɥ" + +#. Type: select +#. Description +#: ../proftpd.templates:5 +msgid "Run proftpd from inetd or standalone?" +msgstr "proftpd μ¹Ԥ inetd ͳȥɥΤɤˤޤ" + +#. Type: select +#. Description +#: ../proftpd.templates:5 +#, fuzzy +msgid "" +"ProFTPd can be run either as a service from inetd, or as a standalone " +"server. Each choice has its own benefits. If you have only a few ftp " +"connections per day, it is probably better to run proftp from inetd in order " +"to save resources." +msgstr "" +"ProFTPd ϡinetd ͳΥӥȤƼ¹Ԥ뤳ȤǤޤ ɥ" +"ΥФȤƤ¹ԤǤޤɤˤ⤽줾 ޤ1" +"˿Υʤϡproftpd ¹ԤƤΤϻ񸻤̵̤" +"Τޤ" + +#. Type: select +#. Description +#: ../proftpd.templates:5 +#, fuzzy +msgid "" +"On the other hand, if your ftp site is visited frequently, you should rather " +"run proftp as a standalone server (because with inetd, each time a " +"connection is opened, a new process is spawned)." +msgstr "" +"ˤʥϡinetd ɤȤϸޤ ʤʤ顢" +"³Ȥ˿ץ뤫Ǥ" + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "Warning on syntax changes in ProFTPd configuration." +msgstr "ProFTPd ʸˡѲ˴ؤٹ" + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "" +"You are upgrading from a pre-1.2.8 version. Probably you will need to revise " +"your previous configuration to be compliant with current directives. Please, " +"consult documentation available in proftpd-doc and change /etc/proftpd.conf " +"as needed." +msgstr "" +"ϡ1.2.8 ΥС󤫤Υåץ졼ɤȤʤޤ ߤʸ" +"ˡŬ礹褦եľɬפޤ proftpd-doc ʸ" +"Ȥ /etc/proftpd.conf Ʋ" + +#. Type: note +#. Description +#: ../proftpd.templates:17 +#, fuzzy +msgid "" +"Unfortunately, it is nearly impossible for me to convert your setup " +"automatically, but for some elementary issues. You will have to do it " +"yourself. ProFTPd could also be unable to use the resulting configuration, " +"and it would not restart after upgrading." +msgstr "" +"Թˤ⡢եưŪѴ뤳ȤϡĤδŪ ʳϤۤ" +"ԲǽǤʬѴɬפޤưѴ ȤȤ" +"餯ǤޤΤǡåץ졼ɸ ProFTPd Ƶư뤳ȤǤޤ" +"" + +#~ msgid "Enable anonymous access?" +#~ msgstr "ƿ̾ (anonymous) Ĥޤ?" + +#~ msgid "" +#~ "Enabling anonymous access grants access to your ftp site by any user, " +#~ "without being a system user. This is probably not a good idea for " +#~ "paranoid sysadmins. Only enable if you know what it does." +#~ msgstr "" +#~ "ƿ̾ (anonymous) ĤȡΥƥΥ桼Ǥʤ Ǥդ" +#~ "桼ʤ ftp Ȥ˥Ǥ褦ˤʤޤ мʴ" +#~ "ˤȤäɤǤϤޤ󡣤ʬDzä 뤫򤷤Ƥ" +#~ "ΤߡĤƤ" + +#~ msgid "Manage ProFTPd configuration with debconf?" +#~ msgstr "ProFTPd debconf Ǵޤ?" + +#~ msgid "" +#~ "If you accept here, some aspect of ProFTPd will be automatically managed " +#~ "by debconf. ProFTPd is quite complicated and flexible, so this kind of " +#~ "management could be useful for newbies, or very simple kinds of " +#~ "configuration." +#~ msgstr "" +#~ "ǡ֤ϤפȡProFTPd ΰ debconf ˤä ưŪ" +#~ "ޤProFTPd ϶ˤʣǽʤΤǡΤ褦 ʴϽ鿴Ԥ" +#~ "ȤäơޤϤñ򤷤ˤϡ Τޤ" + +#~ msgid "" +#~ "If you refuse here, all aspects of ProFTPd configuration will be under " +#~ "your responsability. If this is your first installation, I'll create a " +#~ "very basic default configuration in /etc/proftpd.conf, else I'll try " +#~ "create an updated configuration on the basis of your current one and some " +#~ "known conversion issues." +#~ msgstr "" +#~ "ǡ֤פȡProFTPd Ϥ٤ƤʬǹԤɬ " +#~ "ޤ ProFTPd 򥤥󥹥ȡ뤹ΤǤ顢 ˴Ūʥ" +#~ "եȤ꤬ /etc/proftpd.conf ˹Ԥޤ Ǥʤˤϡ" +#~ "꤬åץǡȤޤѴκݤ˴ ꤬Ĥޤ" --- proftpd-1.2.10.orig/debian/po/it.po +++ proftpd-1.2.10/debian/po/it.po @@ -0,0 +1,135 @@ +# This is the italian debconf template for proftpd. +# Copyright (C) 2003 Francesco P.Lovergine +# This file is distributed under the same license as the proftpd package. +# Francesco P.Lovergine , 2003. +# +msgid "" +msgstr "" +"Project-Id-Version: proftpd 1.2.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-08-28 13:32+0200\n" +"PO-Revision-Date: 2003-05-06 20:35+0100\n" +"Last-Translator: Francesco Paolo Lovergine \n" +"Language-Team: Italian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../proftpd.templates:3 +msgid "inetd, standalone" +msgstr "inetd, autonomo" + +#. Type: select +#. Description +#: ../proftpd.templates:5 +msgid "Run proftpd from inetd or standalone?" +msgstr "Vuoi eseguire proftpd da inetd o in modo autonomo?" + +#. Type: select +#. Description +#: ../proftpd.templates:5 +#, fuzzy +msgid "" +"ProFTPd can be run either as a service from inetd, or as a standalone " +"server. Each choice has its own benefits. If you have only a few ftp " +"connections per day, it is probably better to run proftp from inetd in order " +"to save resources." +msgstr "" +"ProFTPd pu essere eseguito come servizio da inetd o come server autonomo. " +"Ogni scelta ha i suoi benefici. Se hai poche connessioni ftp al giorno, " +"potrebbe essere uno spreco di risorse mantenere proftpd in esecuzione tutto " +"il tempo." + +#. Type: select +#. Description +#: ../proftpd.templates:5 +#, fuzzy +msgid "" +"On the other hand, if your ftp site is visited frequently, you should rather " +"run proftp as a standalone server (because with inetd, each time a " +"connection is opened, a new process is spawned)." +msgstr "" +"D'altronde, se il tuo sito ftp visitato di frequente, inetd non una " +"buona scelta, perch ogni volta che viene aperta una connessione viene " +"caricato un nuovo processo." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "Warning on syntax changes in ProFTPd configuration." +msgstr "" +"Attenzione alle variazioni di sintassi nella configurazione di ProFTPd." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +#, fuzzy +msgid "" +"You are upgrading from a pre-1.2.8 version. Probably you will need to revise " +"your previous configuration to be compliant with current directives. Please, " +"consult documentation available in proftpd-doc and change /etc/proftpd.conf " +"as needed." +msgstr "" +"Stai aggiornando da una versione pre-1.2.8. Probabilmente avrai bisogno di " +"rivedere la tua configurazione precedente per renderal compatibile con le " +"direttive attuali. Consulta la documentazione disponibile in proftpd-doc e " +"modifica /etc/proftpd.conf come necessario." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +#, fuzzy +msgid "" +"Unfortunately, it is nearly impossible for me to convert your setup " +"automatically, but for some elementary issues. You will have to do it " +"yourself. ProFTPd could also be unable to use the resulting configuration, " +"and it would not restart after upgrading." +msgstr "" +"Sfortunatamente, quasi impossibile per me convertire la tua configurazione " +"automaticamente tranne per alcuni aspetti elementari. Dovrai farlo da solo " +"ProFTPd potrebbe anche non essere in grado di utilizzare la configurazione " +"risultante, e non ripartir dopo l'aggiornamento." + +#~ msgid "Enable anonymous access?" +#~ msgstr "Abilito l'accesso anonimo?" + +#~ msgid "" +#~ "Enabling anonymous access grants access to your ftp site by any user, " +#~ "without being a system user. This is probably not a good idea for " +#~ "paranoid sysadmins. Only enable if you know what it does." +#~ msgstr "" +#~ "L'attivazione dell'accesso anonimo concede l'accesso al tuo sito ftp a " +#~ "qualsiasi utente, senza essere un utente del sistema. Questa " +#~ "probabilmente non una buona idea per gli amministratori di sistema " +#~ "'paranoici'. Abilitalo solo se sai cosa stai facendo. " + +#~ msgid "Manage ProFTPd configuration with debconf?" +#~ msgstr "Gestisco la configurazione di ProFTPd con debconf?" + +#, fuzzy +#~ msgid "" +#~ "If you accept here, some aspect of ProFTPd will be automatically managed " +#~ "by debconf. ProFTPd is quite complicated and flexible, so this kind of " +#~ "management could be useful for newbies, or very simple kinds of " +#~ "configuration." +#~ msgstr "" +#~ "Se accetti, alcuni aspetti di ProFTPd saranno automaticamente gestiti con " +#~ "debconf. ProFTPd piuttosto complesso e flessibile, per cui questo " +#~ "genere di gestione pu essere utile solo per i principianti, o tipi " +#~ "elementari di configurazione." + +#, fuzzy +#~ msgid "" +#~ "If you refuse here, all aspects of ProFTPd configuration will be under " +#~ "your responsability. If this is your first installation, I'll create a " +#~ "very basic default configuration in /etc/proftpd.conf, else I'll try " +#~ "create an updated configuration on the basis of your current one and some " +#~ "known conversion issues." +#~ msgstr "" +#~ "Se rifiuti, tutti gli aspetti della configurazione di ProFTPd saranno " +#~ "sotto la tua responsabilit. Se questa la tua prima installazione, " +#~ "verr creata una configurazione di base in /etc/proftpd.conf, altrimenti " +#~ "prover a creare una configurazione aggiornata sulla base di quella " +#~ "corrente e alcune note problematiche di conversione." --- proftpd-1.2.10.orig/debian/po/nl.po +++ proftpd-1.2.10/debian/po/nl.po @@ -0,0 +1,137 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators, please read /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-08-28 13:32+0200\n" +"PO-Revision-Date: 2003-08-08 16:07+0100\n" +"Last-Translator: Bart Cornelis \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../proftpd.templates:3 +msgid "inetd, standalone" +msgstr "inetd, losstaand" + +#. Type: select +#. Description +#: ../proftpd.templates:5 +msgid "Run proftpd from inetd or standalone?" +msgstr "ProFTPd losstaand, of vanuit inetd opstarten?" + +#. Type: select +#. Description +#: ../proftpd.templates:5 +#, fuzzy +msgid "" +"ProFTPd can be run either as a service from inetd, or as a standalone " +"server. Each choice has its own benefits. If you have only a few ftp " +"connections per day, it is probably better to run proftp from inetd in order " +"to save resources." +msgstr "" +"ProFTPd kan als een losstaande server, of als een dienst via inetd gedraait " +"worden. Elke keuze heeft z'n eigen voordeel. Als u relatief weinig ftp " +"verbindingen binnenkrijgt is hetwaarschijnlijk niet aan te raden om proftpd " +"altijd draaiende te houden." + +#. Type: select +#. Description +#: ../proftpd.templates:5 +#, fuzzy +msgid "" +"On the other hand, if your ftp site is visited frequently, you should rather " +"run proftp as a standalone server (because with inetd, each time a " +"connection is opened, a new process is spawned)." +msgstr "" +"Daar staat tegenover dat inetd niet zo'n goede keuze is wanneer uw ftp side " +"druk-bezocht wordt. Inetd start namelijk bij iedere verbinding een nieuw " +"proces." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "Warning on syntax changes in ProFTPd configuration." +msgstr "" +"Waarschuwing betreffende syntax veranderingen in de ProFTPd configuratie." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "" +"You are upgrading from a pre-1.2.8 version. Probably you will need to revise " +"your previous configuration to be compliant with current directives. Please, " +"consult documentation available in proftpd-doc and change /etc/proftpd.conf " +"as needed." +msgstr "" +"U voert een actualizatie uit van een pre-1.2.8 versie. U zult waarschijnlijk " +"uw bestaande configuratie moeten aanpassen om te voldoen aan de huidige " +"richtlijnen. Gelieve de documentatie beschikbaar in proftpd-doc te " +"consulteren en de noodzakelijke aanpassingen in /etc/proftpd.conf door te " +"voeren." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +#, fuzzy +msgid "" +"Unfortunately, it is nearly impossible for me to convert your setup " +"automatically, but for some elementary issues. You will have to do it " +"yourself. ProFTPd could also be unable to use the resulting configuration, " +"and it would not restart after upgrading." +msgstr "" +"Het is voor mij helaas bijna onmogelijk om uw instelling automatisch om te " +"schakelen. Ik zal dit proberen, maar afgezien van eenvoudige opzetten, zult " +"u zelf nog aanpassingen moeten uitvoeren. Het is mogelijk dat ProFTPd de " +"door mij gemaakte configuratie niet kan gebruiken, waardoor deze niet zal " +"herstarten." + +#~ msgid "Enable anonymous access?" +#~ msgstr "Anonieme toegang mogelijk maken?" + +#~ msgid "" +#~ "Enabling anonymous access grants access to your ftp site by any user, " +#~ "without being a system user. This is probably not a good idea for " +#~ "paranoid sysadmins. Only enable if you know what it does." +#~ msgstr "" +#~ "Het activeren van anonieme toegang, geeft niet-systeem gebruikers de " +#~ "mogelijkheid om uw ftp site te bezoeken. Dit is geen goed idee voor " +#~ "paranode systeembeheerders. Activeer dit enkel als u beseft wat dit " +#~ "betekend." + +#~ msgid "Manage ProFTPd configuration with debconf?" +#~ msgstr "Wilt u dat debconf de ProFTPd configuratie beheert?" + +#~ msgid "" +#~ "If you accept here, some aspect of ProFTPd will be automatically managed " +#~ "by debconf. ProFTPd is quite complicated and flexible, so this kind of " +#~ "management could be useful for newbies, or very simple kinds of " +#~ "configuration." +#~ msgstr "" +#~ "Indien u dit aanvaard zullen sommige aspecten van ProFTPd automatisch " +#~ "door debconf beheerd worden. Voor beginners en eenvoudige opzetten is " +#~ "dit, omdat ProFTPd vrij ingewikkeld en flexibel is, aan te raden." + +#~ msgid "" +#~ "If you refuse here, all aspects of ProFTPd configuration will be under " +#~ "your responsability. If this is your first installation, I'll create a " +#~ "very basic default configuration in /etc/proftpd.conf, else I'll try " +#~ "create an updated configuration on the basis of your current one and some " +#~ "known conversion issues." +#~ msgstr "" +#~ "Als u hier Nee zegt, dan zult u alle aspecten van de ProFTPd configuratie " +#~ "persoonlijk moeten beheren. Indien dit uw eerste installatie is zal ik " +#~ "een eenvoudige standaard versievan het configuratie bestand /etc/proftpd." +#~ "conf aanmaken, zoniet probeer ik om een geactualizeerde configuratie op " +#~ "te stellen op basis van uw huidige configuratie en bekende " +#~ "omschakelknelpunten." --- proftpd-1.2.10.orig/debian/po/ru.po +++ proftpd-1.2.10/debian/po/ru.po @@ -0,0 +1,166 @@ +# translation of proftpd_1.2.8-14.po to russian +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# Translators, please read /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +msgid "" +msgstr "" +"Project-Id-Version: proftpd_1.2.8-14\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-08-28 13:32+0200\n" +"PO-Revision-Date: 2003-10-05 00:04+0600\n" +"Last-Translator: Ilgiz Kalmetev \n" +"Language-Team: russian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=KOI8-R\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.0.1\n" + +#. Type: select +#. Choices +#: ../proftpd.templates:3 +msgid "inetd, standalone" +msgstr " inetd, " + +#. Type: select +#. Description +#: ../proftpd.templates:5 +msgid "Run proftpd from inetd or standalone?" +msgstr " proftpd inetd?" + +#. Type: select +#. Description +#: ../proftpd.templates:5 +#, fuzzy +msgid "" +"ProFTPd can be run either as a service from inetd, or as a standalone " +"server. Each choice has its own benefits. If you have only a few ftp " +"connections per day, it is probably better to run proftp from inetd in order " +"to save resources." +msgstr "" +"ProFTPd inetd, " +" . . " +" ftp , " +" proftpd." + +#. Type: select +#. Description +#: ../proftpd.templates:5 +#, fuzzy +msgid "" +"On the other hand, if your ftp site is visited frequently, you should rather " +"run proftp as a standalone server (because with inetd, each time a " +"connection is opened, a new process is spawned)." +msgstr "" +" , , inetd " +", ." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "Warning on syntax changes in ProFTPd configuration." +msgstr ": ProFTPd ." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "" +"You are upgrading from a pre-1.2.8 version. Probably you will need to revise " +"your previous configuration to be compliant with current directives. Please, " +"consult documentation available in proftpd-doc and change /etc/proftpd.conf " +"as needed." +msgstr "" +" pre-1.2.8. " +" . " +" proftpd-doc /etc/proftpd.conf , " +" ." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +#, fuzzy +msgid "" +"Unfortunately, it is nearly impossible for me to convert your setup " +"automatically, but for some elementary issues. You will have to do it " +"yourself. ProFTPd could also be unable to use the resulting configuration, " +"and it would not restart after upgrading." +msgstr "" +" , , " +" . . ProFTPd " +" " +"." + +#, fuzzy +#~ msgid "Enable anonymous access?" +#~ msgstr " ?" + +#, fuzzy +#~ msgid "" +#~ "Enabling anonymous access grants access to your ftp site by any user, " +#~ "without being a system user. This is probably not a good idea for " +#~ "paranoid sysadmins. Only enable if you know what it does." +#~ msgstr "" +#~ " ftp- " +#~ " , . " +#~ " - . " +#~ " , , ." + +#, fuzzy +#~ msgid "Using SQL with ProFTPd." +#~ msgstr " SQL ProFTPd." + +#, fuzzy +#~ msgid "" +#~ "I found some old sql directives in /etc/proftpd.conf. This release of " +#~ "proftpd doesn't know many of the old sql-related configuration options. " +#~ "Many new ones were introduced, and old ones aren't recognized." +#~ msgstr "" +#~ " sql- /etc/proftpd.conf. " +#~ "proftpd sql . " +#~ " , ." + +#, fuzzy +#~ msgid "" +#~ "Luckily, it is well documented. Therefore I refer you to the " +#~ "documentation in /usr/share/doc/proftpd/README.mod_sql. I will not start " +#~ "proftpd; do that yourself when you edited the configuration." +#~ msgstr "" +#~ " , . " +#~ " /usr/share/doc/proftpd/README.mod_sql. " +#~ " proftpd; , " +#~ "." + +#, fuzzy +#~ msgid "Edit configuration file ${file}?" +#~ msgstr " /etc/proftpd.conf?" + +#, fuzzy +#~ msgid "" +#~ "You did not install any debconf-enabled versions of the proftpd yet. This " +#~ "means that I shall ask you some questions about the way to start proftpd " +#~ "and anonymous access." +#~ msgstr "" +#~ " debconf proftpd. " +#~ " , proftpd " +#~ " ." + +#, fuzzy +#~ msgid "" +#~ "However, since you had proftpd installed before, I need to know if it is " +#~ "ok for me to edit ${file} to actually make those changes. Only answer " +#~ "yes if you did not change much. You will have a chance to review the " +#~ "changes later on." +#~ msgstr "" +#~ ", proftpd, " +#~ " /etc/proftpd.conf. " +#~ " , ." + +#, fuzzy +#~ msgid "" +#~ "If you answer `no' here, I will not ask questions that may require me to " +#~ "edit the file." +#~ msgstr "" +#~ " , , " +#~ " ." --- proftpd-1.2.10.orig/debian/po/sv.po +++ proftpd-1.2.10/debian/po/sv.po @@ -0,0 +1,69 @@ +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# Developers do not need to manually edit POT or PO files. +# , fuzzy +# +# +msgid "" +msgstr "" +"Project-Id-Version: proftpd 1.2.10-24\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-08-28 13:32+0200\n" +"PO-Revision-Date: 2005-10-17 16:39+0100\n" +"Last-Translator: Daniel Nylander \n" +"Language-Team: Swedish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Swedish\n" +"X-Poedit-Country: SWEDEN\n" +"X-Poedit-SourceCharset: iso-8859-1\n" + +#. Type: select +#. Choices +#: ../proftpd.templates:3 +msgid "inetd, standalone" +msgstr "inetd, sjlvstende" + +#. Type: select +#. Description +#: ../proftpd.templates:5 +msgid "Run proftpd from inetd or standalone?" +msgstr "Kra proftpd frn inetd eller sjlvstende?" + +#. Type: select +#. Description +#: ../proftpd.templates:5 +msgid "ProFTPd can be run either as a service from inetd, or as a standalone server. Each choice has its own benefits. If you have only a few ftp connections per day, it is probably better to run proftp from inetd in order to save resources." +msgstr "ProFTPd kan antingen kras som en tjnst frn inetd eller som en sjlvstende server. Varje val har sina frdelar. Om du bara har ett ftal ftp-anslutningar per dag r det antagligen bst att kra proftpd frn inetd fr att spara resurser." + +#. Type: select +#. Description +#: ../proftpd.templates:5 +msgid "On the other hand, if your ftp site is visited frequently, you should rather run proftp as a standalone server (because with inetd, each time a connection is opened, a new process is spawned)." +msgstr "P andra sidan, om din ftptjnst r ofta beskt br du hellre kra proftpd som en sjlvstende server (fr att inetd startar upp en ny process varje gng en anslutning ppnas upp)." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "Warning on syntax changes in ProFTPd configuration." +msgstr "Varning fr syntaxndringar i ProFTPd's konfiguration." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "You are upgrading from a pre-1.2.8 version. Probably you will need to revise your previous configuration to be compliant with current directives. Please, consult documentation available in proftpd-doc and change /etc/proftpd.conf as needed." +msgstr "Du uppgraderar frn en version fre 1.2.8. Antagligen behver du se ver din tidigare konfiguration om den stmmer med nuvarande direktiv. Konsultera dokumentationen som finns tillgnglig i paketet proftpd-doc och ndra /etc/proftpd.conf om det behvs." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "Unfortunately, it is nearly impossible for me to convert your setup automatically, but for some elementary issues. You will have to do it yourself. ProFTPd could also be unable to use the resulting configuration, and it would not restart after upgrading." +msgstr "Tyvrr r det nstan omjligt fr mig att konvertera dina instllningar automatiskt men fr ngra elementra saker. Du behver gra detta p egen hand. ProFTPd kan ocks f problem att anvnda konfigurationen och det kanske inte startar upp efter uppgraderingen." + --- proftpd-1.2.10.orig/debian/po/vi.po +++ proftpd-1.2.10/debian/po/vi.po @@ -0,0 +1,91 @@ +# Vietnamese translation for proftpd. +# Copyright © 2005 Free Software Foundation, Inc. +# Clytie Siddall , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: proftpd 1.2.10-20\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-08-28 13:32+0200\n" +"PO-Revision-Date: 2005-07-10 15:31+0930\n" +"Last-Translator: Clytie Siddall \n" +"Language-Team: Vietnamese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0\n" +"X-Generator: LocFactoryEditor 1.2.2\n" + +#. Type: select +#. Choices +#: ../proftpd.templates:3 +msgid "inetd, standalone" +msgstr "inetd, độc lập" + +#. Type: select +#. Description +#: ../proftpd.templates:5 +msgid "Run proftpd from inetd or standalone?" +msgstr "Chạy proftpd từ inetd, hay độc lập không?" + +#. Type: select +#. Description +#: ../proftpd.templates:5 +#, fuzzy +msgid "" +"ProFTPd can be run either as a service from inetd, or as a standalone " +"server. Each choice has its own benefits. If you have only a few ftp " +"connections per day, it is probably better to run proftp from inetd in order " +"to save resources." +msgstr "" +"Có thể chạy trình ProFTPd hoặc từ inetd là một dịch vụ, hoặc là một trình " +"phục vụ độc lập. Mỗi tùy chọn có lợi ích riêng. Nếu bạn chỉ kết nối qua FTP " +"vài lần hàng ngày, thì có lẽ không cần dùng tiềm năng để chạy trình proftpd " +"suốt." + +#. Type: select +#. Description +#: ../proftpd.templates:5 +#, fuzzy +msgid "" +"On the other hand, if your ftp site is visited frequently, you should rather " +"run proftp as a standalone server (because with inetd, each time a " +"connection is opened, a new process is spawned)." +msgstr "" +"Mặt khác, nếu có kết nối rất nhiều đến nơi FTP của bạn, inetd không phải là " +"sự chọn hữu ích, vì mỗi lần mở kết nối nên cần tạo một tiến trình mới." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "Warning on syntax changes in ProFTPd configuration." +msgstr "Cảnh báo về cú pháp đã thay trong cấu hình ProFTPd." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "" +"You are upgrading from a pre-1.2.8 version. Probably you will need to revise " +"your previous configuration to be compliant with current directives. Please, " +"consult documentation available in proftpd-doc and change /etc/proftpd.conf " +"as needed." +msgstr "" +"Hiện có bạn đang nâng cấp từ một phiên bản trước 1.2.8. Rất có thể là bạn sẽ " +"cần phải xem lại cấu hình trước, để tuân theo chỉ thị hiện thời. Vui lòng " +"đọc tài liệu có trong «proftpd-doc», và thay đổi tập tin «/etc/proftpd.conf» " +"như cần thiết." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +#, fuzzy +msgid "" +"Unfortunately, it is nearly impossible for me to convert your setup " +"automatically, but for some elementary issues. You will have to do it " +"yourself. ProFTPd could also be unable to use the resulting configuration, " +"and it would not restart after upgrading." +msgstr "" +"Rất tiếc là trình này không thể tự động chuyển đổi thiết lập bạn, trừ một số " +"vấn đề đơn giản. Như thế thì bạn sẽ cần phải tự làm việc đó. Nếu không thì " +"trình ProFTPd không thể sử dụng cấu hình nên sẽ không khởi chạy lại sau khi " +"nâng cấp." --- proftpd-1.2.10.orig/debian/po/POTFILES.in +++ proftpd-1.2.10/debian/po/POTFILES.in @@ -0,0 +1 @@ +[type: gettext/rfc822deb] proftpd.templates --- proftpd-1.2.10.orig/debian/po/pt_BR.po +++ proftpd-1.2.10/debian/po/pt_BR.po @@ -0,0 +1,165 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators, please read /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +msgid "" +msgstr "" +"Project-Id-Version: proftpd\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-08-28 13:32+0200\n" +"PO-Revision-Date: 2004-08-07 16:55-0300\n" +"Last-Translator: Andr Lus Lopes \n" +"Language-Team: Debian-BR Project \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: select +#. Choices +#: ../proftpd.templates:3 +msgid "inetd, standalone" +msgstr "inetd, standalone" + +#. Type: select +#. Description +#: ../proftpd.templates:5 +msgid "Run proftpd from inetd or standalone?" +msgstr "Executar o proftpd em modo inetd ou standalone ?" + +#. Type: select +#. Description +#: ../proftpd.templates:5 +#, fuzzy +msgid "" +"ProFTPd can be run either as a service from inetd, or as a standalone " +"server. Each choice has its own benefits. If you have only a few ftp " +"connections per day, it is probably better to run proftp from inetd in order " +"to save resources." +msgstr "" +"O Proftpd pode ser executado como um servio do inetd ou como um servidor " +"standalone. Cada mtodo tem seus prprios benefcios. Se voc recebe poucas " +"conexes ftp por dia, pode no ser compensador em termos de consumo de " +"recursos manter o proftpd em execuo o tempo todo." + +#. Type: select +#. Description +#: ../proftpd.templates:5 +#, fuzzy +msgid "" +"On the other hand, if your ftp site is visited frequently, you should rather " +"run proftp as a standalone server (because with inetd, each time a " +"connection is opened, a new process is spawned)." +msgstr "" +"Por outro lado, caso seu site ftp seja visitado frequentemente, o inetd no " +" uma boa escolha, devido a um novo processo ser iniciado a cada vez que uma " +"conexo iniciada." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "Warning on syntax changes in ProFTPd configuration." +msgstr "Aviso sobre a sintaxe de mudanas na configurao do ProFTPd." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +msgid "" +"You are upgrading from a pre-1.2.8 version. Probably you will need to revise " +"your previous configuration to be compliant with current directives. Please, " +"consult documentation available in proftpd-doc and change /etc/proftpd.conf " +"as needed." +msgstr "" +"Voc est atualizando a aprtir de verso anterior verso 1.2.8. " +"Provavelmente voc precisar revisar sua confgiurao anterior para que a " +"mesma seja compatvel com as diretivas atuais. Por favor, consulte a " +"documentao disponvel no pacote proftpd-doc e modifique o arquivo /etc/" +"proftpd.conf de acordo com a mesma." + +#. Type: note +#. Description +#: ../proftpd.templates:17 +#, fuzzy +msgid "" +"Unfortunately, it is nearly impossible for me to convert your setup " +"automatically, but for some elementary issues. You will have to do it " +"yourself. ProFTPd could also be unable to use the resulting configuration, " +"and it would not restart after upgrading." +msgstr "" +"Infelizmente, quase impossvel converter sua configurao antiga " +"automaticamente, salvo alguns detalhes elementares. Voce ter que fazer isso " +"manualmente. O ProFTPd poder tambm no ser capaz de usar a configurao " +"resultante e no conseguir reiniciar aps a atualizao." + +#~ msgid "Enable anonymous access?" +#~ msgstr "Habilitar acesso annimo?" + +#~ msgid "" +#~ "Enabling anonymous access grants access to your ftp site by any user, " +#~ "without being a system user. This is probably not a good idea for " +#~ "paranoid sysadmins. Only enable if you know what it does." +#~ msgstr "" +#~ "Habilitar acesso annimo garante que qualquer usurio, mesmo no sendo " +#~ "usurio do sistema, acesse seu site ftp. Essa provavelmente no uma boa " +#~ "para administradores de sistemas paranicos. Somente habilite essa opo " +#~ "se voce realmente sabe o que isso pode acarretar." + +#~ msgid "Using SQL with ProFTPd." +#~ msgstr "Usando SQL com ProFTPd." + +#~ msgid "" +#~ "I found some old sql directives in /etc/proftpd.conf. This release of " +#~ "proftpd doesn't know many of the old sql-related configuration options. " +#~ "Many new ones were introduced, and old ones aren't recognized." +#~ msgstr "" +#~ "Algumas diretrizes SQL antigas foram encontradas em /etc/proftpd.conf. " +#~ "Essa verso do proftpd no reconhece muitas das opes de configurao " +#~ "antigas relacionadas SQL. Muitas novas diretrizes foram includas e " +#~ "antigas opes no so reconhecidas." + +#~ msgid "" +#~ "Luckily, it is well documented. Therefore I refer you to the " +#~ "documentation in /usr/share/doc/proftpd/README.mod_sql. I will not start " +#~ "proftpd; do that yourself when you edited the configuration." +#~ msgstr "" +#~ "Porm, este processo bem documentado. Entretanto aconselhado a " +#~ "leitura da documentao presente em /usr/share/doc/proftpd/README." +#~ "mod_sql. O proftpd no ser iniciado; faa isso manualmente depois de " +#~ "editar as configuraes." + +#, fuzzy +#~ msgid "Edit configuration file ${file}?" +#~ msgstr " Editar arquivo de configurao /etc/proftpd.conf ?" + +#, fuzzy +#~ msgid "" +#~ "You did not install any debconf-enabled versions of the proftpd yet. This " +#~ "means that I shall ask you some questions about the way to start proftpd " +#~ "and anonymous access." +#~ msgstr "" +#~ "Nenhuma verso anterior do pacote proftpd com suporte debconf foi " +#~ "instalada em seu sistema. Isso significa que eu devo lhe fazer algumas " +#~ "perguntas sobre a maneira de iniciar o proftpd e sobre acesso annimo." + +#, fuzzy +#~ msgid "" +#~ "However, since you had proftpd installed before, I need to know if it is " +#~ "ok for me to edit ${file} to actually make those changes. Only answer " +#~ "yes if you did not change much. You will have a chance to review the " +#~ "changes later on." +#~ msgstr "" +#~ "Porm, uma vez que voc possua o proftpd instalado anteriormente, " +#~ "preciso saber se voc permite que o arquivo /etc/proftpd.conf seja " +#~ "editado para relizar algumas mudanas. Somente responda sim se voc no " +#~ "muda muito sua configurao." + +#, fuzzy +#~ msgid "" +#~ "If you answer `no' here, I will not ask questions that may require me to " +#~ "edit the file." +#~ msgstr "" +#~ "Caso voc responda `no' aqui, questes que requeiram a edio desse " +#~ "arquivo no sero perguntadas." --- proftpd-1.2.10.orig/debian/CVS/Root +++ proftpd-1.2.10/debian/CVS/Root @@ -0,0 +1 @@ +:ext:frankie@cvs.alioth.debian.org:/cvsroot/pkg-proftpd --- proftpd-1.2.10.orig/debian/CVS/Repository +++ proftpd-1.2.10/debian/CVS/Repository @@ -0,0 +1 @@ +debian --- proftpd-1.2.10.orig/debian/CVS/Entries +++ proftpd-1.2.10/debian/CVS/Entries @@ -0,0 +1,33 @@ +D/patches//// +D/po//// +D/scripts//// +/NEWS.Debian/1.1.1.1/Sat Apr 17 18:16:02 2004// +/TODO.texi/1.1.1.1/Sat Apr 17 18:16:02 2004// +/conffiles.notused/1.1.1.1/Sat Apr 17 18:16:02 2004// +/copyright/1.3/Sat Apr 17 18:16:02 2004// +/default/1.1.1.1/Sat Apr 17 18:16:02 2004// +/dirs/1.1.1.1/Sat Apr 17 18:16:02 2004// +/examples/1.1.1.1/Sat Apr 17 18:16:02 2004// +/ftpasswd.8/1.1.1.1/Sat Apr 17 18:16:02 2004// +/ftpstats.8/1.2/Sat Apr 17 18:16:02 2004// +/ftpusers/1.1.1.1/Sat Apr 17 18:16:02 2004// +/ftpusers.5/1.1.1.1/Sat Apr 17 18:16:02 2004// +/html2man.pl/1.1.1.1/Sat Apr 17 18:16:02 2004// +/mod_mysql.texi/1.1.1.1/Sat Apr 17 18:16:02 2004// +/mod_mysql.txt/1.1.1.1/Sat Apr 17 18:16:02 2004// +/mod_pgsql.texi/1.1.1.1/Sat Apr 17 18:16:02 2004// +/mod_pgsql.txt/1.1.1.1/Sat Apr 17 18:16:02 2004// +/proftpd.config/1.2/Sat Apr 17 18:16:02 2004// +/proftpd.cron.monthly/1.1.1.1/Sat Apr 17 18:16:02 2004// +/proftpd.pam/1.1.1.1/Sat Apr 17 18:16:02 2004// +/proftpd.preinst/1.2/Sat Apr 17 18:16:02 2004// +/proftpd.prerm/1.1.1.1/Sat Apr 17 18:16:02 2004// +/proftpd.templates/1.1.1.1/Sat Apr 17 18:16:02 2004// +/welcome.msg/1.1.1.1/Sat Apr 17 18:16:02 2004// +/proftpd.postinst/1.8/Sat Apr 17 19:52:15 2004// +/basic.conf/1.5/Mon Aug 2 11:38:40 2004// +/changelog/1.14/Mon Aug 2 14:01:37 2004// +/control/1.7/Mon Aug 2 11:28:13 2004// +/proftpd.init/1.2/Mon Aug 2 13:52:03 2004// +/proftpd.postrm/1.4/Mon Aug 2 11:28:13 2004// +/rules/1.6/Mon Aug 2 13:05:24 2004// --- proftpd-1.2.10.orig/debian/dirs +++ proftpd-1.2.10/debian/dirs @@ -0,0 +1,6 @@ +etc/init.d +etc/cron.monthly +etc/default +usr/bin +usr/sbin +var/run --- proftpd-1.2.10.orig/debian/diskuse.8 +++ proftpd-1.2.10/debian/diskuse.8 @@ -0,0 +1,51 @@ +.TH DISKUSE: "8" "September 2005" "Proftpd" "Proftpd Utilities" +.SH NAME +diskuse \- calculates the amount of disk space used +.SH SYNOPSIS +diskuse [ options ] dir1 dir2 ... dirN +.SH DESCRIPTION +diskuse calculates the amount of disk space used underneath the given +directory (or directories). Either a \fB\-\-group\fR or a \fB\-\-user\fR option is required. +If both are used, only files whose ownership matches both the given name and +group will be added to the disk usage sum. +.SH OPTIONS +\fB\-\-G\fR +Display the number of bytes in units of gigabytes. The default +number is in bytes. +.TP +\fB\-\-K\fR +Display the number of bytes in units of kilobytes. The default +number is in bytes. +.TP +\fB\-\-M\fR +Display the number of bytes in units of megabytes. The default +number is in bytes. +.TP +\fB\-\-dir\-tally\fR +Count the size of directories toward the disk usage sum. The +default is to consider regular files only. +.TP +\fB\-\-group\fR +Count files owned by this group in the disk usage sum. +.TP +\fB\-\-help\fR +Display this message. +.TP +\fB\-\-user\fR +Count files owned by this user in the disk usage sum. +.TP +\fB\-\-verbose\fR +Display diagnostic output while diskuse is running. +.SH AUTHORS +The Proftpd team. See http://www.proftpd.org/ for information. +.SH COPYRIGHT +Copyright (C) 2000-2002 TJ Saunders . +.P +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. +.SH NOTES +Manual page written for Debian GNU/Linux by +Francesco P. Lovergine , Sep 2005 + --- proftpd-1.2.10.orig/debian/control +++ proftpd-1.2.10/debian/control @@ -0,0 +1,131 @@ +Source: proftpd +Section: net +Priority: optional +Maintainer: Francesco Paolo Lovergine +Standards-Version: 3.6.2 +Build-Depends: libmysqlclient15-dev (>= 5.0.16) | libmysqlclient12-dev (>= 4.0.23) , libpam-dev, debhelper (>=4.1.16), zlib1g-dev, libpq-dev | postgresql-dev (>= 7.2), libldap2-dev, libssl-dev, libwrap0-dev, patch, bzip2, sharutils, libcap-dev, autotools-dev, libncurses5-dev + +Package: proftpd +Architecture: any +Depends: netbase (>= 4.13), ${shlibs:Depends}, debconf (>= 0.5.00)|debconf-2.0, proftpd-common (= ${Source-Version}), adduser, ucf (>= 0.30) +Conflicts: wu-ftpd, wu-ftpd-academ, ftp-server, proftpd-mysql, proftpd-pgsql, proftpd-ldap +Provides: ftp-server +Suggests: proftpd-doc +Description: Versatile, virtual-hosting FTP daemon + A powerful replacement for wu-ftpd, this File Transfer Protocol + daemon supports hidden directories, virtual hosts, and per-directory + ".ftpaccess" files. It uses a single main configuration file, with a + syntax similar to Apache. + . + Because of the advanced design, anonymous-FTP directories can have + an arbitrary internal structure (bin, lib, etc, and special files are + not needed). Advanced features like multiple password files and + upload/download ratios are also supported. + . + This package contains only the basic functionality of proftpd and PAM + authentication. If you need SQL, use proftpd-mysql or proftpd-pgsql + and if you need LDAP, use proftpd-ldap. + . + More information can be found at http://www.proftpd.org/. + +Package: proftpd-common +Architecture: any +Depends: netbase (>= 4.13), ${perl:Depends}, ${shlibs:Depends}, debconf (>= 0.5.00)|debconf-2.0, debianutils (>= 1.21.0), libpam-runtime (>= 0.76-13.1) +Recommends: proftpd|proftpd-mysql|proftpd-pgsql|proftpd-ldap +Suggests: proftpd-doc +Replaces: proftpd (<< 1.2.8-1), proftpd-mysql (<< 1.2.8-1), proftpd-pgsql (<< 1.2.8-1), proftpd-ldap (<< 1.2.8-1) +Description: Versatile, virtual-hosting FTP daemon + A powerful replacement for wu-ftpd, this File Transfer Protocol + daemon supports hidden directories, virtual hosts, and per-directory + ".ftpaccess" files. It uses a single main configuration file, with a + syntax similar to Apache. + . + Because of the advanced design, anonymous-FTP directories can have + an arbitrary internal structure (bin, lib, etc, and special files are + not needed). Advanced features like multiple password files and + upload/download ratios are also supported. + . + This package provides the common administrative programs. + . + More information can be found at http://www.proftpd.org/. + +Package: proftpd-doc +Architecture: all +Suggests: proftpd-common +Replaces: proftpd (<= 1.2.1-2) +Section: doc +Description: Versatile, virtual-hosting FTP daemon (Documentation) + A powerful replacement for wu-ftpd, this File Transfer Protocol + daemon supports hidden directories, virtual hosts, and per-directory + ".ftpaccess" files. It uses a single main configuration file, with a + syntax similar to Apache. + . + Because of the advanced design, anonymous-FTP directories can have + an arbitrary internal structure (bin, lib, etc, and special files are + not needed). Advanced features like multiple password files and + upload/download ratios are also supported. + . + More information can be found at http://www.proftpd.org/. + +Package: proftpd-mysql +Architecture: any +Depends: netbase (>= 4.13), ${shlibs:Depends}, debconf (>= 0.5.00)|debconf-2.0, proftpd-common (= ${Source-Version}), adduser, ucf (>= 0.30) +Conflicts: wu-ftpd, wu-ftpd-academ, ftp-server, proftpd, proftpd-pgsql, proftpd-ldap +Provides: ftp-server +Description: Versatile, virtual-hosting FTP daemon (with SQL support) + A powerful replacement for wu-ftpd, this File Transfer Protocol + daemon supports hidden directories, virtual hosts, and per-directory + ".ftpaccess" files. It uses a single main configuration file, with a + syntax similar to Apache. + . + Because of the advanced design, anonymous-FTP directories can have + an arbitrary internal structure (bin, lib, etc, and special files are + not needed). Advanced features like multiple password files and + upload/download ratios are also supported. + . + This package contains the proftpd daemon compiled with support for + MySQL user authentication. It also supports PAM authentication. + . + More information can be found at http://www.proftpd.org/. + +Package: proftpd-pgsql +Architecture: any +Depends: netbase (>= 4.13), ${shlibs:Depends}, debconf (>= 0.5.00)|debconf-2.0, proftpd-common (= ${Source-Version}), adduser, ucf (>= 0.30) +Conflicts: wu-ftpd, wu-ftpd-academ, ftp-server, proftpd, proftpd-mysql, proftpd-ldap +Provides: ftp-server +Description: Versatile, virtual-hosting FTP daemon (with SQL support) + A powerful replacement for wu-ftpd, this File Transfer Protocol + daemon supports hidden directories, virtual hosts, and per-directory + ".ftpaccess" files. It uses a single main configuration file, with a + syntax similar to Apache. + . + Because of the advanced design, anonymous-FTP directories can have + an arbitrary internal structure (bin, lib, etc, and special files are + not needed). Advanced features like multiple password files and + upload/download ratios are also supported. + . + This package contains the proftpd daemon compiled with support for + PostgreSQL user authentication. It also supports PAM authentication. + . + More information can be found at http://www.proftpd.org/. + +Package: proftpd-ldap +Architecture: any +Depends: netbase (>= 4.13), ${shlibs:Depends}, debconf (>= 0.5.00)|debconf-2.0, proftpd-common (= ${Source-Version}), adduser, ucf (>= 0.30) +Conflicts: wu-ftpd, wu-ftpd-academ, ftp-server, proftpd, proftpd-mysql, proftpd-pgsql +Provides: ftp-server +Description: Versatile, virtual-hosting FTP daemon (with LDAP support) + A powerful replacement for wu-ftpd, this File Transfer Protocol + daemon supports hidden directories, virtual hosts, and per-directory + ".ftpaccess" files. It uses a single main configuration file, with a + syntax similar to Apache. + . + Because of the advanced design, anonymous-FTP directories can have + an arbitrary internal structure (bin, lib, etc, and special files are + not needed). Advanced features like multiple password files and + upload/download ratios are also supported. + . + This package contains the proftpd daemon compiled with support for + LDAP user authentication. It also supports PAM authentication. + . + More information can be found at http://www.proftpd.org/. --- proftpd-1.2.10.orig/debian/default +++ proftpd-1.2.10/debian/default @@ -0,0 +1,13 @@ +# Defaults for proftpd initscript + +# Master system-wide proftpd switch. The initscript +# will not run if it is not set to yes. +RUN="yes" + +# Default options. +# For more exhaustive logging, try "-d 3". +OPTIONS="" + +# Default configuration file +CONF=/etc/proftpd.conf + --- proftpd-1.2.10.orig/debian/ftpusers +++ proftpd-1.2.10/debian/ftpusers @@ -0,0 +1,14 @@ +# /etc/ftpusers: list of users disallowed FTP access. See ftpusers(5). + +root +daemon +bin +sys +sync +games +man +lp +mail +news +uucp +nobody --- proftpd-1.2.10.orig/debian/proftpd-common.postrm +++ proftpd-1.2.10/debian/proftpd-common.postrm @@ -0,0 +1,16 @@ +#!/bin/sh -e + +if [ "$1" = "purge" ] ; then + rm -f /etc/proftpd.conf + rm -f /etc/proftpd.conf.proftpd-new + rm -f /etc/proftpd.conf.proftpd-old + + ucf --purge /etc/proftpd.conf + + update-rc.d -f proftpd remove >/dev/null + update-inetd --remove "^.*ftp.*/usr/sbin/proftpd$" /dev/tty + rm -rf /var/run/proftpd /var/run/proftpd.pid +fi + +#DEBHELPER# + --- proftpd-1.2.10.orig/debian/conffiles.notused +++ proftpd-1.2.10/debian/conffiles.notused @@ -0,0 +1,5 @@ +/etc/pam.d/proftpd +/etc/proftpd.conf +/etc/init.d/proftpd +/etc/cron.monthly/proftpd +/etc/ftpusers --- proftpd-1.2.10.orig/debian/de.po +++ proftpd-1.2.10/debian/de.po @@ -0,0 +1,79 @@ + + +#326799 - [l10n:de] updated German debconf translation - Debian Bug report logs + + +

Debian Bug report logs - #326799
[l10n:de] updated German debconf translation

+
+Package: proftpd; +Maintainer for proftpd is +Francesco Paolo Lovergine <frankie@debian.org>; +Source for proftpd is +proftpd. +
Reported by: Jens Nachtigall <nachtigall@web.de>; +Date: Mon, 5 Sep 2005 19:48:05 UTC. +
+

Severity: minor; +Tags: l10n, patch; +

+ +

View this report as an mbox folder.

+
+Report forwarded to debian-bugs-dist@lists.debian.org, Francesco Paolo Lovergine <frankie@debian.org>:
+Bug#326799; Package proftpd. +Full text and rfc822 format available.
+
+Acknowledgement sent to Jens Nachtigall <nachtigall@web.de>:
+New Bug report received and forwarded. Copy sent to Francesco Paolo Lovergine <frankie@debian.org>. +Full text and rfc822 format available.
+

Message received at submit@bugs.debian.org (full text, mbox):

+
+From: Jens Nachtigall <nachtigall@web.de>
+To: Debian Bug Tracking System <submit@bugs.debian.org>
+Subject: [l10n:de] updated German debconf translation
+Date: Mon, 05 Sep 2005 21:35:21 +0200
+
+
[Message part 1 (text/plain, inline)]
+
Package: proftpd
+Severity: minor
+Tags: l10n patch
+
+Please find a translation of the debconf template into German attached.
+Please copy the file de.po to debian/po/ (I assume your package uses
+po-debconf(7))
+
+Let me know if the templates changes, so that I can adjust the
+translation. Warning translators before uploading the package and
+leaving them a delay for translation updates is the best approach.
+
+"grep Last-Translator debian/po/*po" will give you the needed addresses.
+
+
+-- System Information:
+Debian Release: testing/unstable
+  APT prefers unstable
+  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable')
+Architecture: i386 (i686)
+Shell:  /bin/sh linked to /bin/bash
+Kernel: Linux 2.6.12
+Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
+
+ +
[de.po (text/plain, attachment)]
+ +

Send a report that this bug log contains spam.

+
+ +
Debian bug tracking system administrator <owner@bugs.debian.org>. + Last modified: + + Sun, 11 Sep 2005 10:05:32 UTC + + +

+ Debian Bug tracking system
+ copyright 1999 Darren O. Benham, + 1997, 2003 nCipher Corporation Ltd, + 1994-7 Ian Jackson. +

+ --- proftpd-1.2.10.orig/debian/rules +++ proftpd-1.2.10/debian/rules @@ -0,0 +1,229 @@ +#!/usr/bin/make -f +# -*- makefile -*- made with the aid of debmake, by Christoph Lameter, + +package = proftpd + +SHELL = /bin/bash +CC = gcc +# +# HAVE_OPENSSL is required by mod_sql.c. +# See #233031 for details. +# +CFLAGS := -O3 -Wall -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_OPENSSL -DUSE_LDAP_TLS +IE := install -m755 -s +ID := install -m644 + +# Some special build options +ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) + CFLAGS += -g + ifneq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) + IE := install -m755 + endif +endif + +DH_COMPAT=4 +export DH_COMPAT + +# the dbs rules +TAR_DIR := proftpd-1.2.10 +include debian/scripts/dbs-build.mk + +# dpkg-arch rules +ifeq (,$(DEB_BUILD_GNU_TYPE)) + include debian/scripts/dpkg-arch.mk +endif + +DOC = usr/share/doc +MAN = usr/share/man + +# This is the suite of modules maintained in debian/, not upstream CVS. +# To enable mod_pgsql, put it after or in place of mod_mysql. +# Always keep in order modules. If in doubt ask to #proftpd ... +#EXTRAMODS = mod_mysql:mod_ratio: +QUOTAMOD = mod_quotatab: +EXTRAMODS = mod_ratio:mod_tls:mod_rewrite:mod_radius:mod_wrap:mod_quotatab_file:mod_delay: +MYSQLMODS = mod_sql:mod_sql_mysql:mod_quotatab_sql: +PGSQLMODS = mod_sql:mod_sql_postgres:mod_quotatab_sql: +LDAPMODS = mod_ldap:mod_quotatab_ldap: + +# This should be commented out for the build to succeed. +#DEBUG = -DDEBUG_NOFORK -g3 + +configure_args := --prefix=/usr --cache-file=../config.cache \ + --sysconfdir=/etc --localstatedir=/var/run --enable-autoshadow \ + --with-includes=$(shell pg_config --includedir) \ + --srcdir=../.. --enable-ipv6 --enable-sendfile + +ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) + configure_args += --build $(DEB_HOST_GNU_TYPE) +else + configure_args += --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE) +endif + +stampdir/build: stampdir/configure $(dh_mak_deps) + dh_testdir + # The -DLINUX bit is cause ./configure doesnt detect alpha + ( cd build-tree/$(TAR_DIR)/build/pam && $(MAKE) all PLATFORM=-DLINUX ) + ( cd build-tree/$(TAR_DIR)/build/mysql && $(MAKE) proftpd PLATFORM=-DLINUX ) + ( cd build-tree/$(TAR_DIR)/build/pgsql && $(MAKE) proftpd PLATFORM=-DLINUX ) + ( cd build-tree/$(TAR_DIR)/build/ldap && $(MAKE) proftpd PLATFORM=-DLINUX ) + touch stampdir/build + +build: stampdir/build + +stampdir/configure: $(unpacked) $(patched) + for d in pam mysql pgsql ldap ; do mkdir -p build-tree/$(TAR_DIR)/build/$$d/contrib/dist/rpm ; done + cd build-tree/$(TAR_DIR)/modules ; for m in mod_{ratio,sql,sqlpw,mysql,pgsql}.c ; do if [ ! -e $$m ] ; then ln -s ../contrib/$$m . ; fi ; done + + ( cd build-tree/$(TAR_DIR)/build/pam && CC="$(CC) -Wall $(CFLAGS) $(DEBUG) -I.. -I../../.." \ + ../../configure $(configure_args) --with-modules=$(QUOTAMOD)$(EXTRAMODS)mod_readme:mod_ifsession ) + ( cd build-tree/$(TAR_DIR)/build/mysql && CC="$(CC) -Wall $(CFLAGS) $(DEBUG) -I.. -I../../.." \ + ../../configure $(configure_args) --with-modules=$(QUOTAMOD)$(MYSQLMODS)$(EXTRAMODS)mod_readme:mod_ifsession ) + ( cd build-tree/$(TAR_DIR)/build/pgsql && CC="$(CC) -Wall $(CFLAGS) $(DEBUG) -I.. -I../../.." \ + ../../configure $(configure_args) --with-modules=$(QUOTAMOD)$(PGSQLMODS)$(EXTRAMODS)mod_readme:mod_ifsession ) + ( cd build-tree/$(TAR_DIR)/build/ldap && CC="$(CC) -Wall $(CFLAGS) $(DEBUG) -I.. -I../../.." \ + ../../configure $(configure_args) --with-modules=$(QUOTAMOD)$(LDAPMODS)$(EXTRAMODS)mod_readme:mod_ifsession ) + touch stampdir/configure + +clean: + dh_testdir + dh_clean + + -test -r /usr/share/misc/config.sub && \ + cp -f /usr/share/misc/config.sub build-tree/$(TAR_DIR)/config.sub + -test -r /usr/share/misc/config.guess && \ + cp -f /usr/share/misc/config.guess build-tree/$(TAR_DIR)/config.guess + + rm -rf stampdir build-tree + rm -f stamp-build stamp-configure debian/files.saved debian/files + rm -rf build + rm -f $$(find . -type l) $$(find . -name "*~" -o -name "*.o") + rm -f proftpd config.cache config.log lib/*.a ftpshut Make.rules + rm -rf debian/proftpd debian/proftpd-{doc,common,ldap,pgsql,mysql} + rm -rf debian/{files*,*substvars*,*.gz} core + rm -f debian/proftpd-{mysql,pgsql,ldap}.{postinst,postrm,prerm,config,init} + rm -f $$(find * -name "*.orig") modules/mod_ratio.c + rm -f contrib/dist/rpm/proftpd.spec + +binary-indep: checkroot build + dh_testdir + dh_clean -k -i + dh_installdirs -i $(DOC) -pproftpd-doc + dh_installdocs -i debian/copyright + dh_installchangelogs -i build-tree/$(TAR_DIR)/ChangeLog + rm -f build-tree/$(TAR_DIR)/README.AIX build-tree/$(TAR_DIR)/README.cygwin \ + build-tree/$(TAR_DIR)/README.FreeBSD build-tree/$(TAR_DIR)/README.Solaris2.5x \ + build-tree/$(TAR_DIR)/README.Unixware + dh_installdocs -i build-tree/$(TAR_DIR)/README* \ + debian/*.txt \ + $$(find build-tree/$(TAR_DIR)/doc/* -maxdepth 0 -type f | egrep -v "Get|Show|license") \ + $$(find build-tree/$(TAR_DIR)/contrib -maxdepth 1 -name "*.html" -type f -maxdepth 1) \ + build-tree/$(TAR_DIR)/contrib/README.mod_wrap \ + build-tree/$(TAR_DIR)/contrib/README.ratio build-tree/$(TAR_DIR)/contrib/UPGRADE.mod_sql \ + build-tree/$(TAR_DIR)/contrib/README.mod_quotatab \ + build-tree/$(TAR_DIR)/doc/howto \ + build-tree/$(TAR_DIR)/doc/modules \ + build-tree/$(TAR_DIR)/doc/faq.html \ + build-tree/$(TAR_DIR)/doc/Configuration.* + dh_installexamples -i build-tree/$(TAR_DIR)/sample-configurations/* build-tree/$(TAR_DIR)/doc/mod_sample.c + dh_compress -i + dh_fixperms -i + dh_installdeb -i + dh_gencontrol -i -u-isp + dh_md5sums -i + dh_fixperms -i + dh_builddeb -i + +binary-arch: checkroot build + dh_testdir + dh_clean -k -i + dh_installdirs -a $(DOC) $(MAN) + dh_installdocs -a debian/copyright + dh_installchangelogs -a build-tree/$(TAR_DIR)/ChangeLog + + for t in mysql pgsql ldap ; do \ + for d in postinst postrm prerm config init ; do \ + sed -e "s,usr/share/doc/proftpd,usr/share/doc/proftpd-$$t,g" \ + < debian/proftpd.$$d > debian/proftpd-$$t.$$d ; \ + done ; \ + ln -sf proftpd.templates debian/proftpd-$$t.templates ; \ + done + + for d in pam mysql pgsql ldap ; do \ + case $$d in \ + pam) \ + packagename="proftpd" ;\ + ;; \ + *) \ + packagename="proftpd-$$d" ;\ + ;; \ + esac ;\ + cwd=`pwd` ; \ + set -e ; \ + dh_installdirs -p$$packagename etc/pam.d etc/init.d etc/default ;\ + ( cd build-tree/$(TAR_DIR)/build/$$d && $(MAKE) install-proftpd \ + rundir=var/run/proftpd \ + mandir=usr/share/man \ + sbindir=usr/sbin \ + bindir=usr/bin \ + sysconfdir=etc INSTALL=install DESTDIR=$$cwd/debian/$$packagename/ ) ;\ + rm -f debian/$$packagename/usr/sbin/in.proftpd ;\ + mkdir -p debian/$$packagename/usr/share/doc/$$packagename/examples ;\ + cp debian/basic.conf debian/$$packagename/usr/share/doc/$$packagename/examples/proftpd.conf ;\ + cp debian/welcome.msg debian/$$packagename/usr/share/doc/$$packagename/examples/welcome.msg ;\ + cp debian/ftpusers debian/$$packagename/etc ;\ + install -m 755 debian/proftpd.init debian/$$packagename/etc/init.d/proftpd ;\ + install -m 644 debian/proftpd.pam debian/$$packagename/etc/pam.d/proftpd ;\ + install -m 644 debian/default debian/$$packagename/etc/default/proftpd ;\ + done + + dh_installdirs -pproftpd-common usr/bin \ + usr/share/man usr/share/man/man1 usr/share/man/man5 usr/share/man/man8 + cwd=`pwd` ;\ + ( cd build-tree/$(TAR_DIR)/build/pam && $(MAKE) install-utils install-man \ + rundir=var/run/proftpd \ + mandir=usr/share/man \ + sbindir=usr/sbin \ + bindir=usr/bin \ + sysconfdir=etc INSTALL=install DESTDIR=$$cwd/debian/proftpd-common/ ) + + dh_installdirs -pproftpd-common usr/sbin etc/cron.monthly + install debian/ftpusers.5 debian/proftpd-common/usr/share/man/man5/ftpusers.5 + install debian/proftpd.conf.5 debian/proftpd-common/usr/share/man/man5/proftpd.conf.5 + install debian/ftpasswd.8 debian/proftpd-common/usr/share/man/man8/ftpasswd.8 + install build-tree/$(TAR_DIR)/contrib/xferstats.holger-preiss \ + debian/proftpd-common/usr/sbin/ftpstats + + install -m 755 build-tree/$(TAR_DIR)/contrib/ftpasswd debian/proftpd-common/usr/sbin/ftpasswd + install -m 755 build-tree/$(TAR_DIR)/contrib/ftpquota debian/proftpd-common/usr/sbin/ftpquota + install -m 755 build-tree/$(TAR_DIR)/contrib/diskuse debian/proftpd-common/usr/sbin/diskuse + install -m 755 debian/proftpd.cron.monthly debian/proftpd-common/etc/cron.monthly/proftpd + cp debian/ftpstats.8 debian/proftpd-common/usr/share/man/man8 + cp debian/diskuse.8 debian/proftpd-common/usr/share/man/man8 + + dh_installdebconf -a + dh_compress -a + dh_fixperms -a + dh_installdeb -a + dh_shlibdeps -a + dh_perl -a + dh_gencontrol -a -u-isp + dh_strip -a + dh_md5sums -a + dh_fixperms -a + dh_builddeb -a + if egrep "^DEBUG" debian/rules; then false; fi + +binary: binary-indep binary-arch + +checkroot: + dh_testdir + dh_testroot + +.PHONY: binary binary-arch binary-indep clean checkroot + +tidy: + rm -f o *~ debian/*~ + - cd debian && indent -v mod_mysql.c mod_pgsql.c mod_ratio.c + cd debian && makeinfo --no-headers -o mod_mysql.txt mod_mysql.texi + cd debian && makeinfo --no-headers -o mod_pgsql.txt mod_pgsql.texi --- proftpd-1.2.10.orig/debian/proftpd.conf.5 +++ proftpd-1.2.10/debian/proftpd.conf.5 @@ -0,0 +1,27 @@ +.TH PROFTPD.CONF 5 "28 August 2005" "proftpd.conf" "Debian proftpd" +.SH NAME +proftpd.conf - Configuration file for ProFTPD +.SH DESCRIPTION +The full documentation for +.B /etc/proftpd.conf +is maintained as a HTML file in the package +.B proftpd-doc +. If a browser like +.B w2m +and the +.B proftpd-doc +package are properly installed on your system, the command +.IP +.B w3m /usr/share/doc/proftpd-doc/Configuration.html +.PP +would give you access to the complete manual. +.PP +.SH DISCLAIMER +The whole documentation of proftpd is maintained by the Proftpd Team as a bounce of text files and/or +HTML pages. A few man pages are written and maintained for Debian by its maintainer +Francesco P. Lovergine , but the final source of information +are the upstream documentation, and in some cases the sources. +.PP +.SH "SEE ALSO" +\fBproftpd\fR(8) +.PP --- proftpd-1.2.10.orig/debian/proftpd.config +++ proftpd-1.2.10/debian/proftpd.config @@ -0,0 +1,19 @@ +#!/bin/sh -e + +# Source debconf library. +. /usr/share/debconf/confmodule + +action=$1 +version=$2 + +db_title ProFTPd configuration + +if dpkg --compare-versions "$version" lt "1.2.8-1" ; then + if test -f /etc/proftpd.conf ; then + db_input critical shared/proftpd/warning || true + db_go + fi +fi + +db_input high shared/proftpd/inetd_or_standalone || true +db_go --- proftpd-1.2.10.orig/debian/NEWS.Debian +++ proftpd-1.2.10/debian/NEWS.Debian @@ -0,0 +1,32 @@ +proftpd (1.2.10-16) unstable; urgency=low + + Currently mod_ldap >2.8.14 obsoleted LDAPHomedirOnDemand, it now has a couple of new + directives to manage home directories: + + LDAPGenerateHomedir + LDAPGenerateHomedirPrefix + + they can be used to create/mount/whatelse home directories on demand. + Currently mod_ldap and other contributed modules are heavily under-documented, sources + are the last-resort source of information. "Use the Source, Luke!" + + -- Francesco Paolo Lovergine Mon, 6 Jun 2005 14:39:04 +0200 + +proftpd (1.2.10-1) unstable; urgency=low + + A patch introduced by the old maintainer for mod_ldap and ported up to 1.2.9 + in Debian has been removed. It was not documented at all indeed, so it should not + create problems. Anyway equivalent features can be obtained differently: + + ExecOnEvent core.create-home /path/to/script + + allows the execution of a script on home dir creation. This requires a + post-1.2.10 patch which is already integrated in debian edition. + Also, mod_ldap_conf and mod_ifsession can be used to allow/deny access to + specific LDAP users by IP address. + + Directives dropped are LDAPHomedirOnDemandScript, LDAPCheckAllow, LDAPCheckDeny + respectively. + + -- Francesco Paolo Lovergine Sat, 9 Oct 2004 14:39:04 +0200 + --- proftpd-1.2.10.orig/debian/ftpquota.8 +++ proftpd-1.2.10/debian/ftpquota.8 @@ -0,0 +1,128 @@ +.TH FTPQUOTA "8" "August 2005" "Proftpd" "Proftpd Utilities" +.SH NAME +ftpquota \- An utility to manage Proftpd quotas +.SH SYNOPSIS +ftpquota [options] +.SH DESCRIPTION +This utility can be used to create quota tables and manage their records +in order to control the mod_quotatab module behavior in Proftpd. +.SH OPTIONS +.PP +The following options describe the type of operation to be performed: +.TP +\fB\-\-add\-record\fR +Create a new record with the specified limits. Any +limits left unspecified with have their default +values. This option requires the \fB\-\-name\fR and +\fB\-\-quota\-type\fR options. +.TP +\fB\-\-create\-table\fR +Create the table if not present. Used to initialize +a table. The default limit table path is +"./ftpquota.limittab". The default tally table path is +"./ftpquota.tallytab". +.TP +\fB\-\-delete\-record\fR +Deletes a quota record from the table. This option +requires the \fB\-\-name\fR and \fB\-\-quote\-type\fR options. +.TP +\fB\-\-show\-records\fR +Prints out all of the quota records in the table in +a legible format. +.TP +\fB\-\-update\-record\fR +Updates a quota record with the specified limits. Any +limits left unspecified will be updated with their +default value. This option requires the \fB\-\-name\fR and +\fB\-\-quota\-type\fR options. +.PP +The following option describes the type of table on which to operate: +.TP +\fB\-\-type\fR +Specifies a table type to use. The allowable options +are: "limit" or "tally". This is required. +.IP +The following options are used to specify specific quota limits: +.TP +\fB\-\-Bu\fR, \fB\-\-bytes\-upload\fR +Specifies the limit of the number of bytes that may be +uploaded. Defaults to \fB\-1\fR (unlimited). +.TP +\fB\-\-Bd\fR, \fB\-\-bytes\-download\fR +Specifies the limit of the number of bytes that may be +downloaded. Defaults to \fB\-1\fR (unlimited). +.TP +\fB\-\-Bx\fR, \fB\-\-bytes\-xfer\fR +Specifies the limit of the number of bytes that may be +transferred. Note that this total includes uploads, +downloads, AND directory listings. Defaults to +\fB\-1\fR (unlimited). +.TP +\fB\-\-Fu\fR, \fB\-\-files\-upload\fR +Specifies the limit of the number of files that may be +uploaded. Defaults to \fB\-1\fR (unlimited). +.TP +\fB\-\-Fd\fR, \fB\-\-files\-download\fR +Specifies the limit of the number of files that may be +downloaded. Defaults to \fB\-1\fR (unlimited). +.TP +\fB\-\-Fx\fR, \fB\-\-files\-xfer\fR +Specifies the limit of the number of files that may be +transferred, including uploads and downloads. Defaults +to \fB\-1\fR (unlimited). +.TP +\fB\-L\fR, \fB\-\-limit\-type\fR +Specifies the type of limit, "hard" or "soft", of +the bytes limits. If "hard", any uploaded files that +push the bytes used counter past the limit will be +automatically deleted; if "soft", those extra bytes +will be allowed, but future uploads will be denied. +This option only makes sense if \fB\-\-type\fR is "limit". +.TP +\fB\-N\fR, \fB\-\-name\fR +Specifies a name for the quota record. This name +will be the user/login name, group name, or class +name, depending on the quota type. This option +is ignored if the quota type specified is "all". +.HP +\fB\-P\fR, \fB\-\-per\-session\fR +Specifies that the quota limit is to be applied only +to each session, rather than persisting across +sessions. By default, quotas are persistent. +Specifies a "quota type" for this record, where +.TP +\fB\-Q\fR, \fB\-\-quota\-type\fR +the type means to which category of FTP users this +quota will apply. The quota type must be one of: +"user", "group", "class", or "all". +.PP +The following options are miscellaneous: +.TP +\fB\-\-help\fR +Displays this message. +.TP +\fB\-\-table\-path\fR +Specifies the path to a quota table file to use. +.TP +\fB\-\-units\fR +Specifies whether to treats bytes as is, in kilobytes, +megabytes, or gigabytes. Allowable options are: +"B" or "byte", "Kb" or "kilo", "Mb" or "mega", +and "Gb" or "giga". Defaults to "byte". +.TP +\fB\-\-verbose\fR +Toggles more verbose information about the doings of +the tool as it works. +.SH AUTHORS +The Proftpd team. See http://www.proftpd.org/ for information. +.SH COPYRIGHT +Copyright (C) 2000-2002 TJ Saunders . +.P +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. +.SH NOTES +Manual page written for Debian GNU/Linux by +Francesco P. Lovergine , Aug 2005 + --- proftpd-1.2.10.orig/debian/proftpd.pam +++ proftpd-1.2.10/debian/proftpd.pam @@ -0,0 +1,11 @@ +#%PAM-1.0 +auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed +@include common-auth + +# This is disabled because anonymous logins will fail otherwise, +# unless you give the 'ftp' user a valid shell, or /bin/false and add +# /bin/false to /etc/shells. +#auth required pam_shells.so + +@include common-account +@include common-session --- proftpd-1.2.10.orig/debian/proftpd.templates +++ proftpd-1.2.10/debian/proftpd.templates @@ -0,0 +1,26 @@ +Template: shared/proftpd/inetd_or_standalone +Type: select +_Choices: inetd, standalone +Default: standalone +_Description: Run proftpd from inetd or standalone? + ProFTPd can be run either as a service from inetd, or as a standalone + server. Each choice has its own benefits. If you have only a few ftp + connections per day, it is probably better to run proftp from inetd in + order to save resources. + . + On the other hand, if your ftp site is visited frequently, you should + rather run proftp as a standalone server (because with inetd, each + time a connection is opened, a new process is spawned). + +Template: shared/proftpd/warning +Type: note +_Description: Warning on syntax changes in ProFTPd configuration. + You are upgrading from a pre-1.2.8 version. Probably you will need + to revise your previous configuration to be compliant with + current directives. Please, consult documentation available + in proftpd-doc and change /etc/proftpd.conf as needed. + . + Unfortunately, it is nearly impossible for me to convert your setup + automatically, but for some elementary issues. You will have to do + it yourself. ProFTPd could also be unable to use the resulting + configuration, and it would not restart after upgrading. --- proftpd-1.2.10.orig/debian/scripts/CVS/Root +++ proftpd-1.2.10/debian/scripts/CVS/Root @@ -0,0 +1 @@ +:ext:frankie@cvs.alioth.debian.org:/cvsroot/pkg-proftpd --- proftpd-1.2.10.orig/debian/scripts/CVS/Repository +++ proftpd-1.2.10/debian/scripts/CVS/Repository @@ -0,0 +1 @@ +debian/scripts --- proftpd-1.2.10.orig/debian/scripts/CVS/Entries +++ proftpd-1.2.10/debian/scripts/CVS/Entries @@ -0,0 +1,4 @@ +/dbs-build.mk/1.1.1.1/Sat Apr 17 18:16:02 2004// +/dpkg-arch.mk/1.1.1.1/Sat Apr 17 18:16:02 2004// +/file2cat/1.1.1.1/Sat Apr 17 18:16:02 2004// +D --- proftpd-1.2.10.orig/debian/scripts/dbs-build.mk +++ proftpd-1.2.10/debian/scripts/dbs-build.mk @@ -0,0 +1,87 @@ +#!/usr/bin/make -f +# Separate tarball/patch build system by Adam Heath +# Modified by Ben Collins + +SHELL := /bin/bash -e +SOURCE_DIR := build-tree +STAMP_DIR := stampdir +PATCH_DIR := debian/patches + +patched := $(STAMP_DIR)/patch +unpacked := $(STAMP_DIR)/unpack + +ifdef TAR_DIR + BUILD_TREE := $(SOURCE_DIR)/$(TAR_DIR) +else + BUILD_TREE := $(SOURCE_DIR) +endif + + +setup: $(dh_mak_deps) + dh_testdir + @-up-scripts + $(MAKE) -f debian/rules $(unpacked) $(patched) + +$(patched)/: $(STAMP_DIR)/created $(unpacked) + test -d $(STAMP_DIR)/patches || mkdir -p $(STAMP_DIR)/patches + @if [ -d "$(PATCH_DIR)" ]; then \ + mkdir -p $(STAMP_DIR)/log/patches; \ + for f in `(cd $(PATCH_DIR); find -type f ! -name 'chk-*' ! -path "./CVS/*") | sort | \ + sed s,'\./',,g`; do \ + stampfile=$(STAMP_DIR)/patches/$$f; \ + log=$(STAMP_DIR)/log/patches/$$f; \ + if [ ! -e $$stampfile ]; then \ + echo -n "Applying patch $(PATCH_DIR)/$$f ... "; \ + if $(SHELL) debian/scripts/file2cat $(PATCH_DIR)/$$f | \ + (cd $(BUILD_TREE);patch -p1 --no-backup-if-mismatch) > $$log 2>&1; then \ + echo successful.; \ + touch $$stampfile; \ + else \ + echo "failed! (check $$log for reason)"; \ + exit 1; \ + fi; \ + else \ + echo Already applied $(PATCH_DIR)/$$f.; \ + fi; \ + done; \ + fi + touch $@ + +$(unpacked): $(STAMP_DIR)/created + mkdir -p $(STAMP_DIR)/sources $(SOURCE_DIR) $(STAMP_DIR)/log/sources + @for f in `find upstream/tarballs -type f -maxdepth 1 -name \*.tgz -o -name \*.tar.gz -o \ + -name \*.tar.bz -o -name \*.tar.bz2 | sort | sed s,'\./',,g`; do \ + stampfile=$(STAMP_DIR)/sources/`basename $$f`; \ + log=$(STAMP_DIR)/log/sources/`basename $$f`; \ + if [ ! -e $$stampfile ]; then \ + echo -n "Extracting source $$f ... "; \ + if $(SHELL) debian/scripts/file2cat $$f | \ + (cd $(SOURCE_DIR); tar xv) > $$log 2>&1; then \ + echo successful.; \ + touch $$stampfile; \ + else \ + echo failed!; \ + exit 1; \ + fi; \ + else \ + echo Already unpacked $$f.; \ + fi; \ + done + touch $@ + +make_patch: + mv $(BUILD_TREE) $(BUILD_TREE).new + rm -rf $(STAMP_DIR) + $(MAKE) -f debian/rules $(unpacked) $(patched) +ifndef TAR_DIR + diff -urN $(BUILD_TREE) $(BUILD_TREE).new > new.diff +else + (cd $(SOURCE_DIR) && diff -urN $(TAR_DIR) $(TAR_DIR).new || true) > new.diff +endif + rm -rf $(BUILD_TREE) + mv $(BUILD_TREE).new $(BUILD_TREE) + @echo; ls -l new.diff + +$(STAMP_DIR)/created: + test -d $(STAMP_DIR) || mkdir $(STAMP_DIR) + touch $(STAMP_DIR)/created --- proftpd-1.2.10.orig/debian/scripts/file2cat +++ proftpd-1.2.10/debian/scripts/file2cat @@ -0,0 +1,14 @@ +#!/bin/sh + +if [ "$1" = "" ]; then + echo "Usage: file2cat " + exit 1 +fi + +case "$1" in + *.gz|*.Z|*.tgz) cmd=zcat;; + *.bz|*.bz2) cmd=bzcat;; + *.uue) cmd="uudecode -o -";; + *) cmd=cat;; +esac +$cmd $1 --- proftpd-1.2.10.orig/debian/scripts/dpkg-arch.mk +++ proftpd-1.2.10/debian/scripts/dpkg-arch.mk @@ -0,0 +1,7 @@ +# see dpkg-architecture(8) +DEB_BUILD_ARCH := $(shell dpkg-architecture -qDEB_BUILD_ARCH) +DEB_BUILD_GNU_CPU := $(shell dpkg-architecture -qDEB_BUILD_GNU_CPU) +DEB_BUILD_GNU_SYSTEM := $(shell dpkg-architecture -qDEB_BUILD_GNU_SYSTEM) +DEB_BUILD_GNU_TYPE := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +DEB_HOST_GNU_SYSTEM := $(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM) +DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) --- proftpd-1.2.10.orig/debian/proftpd.cron.monthly +++ proftpd-1.2.10/debian/proftpd.cron.monthly @@ -0,0 +1,11 @@ +#!/bin/sh +# +# cron script to rotate the proftpd server logfile, based on the +# wu-ftpd script by Peter Tobias . + +[ -x /usr/sbin/ftpstats ] || exit 0 + +cd /var/log +savelog -q -u root -g adm -m 640 -c 12 /var/log/xferreport +ftpstats -a -r -l 2 -d 2>/dev/null >/var/log/xferreport +savelog -q -u root -g adm -m 640 -c 7 /var/log/xferlog --- proftpd-1.2.10.orig/debian/proftpd.postrm +++ proftpd-1.2.10/debian/proftpd.postrm @@ -0,0 +1,9 @@ +#!/bin/sh -e + +if [ "$1" = "purge" -o "$1" = "remove" ] +then + update-inetd --disable ftp /dev/tty +fi + +#DEBHELPER# + --- proftpd-1.2.10.orig/debian/mod_mysql.texi +++ proftpd-1.2.10/debian/mod_mysql.texi @@ -0,0 +1,19 @@ +This module is contained in the mod_mysql.c file, and is not compiled in +by default. It provides the backend support to connect to MySQL +databases. + +@heading MySQL Database Directives + +@subheading @anchor{MySQLInfo} MySQLInfo + +@format +Syntax: MySQLInfo host user pass dbname +Default: none +Context: server config, virtual host +@end format + +Configures the MySQL database driver (the database may be remote). A +connection isn't made until use of a SQL feature requires it, after +which it may be held open for the lifetime of the FTP session +depending on the directives in use. Use @kbd{""} to specify a null +password. --- proftpd-1.2.10.orig/debian/ftpstats.8 +++ proftpd-1.2.10/debian/ftpstats.8 @@ -0,0 +1,101 @@ +.\" Copyright (C) 1999 Darren Benham +.\" +.\" This manual page is free software. It is distributed 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 manual page 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 manual page; if not, write to the Free Software +.\" Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +.\" USA +.\" +.TH FTPSTATS 8 "October 30, 2002" "Debian GNU/Linux" + +.SH NAME +ftpstats \- FTP Log summarizer +.SH SYNOPSIS +.B ftpstats +.RI [ options ] +.SH DESCRIPTION +.PP +Ftpstats dissects the defined ftp log and reports various +statistics as requested. +This manual page was written for the Debian GNU/Linux distribution +because the original program does not have a manual page. +.P +.SH OPTIONS +.P +.TP +.BR \-f " filename" +Use +.IR filename +rather than the default +.IR /var/log/xferlog +. +.TP +.BR \-r +Include real users. +.TP +.BR \-a +Include anonymous users. +.TP +.BR \-h +Include report on hourly traffic. +.TP +.BR \-d +Include report on domain traffic. +.TP +.BR \-t +Report on total traffic by section. +.TP +.BR \-i +Report on incoming traffic only (uploads). +.TP +.BR \-o +Report on outgoing traffic only (downloads). +.TP +.BR \-D "domain" +Report only on traffic from +.IR domain +. This option leads to problems with the local domain: e.g. test.com is +encountered under test and not recognized under com, -D com will give you only +stats about com excluding test.com! Use -A com for correct results. + +.TP +.BR \-A "address" +Report only on traffic from addresses whose end matches +.IR address +. e.g. -A test.domain.com will report on address ending with test.domain.com + +.TP +.BR \-l "depth" +Depth of path detail for sections + +.TP +.BR \-s "section" +Section to report on. e.g. -s /pub will report only on paths under /pub +.SH BUGS +No known bugs at this time. +If you discover any bugs, please report at http://bugs.proftpd.org/ +For help/support, try the ProFTPD mailing lists, detailed on +http://www.proftpd.org/lists.html +.br +.SH SEE ALSO +.BR proftpd (8), proftpd.conf (5), xferlog (5) +.SH AUTHORS +ProFTPD is written and maintained by a number of people, full credits +can be found on http://www.proftpd.org/credits.html +.br +.SH CREDITS +This manual page was written by +Francesco P. Lovergine and other Debian developers, +for the Debian GNU/Linux system (but may be used by others). +.br +Please use the most appropriate mailing list listed on +http://www.proftpd.org/lists.html for ftpstats related comments. --- proftpd-1.2.10.orig/debian/proftpd.postinst +++ proftpd-1.2.10/debian/proftpd.postinst @@ -0,0 +1,154 @@ +#!/bin/sh -e + +# summary of how this script can be called: +# * `configure' +# * `abort-upgrade' +# * `abort-remove' `in-favour' +# * `abort-deconfigure' `in-favour' +# `removing' +# +# for details, see /usr/share/doc/packaging-manual/ +# +# quoting from the policy: +# Any necessary prompting should almost always be confined to the +# post-installation script, and should be protected with a conditional +# so that unnecessary prompting doesn't happen if a package's +# installation fails and the `postinst' is called with `abort-upgrade', +# `abort-remove' or `abort-deconfigure'. + + +CONF="/etc/proftpd.conf" +CONF_NEW="/etc/proftpd.conf.proftpd-new" + +installftp() +{ + if ! grep -q "^ftp:" /etc/passwd + then + adduser --system ftp || true + if [ -f /usr/share/doc/proftpd/examples/welcome.msg -a -d ~ftp ] ; then + cp -p -v /usr/share/doc/proftpd/examples/welcome.msg ~ftp/welcome.msg.proftpd-new || true + do_update ~ftp/welcome.msg || true + fi + fi +} + +list_options() +{ + if [ -f $CONF_NEW ] ; then + sed -e "s/lsdefaultoptions/ListOptions/i" $CONF_NEW > $CONF_NEW.tmp + mv -f $CONF_NEW.tmp $CONF_NEW + fi +} + +tcpwin_options() +{ + if [ -f $CONF_NEW ] ; then + sed -e "s/tcpreceivewindow/SocketOptions rcvbuf/i" \ + -e "s/tcpsendwindow/SocketOptions sndbuf/i" \ + $CONF_NEW > $CONF_NEW.tmp + mv -f $CONF_NEW.tmp $CONF_NEW + fi +} + +scoreboard() +{ + if [ -f $CONF_NEW ] ; then + sed -e "s/\(scoreboardpath.*\)/#\n#ScoreboardPath is deprecated in 1.2.9, use ScoreboardFile instead\n#\1\n#\n#ScoreboardFile\t\/var\/run\/proftpd.scoreboard\n#/i" \ + $CONF_NEW > $CONF_NEW.tmp + mv -f $CONF_NEW.tmp $CONF_NEW + fi +} + + +switch_on() +{ + if [ -f $CONF_NEW ] ; then + sed -e 's/^\(ServerType.*\)inetd/\1standalone/' $CONF_NEW >$CONF_NEW.tmp + mv -f $CONF_NEW.tmp $CONF_NEW + fi +} + +switch_off() +{ + if [ -f $CONF_NEW ] ; then + sed -e 's/^\(ServerType.*\)standalone/\1inetd/' $CONF_NEW >$CONF_NEW.tmp + mv -f $CONF_NEW.tmp $CONF_NEW + fi +} + +replace_file () { + file=$1 + if [ ! -f ${file} ] ; then + mv ${file}.proftpd-new ${file} + else + cp $file ${file}.proftpd-old + ucf --debconf-ok ${file}.proftpd-new $file + fi +} + +do_update () { + file=$1 + if diff -q ${file} ${file}.proftpd-new >/dev/null 2>&1; then + # Old file and new file are identical + rm -f ${file}.proftpd-new + else + replace_file $file + fi +} + +DONTSTART=0 + +. /usr/share/debconf/confmodule + +if [ "$1" = "configure" ]; then + + # use current configuration or generate a new one from scratch + if [ ! -f /etc/proftpd.conf ] ; then + cp /usr/share/doc/proftpd/examples/proftpd.conf $CONF_NEW + else + cp $CONF $CONF_NEW + fi + + update-inetd --group STANDARD --add 'ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/proftpd' /dev/null + if [ $DONTSTART -eq 0 ] ; then + set +e; /usr/sbin/proftpd -t >/dev/null 2>&1; set -e + if [ $? = 0 ]; then + invoke-rc.d proftpd start + else + echo "Cannot start proftpd, please check syntax of your configuration file $CONF" + fi + fi +fi + +#DEBHELPER# + --- proftpd-1.2.10.orig/debian/mod_pgsql.txt +++ proftpd-1.2.10/debian/mod_pgsql.txt @@ -0,0 +1,30 @@ +This module is contained in the mod_pgsql.c file, and is not compiled in +by default. It provides the backend support to connect to Postgresql +databases. + +Postgres Database Directives +============================ + +PostgresInfo +------------ + +Syntax: PostgresInfo host user pass dbname +Syntax: PostgresInfo host dbname +Default: none +Context: server config, virtual host + + Configures the Posgresql database driver (the database may be +remote). A connection isn't made until use of a SQL feature requires +it, after which it may be held open for the lifetime of the FTP session +depending on the directives in use. + +PostgresPort +------------ + +Syntax: PostgresPort [num] +Default: 5432 +Context: server config, virtual host + + Specifies which TCP/IP port to use for connecting. Default is 5432, +or UNIX socket for localhost. + --- proftpd-1.2.10.orig/debian/proftpd.prerm +++ proftpd-1.2.10/debian/proftpd.prerm @@ -0,0 +1,11 @@ +#! /bin/sh + +if [ -x "/usr/sbin/invoke-rc.d" ]; then + invoke-rc.d proftpd stop +else + if [ -x "/etc/init.d/proftpd" ]; then + /etc/init.d/proftpd stop + fi +fi + +#DEBHELPER# --- proftpd-1.2.10.orig/debian/mod_mysql.txt +++ proftpd-1.2.10/debian/mod_mysql.txt @@ -0,0 +1,19 @@ +This module is contained in the mod_mysql.c file, and is not compiled in +by default. It provides the backend support to connect to MySQL +databases. + +MySQL Database Directives +========================= + +MySQLInfo +--------- + +Syntax: MySQLInfo host user pass dbname +Default: none +Context: server config, virtual host + + Configures the MySQL database driver (the database may be remote). A +connection isn't made until use of a SQL feature requires it, after +which it may be held open for the lifetime of the FTP session depending +on the directives in use. Use `""' to specify a null password. + --- proftpd-1.2.10.orig/debian/basic.conf +++ proftpd-1.2.10/debian/basic.conf @@ -0,0 +1,103 @@ +# +# /etc/proftpd.conf -- This is a basic ProFTPD configuration file. +# To really apply changes reload proftpd after modifications. +# + +ServerName "Debian" +ServerType standalone +DeferWelcome off + +MultilineRFC2228 on +DefaultServer on +ShowSymlinks on + +TimeoutNoTransfer 600 +TimeoutStalled 600 +TimeoutIdle 1200 + +DisplayLogin welcome.msg +DisplayFirstChdir .message +ListOptions "-l" + +DenyFilter \*.*/ + +# Uncomment this if you are using NIS or LDAP to retrieve passwords: +#PersistentPasswd off + +# Uncomment this if you would use TLS module: +#TLSEngine on + +# Uncomment this if you would use quota module: +#Quotas on + +# Uncomment this if you would use ratio module: +#Ratios on + +# Port 21 is the standard FTP port. +Port 21 + +# To prevent DoS attacks, set the maximum number of child processes +# to 30. If you need to allow more than 30 concurrent connections +# at once, simply increase this value. Note that this ONLY works +# in standalone mode, in inetd mode you should use an inetd server +# that allows you to limit maximum number of processes per service +# (such as xinetd) +MaxInstances 30 + +# Set the user and group that the server normally runs at. +User nobody +Group nogroup + +# Umask 022 is a good standard umask to prevent new files and dirs +# (second parm) from being group and world writable. +Umask 022 022 +# Normally, we want files to be overwriteable. +AllowOverwrite on + +# Delay engine reduces impact of the so-called Timing Attack described in +# http://security.lss.hr/index.php?page=details&ID=LSS-2004-10-02 +# It is on by default. +#DelayEngine off + +# A basic anonymous configuration, no upload directories. + +# +# User ftp +# Group nogroup +# # We want clients to be able to login with "anonymous" as well as "ftp" +# UserAlias anonymous ftp +# # Cosmetic changes, all files belongs to ftp user +# DirFakeUser on ftp +# DirFakeGroup on ftp +# +# RequireValidShell off +# +# # Limit the maximum number of anonymous logins +# MaxClients 10 +# +# # We want 'welcome.msg' displayed at login, and '.message' displayed +# # in each newly chdired directory. +# DisplayLogin welcome.msg +# DisplayFirstChdir .message +# +# # Limit WRITE everywhere in the anonymous chroot +# +# +# DenyAll +# +# +# +# # Uncomment this if you're brave. +# # +# # # Umask 022 is a good standard umask to prevent new files and dirs +# # # (second parm) from being group and world writable. +# # Umask 022 022 +# # +# # DenyAll +# # +# # +# # AllowAll +# # +# # +# +# --- proftpd-1.2.10.orig/debian/proftpd.preinst +++ proftpd-1.2.10/debian/proftpd.preinst @@ -0,0 +1,34 @@ +#!/bin/sh -e + +# summary of how this script can be called: +# * `install' +# * `install' +# * `upgrade' +# * `abort-upgrade' +# + +if [ "$1" = "upgrade" ]; then + if [ -e /usr/sbin/invoke-rc.d ]; then + invoke-rc.d proftpd stop >/dev/null 2>&1 || true + else + /etc/init.d/proftpd stop >/dev/null 2>&1 || true + fi + + # Scoreboard file format changed in 1.2.9 + # Now stopping all inetd sessions and removing it to ensure + # a clean upgrade + if dpkg --compare-versions "$2" lt "1.2.9-1"; then + if [ `pgrep proftpd|wc -l` -ne 0 ]; then + pkill proftpd + sleep 2 + fi + rm -f /var/run/proftpd/proftpd.scoreboard + fi +fi + +exit 0 + +#DEBHELPER# + + + --- proftpd-1.2.10.orig/debian/ftpusers.5 +++ proftpd-1.2.10/debian/ftpusers.5 @@ -0,0 +1,42 @@ +.\" Copyright (c) 1994 Peter Tobias (tobias@server.et-inf.fho-emden.de), +.\" 2001 Ivo Timmermans +.\" This file may be distributed under the GNU General Public License. +.\" +.Dd April 19, 2001 +.Dt FTPUSERS 5 +.Os "Debian proftpd" +.Sh NAME +.Nm ftpusers +.Nd file which lists users who are not allowed to use ftp +.Sh DESCRIPTION +.Pa /etc/ftpusers +is used by +.Xr proftpd 8 ; +the file contains a list of users who are not allowed to use the +ftp command. For security reasons at least users like ``root'', ``bin'', +``uucp'' and ``news'' should be listed in this file. +Blank lines and lines beginning with `#' are ignored. +.Pp +Note: a lines with `#' in the +.Em middle +is +.Em not +a comment. Don't put `#' after a name to comment it; use another line, +or things will silently fail on you. +.Sh EXAMPLES +.Pa /etc/ftpusers +might contain the following entries: +.Bd -literal +# +# /etc/ftpusers +# +root +bin +uucp +news +.Ed +.Sh FILES +.Pa /etc/ftpusers +.Sh SEE ALSO +.Xr ftp 1 , +.Xr proftpd 8 --- proftpd-1.2.10.orig/debian/patches/CVS/Root +++ proftpd-1.2.10/debian/patches/CVS/Root @@ -0,0 +1 @@ +:ext:frankie@cvs.alioth.debian.org:/cvsroot/pkg-proftpd --- proftpd-1.2.10.orig/debian/patches/CVS/Repository +++ proftpd-1.2.10/debian/patches/CVS/Repository @@ -0,0 +1 @@ +debian/patches --- proftpd-1.2.10.orig/debian/patches/CVS/Entries +++ proftpd-1.2.10/debian/patches/CVS/Entries @@ -0,0 +1,19 @@ +/14.quotatab_modules.diff/1.4/Sat Apr 17 18:16:02 2004// +/01.contrib.mod_ldap.c.diff/1.14/Sat Aug 28 16:42:57 2004/-kb/ +/02.mod_pam.c.change.pam.name.diff/1.1/Sat Aug 28 16:42:57 2004/-kb/ +/03.mod_ldap.c.diff/1.1/Sat Aug 28 16:42:57 2004/-kb/ +/04.mod_sql_postgres.c.diff/1.1/Sat Aug 28 16:42:57 2004/-kb/ +/06.man.diff/1.1/Sat Aug 28 16:42:57 2004/-kb/ +/07.autoconf.diff/1.2/Sat Aug 28 16:42:58 2004/-kb/ +/08.misc.diff/1.1/Sat Aug 28 16:42:59 2004/-kb/ +/09.mod_xfer.c.diff/1.1/Sat Aug 28 16:42:59 2004/-kb/ +/10.mod_unixpw.c.ldap.fix.diff/1.1/Sat Aug 28 16:42:59 2004/-kb/ +/11.mod_auth.c.shell.null.segfault.diff/1.1/Sat Aug 28 16:42:59 2004/-kb/ +/12.ftpasswd.cracklib.location.diff/1.1/Sat Aug 28 16:42:59 2004/-kb/ +/13.mod_sql_mysql.c.diff/1.1/Sat Aug 28 16:42:59 2004/-kb/ +/15.mod_quotatab_sql.c.diff/1.1/Sat Aug 28 16:43:00 2004/-kb/ +/16.dirtree.c.diff/1.1/Thu Aug 26 18:30:21 2004// +/17.netio.c.diff/1.1/Sat Aug 28 16:43:00 2004/-kb/ +/18.mod_auth_file.c.diff/1.1/Thu Aug 26 18:30:21 2004// +/19.main.c.ipv6.diff/1.1/Thu Aug 26 18:30:21 2004// +D --- proftpd-1.2.10.orig/debian/patches/29.misc-sql.diff +++ proftpd-1.2.10/debian/patches/29.misc-sql.diff @@ -0,0 +1,237 @@ +diff -ruN proftpd-1.2.10-old/contrib/mod_sql.c proftpd-1.2.10/contrib/mod_sql.c +--- proftpd-1.2.10-old/contrib/mod_sql.c 2004-08-03 02:44:31.000000000 +0200 ++++ proftpd-1.2.10/contrib/mod_sql.c 2005-08-31 11:23:13.000000000 +0200 +@@ -111,6 +111,8 @@ + MODRET sql_lookup(cmd_rec *); + + pool *sql_pool; ++static pr_netaddr_t *sql_local_addr = NULL; ++static pr_netaddr_t *sql_remote_addr = NULL; + + /* + * cache typedefs +@@ -1447,7 +1449,7 @@ + + case 'a': + argp = arg; +- sstrncpy(argp, pr_netaddr_get_ipstr(session.c->remote_addr), sizeof(arg)); ++ sstrncpy(argp, pr_netaddr_get_ipstr(sql_remote_addr), sizeof(arg)); + break; + + case 'b': +@@ -1576,7 +1578,7 @@ + + case 'L': + argp = arg; +- sstrncpy(argp, pr_netaddr_get_ipstr(session.c->local_addr), sizeof(arg)); ++ sstrncpy(argp, pr_netaddr_get_ipstr(sql_local_addr), sizeof(arg)); + break; + + case 'l': +@@ -3898,7 +3900,9 @@ + *****************************************************************/ + + static void sql_exit_cb(void) { +- config_rec *c = NULL; ++ config_rec *c; ++ cmd_rec *cmd; ++ modret_t *mr; + + /* Note: most of this code hacked out of log_master(), which + * brings to mind the idea of reorganizing the code a little, so +@@ -3944,6 +3948,10 @@ + c = find_config_next(c, c->next, CONF_PARAM, "SQLLog_EXIT", FALSE); + } + ++ cmd = _sql_make_cmd(session.pool, 0); ++ mr = _sql_dispatch(cmd, "sql_exit"); ++ _sql_check_response(mr); ++ + sql_closelog(); + return; + } +@@ -4287,6 +4295,10 @@ + sql_log(DEBUG_INFO, "sql_bcred : %s", cmap.sql_bcred); + } + ++ /* Make a copy of netaddrs for later. */ ++ sql_local_addr = pr_netaddr_dup(sql_pool, session.c->local_addr); ++ sql_remote_addr = pr_netaddr_dup(sql_pool, session.c->remote_addr); ++ + sql_log(DEBUG_FUNC, "%s", "<<< sql_getconf"); + + /* get rid of the temp pool */ +diff -ruN proftpd-1.2.10-old/contrib/mod_sql_mysql.c proftpd-1.2.10/contrib/mod_sql_mysql.c +--- proftpd-1.2.10-old/contrib/mod_sql_mysql.c 2005-08-31 11:15:44.000000000 +0200 ++++ proftpd-1.2.10/contrib/mod_sql_mysql.c 2005-08-31 11:15:44.000000000 +0200 +@@ -88,9 +88,6 @@ + * connection policy, connections may be closed at any time and may need + * to be reopened for any call. + * +- * All backends should register an event handler for "core.exit", to close +- * any open connections. See the function sql_mysql_exit_ev() as an example. +- * + * CONNECTION TIMERS + * + * Backends are required to handle connection timers; when a connection is +@@ -288,25 +285,6 @@ + return 0; + } + +-/* sql_mysql_exit_ev: walks the connection cache and closes every +- * open connection, resetting their connection counts to 0. +- */ +-static void sql_mysql_exit_ev(const void *event_data, void *user_data) { +- register unsigned int i = 0; +- +- for (i = 0; i < conn_cache->nelts; i++) { +- conn_entry_t *entry = ((conn_entry_t **) conn_cache->elts)[i]; +- +- if (entry->connections > 0) { +- cmd_rec *cmd = _sql_make_cmd(conn_pool, 2, entry->name, "1"); +- cmd_close(cmd); +- SQL_FREE_CMD(cmd); +- } +- } +- +- return; +-} +- + /* + * _build_error: constructs a modret_t filled with error information; + * mod_sql_mysql calls this function and returns the resulting mod_ret_t +@@ -682,6 +660,35 @@ + } + + /* ++ * cmd_exit: closes all open connections. ++ * ++ * Inputs: ++ * None ++ * ++ * Returns: ++ * A simple non-error modret_t. ++ */ ++static modret_t *cmd_exit(cmd_rec *cmd) { ++ register unsigned int i = 0; ++ ++ sql_log(DEBUG_FUNC, "%s", "entering \tmysql cmd_exit"); ++ ++ for (i = 0; i < conn_cache->nelts; i++) { ++ conn_entry_t *entry = ((conn_entry_t **) conn_cache->elts)[i]; ++ ++ if (entry->connections > 0) { ++ cmd_rec *cmd = _sql_make_cmd(conn_pool, 2, entry->name, "1"); ++ cmd_close(cmd); ++ destroy_pool(cmd->pool); ++ } ++ } ++ ++ sql_log(DEBUG_FUNC, "%s", "exiting \tmysql cmd_exit"); ++ ++ return HANDLED(cmd); ++} ++ ++/* + * cmd_select: executes a SELECT query. properly constructing the query + * based on the inputs. See mod_sql.h for the definition of the _sql_data + * structure which is used to return the result data. +@@ -1343,6 +1350,7 @@ + { CMD, "sql_open", G_NONE, cmd_open, FALSE, FALSE }, + { CMD, "sql_close", G_NONE, cmd_close, FALSE, FALSE }, + { CMD, "sql_defineconnection", G_NONE, cmd_defineconnection, FALSE, FALSE }, ++ { CMD, "sql_exit", G_NONE, cmd_exit, FALSE, FALSE }, + { CMD, "sql_select", G_NONE, cmd_select, FALSE, FALSE }, + { CMD, "sql_insert", G_NONE, cmd_insert, FALSE, FALSE }, + { CMD, "sql_update", G_NONE, cmd_update, FALSE, FALSE }, +@@ -1364,8 +1372,6 @@ + conn_cache = make_array(make_sub_pool(session.pool), DEF_CONN_POOL_SIZE, + sizeof(conn_entry_t)); + +- pr_event_register(&sql_mysql_module, "core.exit", sql_mysql_exit_ev, NULL); +- + return 0; + } + +diff -ruN proftpd-1.2.10-old/contrib/mod_sql_postgres.c proftpd-1.2.10/contrib/mod_sql_postgres.c +--- proftpd-1.2.10-old/contrib/mod_sql_postgres.c 2004-05-08 05:21:46.000000000 +0200 ++++ proftpd-1.2.10/contrib/mod_sql_postgres.c 2005-08-31 11:15:44.000000000 +0200 +@@ -190,25 +190,6 @@ + return 0; + } + +-/* sql_postgres_exit_ev: walks the connection cache and closes every +- * open connection, resetting their connection counts to 0. +- */ +-static void sql_postgres_exit_ev(const void *event_data, void *user_data) { +- register unsigned int i = 0; +- +- for (i = 0; i < conn_cache->nelts; i++) { +- conn_entry_t *entry = ((conn_entry_t **) conn_cache->elts)[i]; +- +- if (entry->connections > 0) { +- cmd_rec *cmd = _sql_make_cmd(conn_pool, 2, entry->name, "1"); +- cmd_close(cmd); +- SQL_FREE_CMD(cmd); +- } +- } +- +- return; +-} +- + /* + * _build_error: constructs a modret_t filled with error information; + * mod_sql_postgres calls this function and returns the resulting mod_ret_t +@@ -552,6 +533,35 @@ + } + + /* ++ * cmd_exit: closes all open connections. ++ * ++ * Inputs: ++ * None ++ * ++ * Returns: ++ * A simple non-error modret_t. ++ */ ++static modret_t *cmd_exit(cmd_rec *cmd) { ++ register unsigned int i = 0; ++ ++ sql_log(DEBUG_FUNC, "%s", "entering \tpostgres cmd_exit"); ++ ++ for (i = 0; i < conn_cache->nelts; i++) { ++ conn_entry_t *entry = ((conn_entry_t **) conn_cache->elts)[i]; ++ ++ if (entry->connections > 0) { ++ cmd_rec *cmd = _sql_make_cmd(conn_pool, 2, entry->name, "1"); ++ cmd_close(cmd); ++ destroy_pool(cmd->pool); ++ } ++ } ++ ++ sql_log(DEBUG_FUNC, "%s", "exiting \tpostgres cmd_exit"); ++ ++ return HANDLED(cmd); ++} ++ ++/* + * cmd_select: executes a SELECT query. properly constructing the query + * based on the inputs. See mod_sql.h for the definition of the _sql_data + * structure which is used to return the result data. +@@ -1211,6 +1221,7 @@ + { CMD, "sql_open", G_NONE, cmd_open, FALSE, FALSE }, + { CMD, "sql_close", G_NONE, cmd_close, FALSE, FALSE }, + { CMD, "sql_defineconnection", G_NONE, cmd_defineconnection, FALSE, FALSE }, ++ { CMD, "sql_exit", G_NONE, cmd_exit, FALSE, FALSE }, + { CMD, "sql_select", G_NONE, cmd_select, FALSE, FALSE }, + { CMD, "sql_insert", G_NONE, cmd_insert, FALSE, FALSE }, + { CMD, "sql_update", G_NONE, cmd_update, FALSE, FALSE }, +@@ -1232,8 +1243,6 @@ + conn_cache = make_array(make_sub_pool(session.pool), DEF_CONN_POOL_SIZE, + sizeof(conn_entry_t)); + +- pr_event_register(&sql_postgres_module, "core.exit", sql_postgres_exit_ev, +- NULL); + return 0; + } + --- proftpd-1.2.10.orig/debian/patches/12.ftpasswd.cracklib.location.diff +++ proftpd-1.2.10/debian/patches/12.ftpasswd.cracklib.location.diff @@ -0,0 +1,13 @@ +diff -ruN proftpd-1.2.10-old/contrib/ftpasswd proftpd-1.2.10/contrib/ftpasswd +--- proftpd-1.2.10-old/contrib/ftpasswd 2004-03-24 22:55:44.000000000 +0100 ++++ proftpd-1.2.10/contrib/ftpasswd 2004-09-14 23:25:32.000000000 +0200 +@@ -37,7 +37,8 @@ + my $default_passwd_file = "./ftpd.passwd"; + my $default_group_file = "./ftpd.group"; + my $shell_file = "/etc/shells"; +-my $default_cracklib_dict = "/usr/lib/cracklib_dict"; ++#my $default_cracklib_dict = "/usr/lib/cracklib_dict"; ++my $default_cracklib_dict = "/var/cache/cracklib"; + my $cracklib_dict; + my $output_file; + my $version = "1.1.3"; --- proftpd-1.2.10.orig/debian/patches/32.mod_tls.c.diff +++ proftpd-1.2.10/debian/patches/32.mod_tls.c.diff @@ -0,0 +1,15 @@ +diff -ruN proftpd-1.2.10-old/contrib/mod_tls.c proftpd-1.2.10/contrib/mod_tls.c +--- proftpd-1.2.10-old/contrib/mod_tls.c 2004-07-01 03:06:09.000000000 +0200 ++++ proftpd-1.2.10/contrib/mod_tls.c 2005-11-16 11:31:09.000000000 +0100 +@@ -567,7 +567,11 @@ + } + } + ++#if OPENSSL_VERSION_NUMBER < 0x00908001 + PEMerr(PEM_F_DEF_CALLBACK, PEM_R_PROBLEMS_GETTING_PASSWORD); ++#else ++ PEMerr(PEM_F_PEM_DEF_CALLBACK, PEM_R_PROBLEMS_GETTING_PASSWORD); ++#endif + pr_memscrub(buf, buflen); + return -1; + } --- proftpd-1.2.10.orig/debian/patches/08.misc.diff +++ proftpd-1.2.10/debian/patches/08.misc.diff @@ -0,0 +1,2038 @@ +diff -ruN proftpd-1.2.10-old/contrib/xferstats.holger-preiss proftpd-1.2.10/contrib/xferstats.holger-preiss +--- proftpd-1.2.10-old/contrib/xferstats.holger-preiss 2002-05-30 18:22:46.000000000 +0200 ++++ proftpd-1.2.10/contrib/xferstats.holger-preiss 2004-09-14 23:22:09.000000000 +0200 +@@ -250,14 +250,14 @@ + + Total Transfers from each Archive Section (By bytes) + +- ---- Percent Of ---- +- Archive Section Files Sent Bytes Sent Files Sent Bytes Sent +-------------------------- ---------- ----------- ---------- ---------- ++ ---- Percent Of ---- ++ Archive Section Files Sent Bytes Sent Files Sent Bytes Sent ++------------------------- ---------- ------------- ---------- ---------- + . + + format line2 = +-@<<<<<<<<<<<<<<<<<<<<<<<< @>>>>>>>>> @>>>>>>>>>> @>>>>>>> @>>>>>>> +-$section, $files, $bytes, $pctfiles, $pctbytes ++@<<<<<<<<<<<<<<<<<<<<<<<< @>>>>>>>>> @>>>>>>>>>>>> @>>>>>>> @>>>>>>> ++$section, $files, $bytes, $pctfiles, $pctbytes + . + + $| = 1; +diff -ruN proftpd-1.2.10-old/doc/draft-murray-auth-ftp-ssl-06.txt proftpd-1.2.10/doc/draft-murray-auth-ftp-ssl-06.txt +--- proftpd-1.2.10-old/doc/draft-murray-auth-ftp-ssl-06.txt 1970-01-01 01:00:00.000000000 +0100 ++++ proftpd-1.2.10/doc/draft-murray-auth-ftp-ssl-06.txt 2004-09-14 23:22:09.000000000 +0200 +@@ -0,0 +1,1920 @@ ++ ++ ++ ++ ++ ++ ++ Paul Ford-Hutchinson ++ IBM UK Ltd ++ Martin Carpenter ++ Verisign Ltd ++ Tim Hudson ++INTERNET-DRAFT (draft) RSA Australia Ltd ++ Eric Murray ++ Wave Systems Inc ++ Volker Wiegand ++ SuSE Linux ++ ++ 18th September, 2000 ++This document expires on 17th March, 2001 ++ ++ ++ Securing FTP with TLS ++ ++ ++Status of this Memo ++ ++ This document is an Internet-Draft and is in full conformance with ++ all provisions of Section 10 of RFC2026. ++ ++ Internet-Drafts are working documents of the Internet Engineering ++ Task Force (IETF), its areas, and its working groups. Note that ++ other groups may also distribute working documents as Internet- ++ Drafts. ++ ++ Internet-Drafts are draft documents valid for a maximum of six months ++ and may be updated, replaced, or obsoleted by other documents at any ++ time. It is inappropriate to use Internet-Drafts as reference ++ material or to cite them other than as "work in progress." ++ ++ The list of current Internet-Drafts can be accessed at ++ http://www.ietf.org/1id-abstracts.txt ++ ++ The list of Internet-Draft Shadow Directories can be accessed at ++ http://www.ietf.org/shadow.html ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 1] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++Index ++ 1. .......... Abstract ++ 2. .......... Introduction ++ 3. .......... Audience ++ 4. .......... Session negotiation on the control port ++ 5. .......... Response to FEAT command ++ 6. .......... Data Connection Behaviour ++ 7. .......... Mechanisms for the AUTH Command ++ 8. .......... SASL Considerations ++ 9. .......... Data Connection Security ++ 10. ......... A discussion of negotiation behaviour ++ 11. ......... Who negotiates what, where and how ++ 12. ......... Timing Diagrams ++ 13. ......... Implications of [FTP-EXT] ++ 14. ......... Discussion of the 'REIN' command ++ 15. ......... Security Considerations ++ 16. ......... IANA Considerations ++ 17. ......... Network Management ++ 18. ......... Internationalization ++ 19. ......... Scalability & Limits ++ 20. ......... Applicability ++ 21. ......... Acknowledgements ++ 22. ......... References ++ 23. ......... Authors' Contact Addresses ++ Appendices ++ A. .......... Summary of [RFC-2246] ++ B. .......... Summary of [RFC-2228] ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 2] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++1. Abstract ++ ++ This document describes a mechanism that can be used by FTP clients ++ and servers to implement security and authentication using the TLS ++ protocol defined by [RFC-2246] and the extensions to the FTP protocol ++ defined by [RFC-2228]. It describes the subset of the extensions ++ that are required and the parameters to be used; discusses some of ++ the policy issues that clients and servers will need to take; ++ considers some of the implications of those policies and discusses ++ some expected behaviours of implementations to allow interoperation. ++ This document is intended to provide TLS support for FTP in a similar ++ way to that provided for SMTP in [RFC-2487]. ++ ++ TLS is not the only mechanism for securing file transfer, however it ++ does offer some of the following positive attributes:- ++ ++ - Flexible security levels. TLS can support privacy, integrity, ++ authentication or some combination of all of these. This allows ++ clients and servers to dynamically, during a session, decide on ++ the level of security required for a particular data transfer, ++ ++ - It is possible to use X.509 certificates to authenticate client ++ users and not just client hosts. ++ ++ - Formalised public key management. By use of X.509 public ++ certificates during the authentication phase, certificate ++ management can be built into a central function. Whilst this may ++ not be desirable for all uses of secured file transfer, it offers ++ advantages in certain structured environments such as access to ++ corporate data sources. ++ ++ - Co-existence and interoperation with authentication mechanisms ++ that are already in place for the HTTPS protocol. This allows web ++ browsers to incorporate secure file transfer using the same ++ infrastructure that has been set up to allow secure web browsing. ++ ++ The TLS protocol is a development of the Netscape Communication ++ Corporation's SSL protocol and this document can be used to allow the ++ FTP protocol to be used with either SSL or TLS. The actual protocol ++ used will be decided by the negotiation of the protected session by ++ the TLS/SSL layer. ++ ++ Note that this specification is in accordance with the FTP RFC ++ [RFC-959] and relies on the TLS protocol [RFC-2246] and the FTP ++ security extensions [RFC-2228]. ++ ++ ++ ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 3] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++2. Introduction ++ ++ This document is an attempt to describe how three other documents ++ should combined to provide a useful, interoperable, secure file ++ transfer protocol. Those documents are:- ++ ++ ++ RFC 959 [RFC-959] ++ ++ The description of the Internet File Transfer Protocol ++ ++ RFC 2246 [RFC-2246] ++ ++ The description of the Transport Layer Security protocol ++ (developed from the Netscape Secure Sockets Layer (SSL) ++ protocol version 3.0). ++ ++ RFC 2228 [RFC-2228] ++ ++ Extensions to the FTP protocol to allow negotiation of security ++ mechanisms to allow authentication, privacy and message ++ integrity. ++ ++ The File Transfer Protocol (FTP) currently defined in [RFC-959] and ++ in place on the Internet is an excellent mechanism for exchanging ++ files. The security extensions to FTP in [RFC-2228] offer a ++ comprehensive set of commands and responses that can be used to add ++ authentication, integrity and privacy to the FTP protocol. The TLS ++ protocol is a popular (due to its wholesale adoption in the HTTP ++ environment) mechanism for generally securing a socket connection. ++ There are many ways in which these three protocols can be combined ++ which would ensure that interoperation is impossible. This document ++ describes one method by which FTP can operate securely in such a way ++ as to provide both flexibility and interoperation. This necessitates ++ a brief description of the actual negotiation mechanism (if used); a ++ much more detailed description of the policies and practices that ++ would be required and a discussion of the expected behaviours of ++ clients and servers to allow either party to impose their security ++ requirements on the FTP session. ++ ++ ++3. Audience ++ ++ This document is aimed at developers who wish to use TLS as a ++ security mechanism to secure FTP clients and/or servers. ++ ++ ++4. Session negotiation on the control port ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 4] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++ 4.1 Negotiated Session Security ++ ++ In this scenario, the server listens on the normal FTP control ++ port {FTP-PORT} and the session initiation is not secured at all. ++ Once the client wishes to secure the session, the AUTH command is ++ sent and the server may then allow TLS negotiation to take place. ++ ++ 4.1.1 Client wants a secured session ++ ++ If a client wishes to attempt to secure a session then it ++ should, in accordance with [RFC-2228] send the AUTH command with ++ the parameter requesting TLS or SSL {TLS-PARM}. ++ ++ ++ The client then needs to behave according to its policies ++ depending on the response received from the server and also the ++ result of the TLS negotiation. i.e. A client which receives an ++ 'AUTH' rejection may choose to continue with the session ++ unprotected if it so desires. ++ ++ 4.1.2 Server wants a secured session ++ ++ The FTP protocol does not allow a server to directly dictate ++ client behaviour, however the same effect can be achieved by ++ refusing to accept certain FTP commands until the session is ++ secured to an acceptable level to the server. ++ ++ 4.2 Implicit Session Security ++ ++ In this scenario, the server listens on a distinct port {FTP- ++ TLSPORT} to the normal unsecured FTP server. Upon connection, the ++ client is expected to start the TLS negotiation. If the ++ negotiation fails or succeeds at an unacceptable level of security ++ then it will be a client and/or server policy decision to ++ disconnect the session. ++ ++5. Response to the FEAT command ++ ++ The FEAT command (introduced in [RFC-2389]) allows servers with ++ additional features to advertise these to a client by responding to ++ the FEAT command. If a server supports the 'FEAT' command then it ++ MUST advertise supported 'AUTH', 'PBSZ' and 'PROT' commands in the ++ reply as described in section 3.2 of [RFC-2389]. Additionally, the ++ 'AUTH' command should have a reply that identifies 'TLS' as one of ++ the possible parameters to 'AUTH'. It is not necessary to identify ++ the 'SSL', 'TLS-P' or 'TLS-C' parameters separately. ++ ++ Example reply (in same style is [RFC-2389]) ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 5] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++ C> FEAT ++ S> 211-Extensions supported ++ S> AUTH TLS ++ S> PBSZ ++ S> PROT ++ S> 211 END ++ ++ ++6. Data Connection Behaviour ++ ++ The Data Connection in the FTP model can be used in one of three ++ ways. (Note: these descriptions are not necessarily placed in exact ++ chronological order, but do describe the steps required. - See ++ diagrams later for clarification) ++ ++ i) Classic FTP client/server data exchange ++ ++ - The client obtains a port, sends the port number to the ++ server, the server connects to the client. The client issues a ++ send or receive request to the server on the control connection ++ and the data transfer commences on the data connection. ++ ++ ii) Firewall-Friendly client/server data exchange (as discussed ++ in [RFC-1579]) using the PASV command to reverse the direction ++ of the data connection. ++ ++ - The client requests that the server open a port, the server ++ obtains a port and returns the address and port number to the ++ client. The client connects to the server on this port. The ++ client issues a send or receive request on the control ++ connection and the data transfer commences on the data ++ connection. ++ ++ iii) Client initiated server/server data exchange (proxy or ++ PASV connections) ++ ++ - The client requests that server A opens a port, server A ++ obtains a port and returns it to the client. The client sends ++ this port number to server B. Server B connects to server A. ++ The client sends a send or receive request to server A and the ++ complement to server B and the data transfer commences. In ++ this model server A is the proxy or PASV host and is a client ++ for the Data Connection to server B. ++ ++ For i) and ii) the FTP client will be the TLS client and the FTP ++ server will be the TLS server. ++ ++ That is to say, it does not matter which side initiates the ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 6] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++ connection with a connect() call or which side reacts to the ++ connection via the accept() call, the FTP client as defined in ++ [RFC-959] is always the TLS client as defined in [RFC-2246]. ++ ++ In scenario iii) there is a problem in that neither server A nor ++ server B is the TLS client given the fact that an FTP server must act ++ as a TLS server for Firewall-Friendly FTP [RFC-1579]. Thus this is ++ explicitly excluded in the security extensions document [RFC-2228], ++ and in this document. ++ ++ ++ ++7. Mechanisms for the AUTH Command ++ ++ The AUTH command takes a single parameter to define the security ++ mechanism to be negotiated. As the SSL/TLS protocols self-negotiate ++ their levels there is no need to distinguish SSL vs TLS in the ++ application layer. The proposed mechanism name for negotiating ++ SSL/TLS will be the character string 'TLS'. This will allow the ++ client and server to negotiate SSL or TLS on the control connection ++ without altering the protection of the data channel. To protect the ++ data channel as well, the PBSZ, PROT command sequence should be used. ++ We call this "Explicit Data Channel Protection". ++ ++ However, there are clients and servers that exist today which use the ++ string 'SSL' to indicate that negotiation should take place on the ++ control connection and that the data connection should be implicitly ++ protected (i.e. the PBSZ 0, PROT P command sequence is not required ++ but the client and server will protect the data channel as if it ++ had). This is "Implicit Data Channel Protection" and is included ++ primarily for backward compatibility. ++ ++ To allow for streamlining of the negotiation, whilst allowing the ++ 'SSL' string to sink peacefully into disuse, the strings 'TLS-P' and ++ 'TLS-C' will also be defined. 'TLS-C' will be a synonym for 'TLS' ++ and 'TLS-P' a synonym for 'SSL'. Thus we allow for strict compliance ++ with [RFC-2228] by use of 'TLS' or 'TLS-C' and a quicker (2 less ++ commands) and perhaps more sensible option 'TLS-P' which will ++ implicitly secure the data connection at the same time as securing ++ the control connection. ++ ++ Note: Regardless of the manner in which the data connection is ++ secured (either implicitly by use of 'TLS-P', 'SSL' or connection to ++ a well-known port for FTP protocol over TLS, or explicitly by use of ++ the PBSZ/PROT sequence) the data connection state may be modified by ++ the client issuing the PROT command with the new desired level of ++ data channel protection and the server replying in the affirmative. ++ This data channel protection negotiation can happen at any point in ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 7] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++ the session (even straight after a PORT or PASV command) and as often ++ as is required. ++ ++ See also Section 16, "IANA Considerations". ++ ++ ++8. SASL Considerations ++ ++ SASL is the Simple Authentication Security Layer. Currently, its ++ definition can be found in the internet draft [RFC-2222]. This ++ document attempts to define the means by which a connection-based ++ protocol may identify and authenticate a client user to a server, ++ with additional optional negotiation of protection for the remainder ++ of that session. ++ ++ Unfortunately, the SASL paradigm does not fit in neatly with the FTP- ++ TLS protocol, mainly due to the fact that FTP uses two (independent) ++ connections, and under FTP-TLS these may be at different (and ++ possibly renegotiable) protection levels. Consequently, it is ++ envisaged that SASL will sit underneath TLS on the control ++ connection, and TLS (on both, either or neither connection) will be ++ used for privacy and integrity (with optional authentication from TLS ++ on either connection). ++ ++ ++9. Data Connection Security ++ ++ The Data Connection security level is determined by two factors. ++ ++ 1) The mechanism used to negotiate security on the control ++ connection will dictate the default (i.e. un-negotiated) security ++ level of the data port. ++ ++ 2) The PROT command, as specified in [RFC-2228] allows ++ client/server negotiation of the security level of the data ++ connection. Once a PROT command has been issued by the client and ++ accepted by the server by returning the '200' reply, the security ++ of subsequent data connections should be at that level until ++ another PROT command is issued and accepted; the session ends; or ++ the security of the session (via an AUTH command) is re- ++ negotiated). ++ ++ Data Connection Security Negotiation (the PROT command) ++ ++ Note: In line with [RFC-2228], there is no facility for securing ++ the Data connection with an insecure Control connection. ++ ++ The command defined in [RFC-2228] to negotiate data connection ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 8] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++ security is the PROT command. As defined there are four values ++ that the PROT command parameter can take. ++ ++ 'C' - Clear - neither Integrity nor Privacy ++ ++ 'S' - Safe - Integrity without Privacy ++ ++ 'E' - Confidential - Privacy without Integrity ++ ++ 'P' - Private - Integrity and Privacy ++ ++ As TLS negotiation encompasses (and exceeds) the ++ Safe/Confidential/Private distinction, only Private (use TLS) and ++ Clear (don't use TLS) are used. ++ ++ For TLS, the data connection can have one of two security levels. ++ ++ 1) Clear ++ ++ 2)Private ++ ++ With 'Clear' protection level, the data connection is made without ++ TLS at all. Thus the connection is unauthenticated and has no ++ privacy or integrity. This might be the desired behaviour for ++ servers sending file lists, pre-encrypted data or non-sensitive ++ data (e.g. for anonymous FTP servers). ++ ++ If the data connection security level is 'Private' then a TLS ++ negotiation must take place, to the satisfaction of the Client and ++ Server prior to any data being transmitted over the connection. ++ The TLS layers of the Client and Server will be responsible for ++ negotiating the exact TLS Cipher Suites that will be used (and ++ thus the eventual security of the connection). ++ ++ ++ In addition, the PBSZ (protection buffer size) command, as ++ detailed in [RFC-2228], is compulsory prior to any PROT command. ++ This document also defines a data channel encapsulation mechanism ++ for protected data buffers. For FTP-TLS, which appears to the FTP ++ application as a streaming protection mechanism, this is not ++ required. Thus the PBSZ command must still be issued, but must ++ have a parameter of '0' to indicate that no buffering is taking ++ place and the data connection should not be encapsulated. Note ++ that PBSZ 0 is not in the grammar of [RFC-2228], section 8.1, ++ where it is stated: ++ PBSZ ::= any ++ decimal integer from 1 to (2^32)-1 ++ However it should be noted that using a value of '0' to mean a ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 9] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++ streaming protocol is a reasonable use of '0' for that parameter ++ and is not ambiguous. ++ ++ Initial Data Connection Security ++ ++ For backward compatibility and ease of implementation the ++ following rules govern the initial expected protection setting of ++ the data connection. ++ ++ Connections accepted on the 'secure FTP' port (see ++ {FTP-TLSPORT}). ++ The initial state of the data connection will be 'Private' ++ (Although this does not follow [RFC-2228], this is how such ++ clients tend to work today). ++ ++ Connections accepted on the normal FTP port {FTP-PORT} with ++ TLS/SSL negotiated via an 'AUTH SSL' command. ++ The initial state of the data connection will be 'Private' ++ (Although this does not follow [RFC-2228], this is how such ++ clients tend to work today). ++ ++ Connections accepted on the normal FTP port {FTP-PORT} with ++ TLS/SSL negotiated via an 'AUTH TLS' command. ++ The initial state of the data connection will be 'Clear' ++ (this is the correct behaviour as indicated by [RFC-2228].) ++ ++ Note: Connections made on other ports may be still behave in one ++ of these ways, but that will be a local configuration issue. ++ ++ ++10. A Discussion of Negotiation Behaviour ++ ++ All these discussions assume that the negotiation has taken place by ++ issuing the AUTH command with a mechanism that does not implicitly ++ protect the data channel. Using a mechanism which does implicitly ++ secure the data channel or connecting to a port which is implicitly ++ protected will have similar issues. ++ ++ 10.1. The server's view of the control connection ++ ++ A server may have a policy statement somewhere that might: ++ ++ - Deny any command before TLS is negotiated (this might cause ++ problems if a SITE or some such command is required prior to ++ login) ++ - Deny certain commands before TLS is negotiated (such as USER, ++ PASS or ACCT) ++ - Deny insecure USER commands for certain users (e.g. not ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 10] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++ ftp/anonymous) ++ - Deny secure USER commands for certain users (e.g. ++ ftp/anonymous) ++ - Define the level(s) of TLS/SSL to be allowed ++ - Define the CipherSuites allowed to be used (perhaps on a per ++ host/domain/... basis) ++ - Allow TLS authentication as a substitute for local ++ authentication. ++ - Define data connection policies (see next section) ++ ++ Note: The TLS negotiation may not be completed satisfactorily ++ for the server, in which case it can be one of these states. ++ ++ The TLS negotiation failed completely ++ ++ In this case, the control connection should still be up in ++ unprotected mode and the server should issue an unprotected ++ '421' reply to end the session. ++ ++ The TLS negotiation completed successfully, but the server ++ decides that the session parameters are not acceptable (e.g. ++ Distinguished Name in the client certificate is not ++ permitted to use the server) ++ ++ In this case, the control connection should still be up in a ++ protected state, so the server can either continue to refuse to ++ service commands or issue a '421' reply and close the ++ connection. ++ ++ The TLS negotiation failed during the TLS handshake ++ ++ In this case, the control connection is in an unknown state and ++ the server should simply drop the control connection. ++ ++ Server code will be responsible for implementing the required ++ policies and ensuring that the client is prevented from ++ circumventing the chosen security by refusing to service those ++ commands that are against policy. ++ ++ 10.2. The server's view of the data connection ++ ++ The server can take one of four basic views of the data connection ++ ++ 1 - Don't allow encryption at all (in which case the PROT ++ command should not allow any value other than 'C' - if it is ++ allowed at all) ++ 2 - Allow the client to choose protection or not ++ 3 - Insist on data protection (in which case the PROT command ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 11] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++ must be issued prior to the first attempted data transfer) ++ 4 - Decide on one of the above three for each and every data ++ connection ++ ++ The server should only check the status of the data protection ++ level (for options 3 and 4 above) on the actual command that will ++ initiate the data transfer (and not on the PORT or PASV). The ++ following commands cause data connections to be opened and thus ++ may be rejected (before any 1xx) message due to an incorrect PROT ++ setting. ++ ++ ++ STOR ++ RETR ++ NLST ++ LIST ++ STOU ++ APPE ++ MLST (if [FTP-EXT] is implemented) ++ MLSD (if [FTP-EXT] is implemented) ++ ++ ++ The reply to indicate that the PROT setting is incorrect is ++ '521 data connection cannot be opened with this PROT setting' ++ If the protection level indicates that TLS is required, then it ++ should be negotiated once the data connection is made. Thus, the ++ '150' reply only states that the command can be used given the ++ current PROT level. Should the server not like the TLS ++ negotiation then it will close the data port immediately and ++ follow the '150' command with a '522' reply indicating that the ++ TLS negotiation failed or was unacceptable. (Note: this means ++ that the application can pass a standard list of CipherSuites to ++ the TLS layer for negotiation and review the one negotiated for ++ applicability in each instance). ++ ++ It is quite reasonable for the server to insist that the data ++ connection uses a TLS cached session. This might be a cache of a ++ previous data connection or of the control connection. If this is ++ the reason for the the refusal to allow the data transfer then the ++ '522' reply should indicate this. ++ Note: this has an important impact on client design, but allows ++ servers to minimise the cycles used during TLS negotiation by ++ refusing to perform a full negotiation with a previously ++ authenticated client. ++ ++ It should be noted that the TLS authentication of the server will ++ be authentication of the server host itself and not a user on the ++ server host. ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 12] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++ 10.3. The client's view of the control connection ++ ++ In most cases it is likely that the client will be using TLS ++ because the server would refuse to interact insecurely. To allow ++ for this, clients must be able to be flexible enough to manage the ++ securing of a session at the appropriate time and still allow the ++ user/server policies to dictate exactly when in the session the ++ security is negotiated. ++ ++ In the case where it is the client that is insisting on the ++ securing of the session, it will need to ensure that the ++ negotiations are all completed satisfactorily and will need to be ++ able to inform the user sensibly should the server not support, or ++ be prepared to use, the required security levels. ++ ++ Clients must be coded in such a manner as to allow the timing of ++ the AUTH, PBSZ and PROT commands to be flexible and dictated by ++ the server. It is quite reasonable for a server to refuse certain ++ commands prior to these commands, similarly it is quite possible ++ that a SITE or quoted command might be needed by a server prior to ++ the AUTH. A client must allow a user to override the timing of ++ these commands to suit a specific server. ++ For example, a client should not insist on sending the AUTH as the ++ first command in a session, nor should it insist on issuing a ++ PBSZ, PROT pair directly after the AUTH. This may well be the ++ default behaviour, but must be overridable by a user. ++ ++ Note: The TLS negotiation may not be completed satisfactorily for ++ the client, in which case it will be in one of these states: ++ ++ The TLS negotiation failed completely ++ ++ In this case, the control connection should still be up in ++ unprotected mode and the client should issue an unprotected ++ QUIT command to end the session. ++ ++ The TLS negotiation completed successfully, but the client ++ decides that the session parameters are not acceptable (e.g. ++ Distinguished Name in certificate is not the actual server ++ expected) ++ ++ In this case, the control connection should still be up in a ++ protected state, so the client should issue a protected QUIT ++ command to end the session. ++ ++ The TLS negotiation failed during the TLS handshake ++ ++ In this case, the control connection is in an unknown state ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 13] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++ and the client should simply drop the control connection. ++ ++ 10.4. The client's view of the data connection ++ ++ Client security policies ++ ++ Clients do not typically have 'policies' as such, instead they ++ rely on the user defining their actions and, to a certain extent, ++ are reactive to the server policy. Thus a client will need to ++ have commands that will allow the user to switch the protection ++ level of the data connection dynamically, however, there may be a ++ general 'policy' that attempts all LIST and NLST commands on a ++ Clear connection first (and automatically switches to Private if ++ it fails). In this case there would need to be a user command ++ available to ensure that a given data transfer was not attempted ++ on an insecure data connection. ++ ++ Clients also need to understand that the level of the PROT setting ++ is only checked for a particular data transfer after that transfer ++ has been requested. Thus a refusal by the server to accept a ++ particular data transfer should not be read by the client as a ++ refusal to accept that data protection level in toto, as not only ++ may other data transfers be acceptable at that protection level, ++ but it is entirely possible that the same transfer may be accepted ++ at the same protection level at a later point in the session. ++ ++ It should be noted that the TLS authentication of the client ++ should be authentication of a user on the client host and not the ++ client host itself. ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 14] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++11. Who negotiates what, where and how ++ ++ 11.1. Do we protect at all ? ++ ++ Client issues AUTH , server accepts or rejects. ++ If server needs AUTH, then it refuses to accept certain commands ++ until it gets a successfully protected session. ++ ++ 11.2. What level of protection do we use on the Control connection ? ++ ++ Decided entirely by the TLS CipherSuite negotiation. ++ ++ 11.3. Do we protect data connections in general ? ++ ++ Client issues PROT command, server accepts or rejects. ++ ++ ++ 11.4. Is protection required for a particular data transfer ? ++ ++ A client would already have issued a PROT command if it required ++ the connection to be protected. ++ If a server needs to have the connection protected then it will ++ reply to the STOR/RETR/NLST/... command with a '522' indicating ++ that the current state of the data connection protection level is ++ not sufficient for that data transfer at that time. ++ ++ 11.5. What level of protection is required for a particular data ++ transfer ? ++ ++ Decided entirely by the TLS CipherSuite negotiation. ++ ++ Thus it can be seen that, for flexibility, it is desirable for the ++ FTP application to be able to interact with the TLS layer upon which ++ it sits to define and discover the exact TLS CipherSuites that are to ++ be/have been negotiated and make decisions accordingly. However it ++ should be entirely possible, using the mechanisms described in this ++ document, to have a TLS client or server sitting on top of a generic ++ 'TLS socket layer'. In this case, interoperability for a client with ++ a smart TLS-aware server may not be possible due to server policies. ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 15] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++12. Timing Diagrams ++ ++ 12.1. Establishing a protected session ++ ++ Client Server ++ control data data control ++==================================================================== ++ ++ socket() ++ bind() ++ socket() ++ connect() ----------------------------------------------> accept() ++ AUTH TLS ----------------------------------------------> ++ <---------------------------------------------- 234 ++ TLSneg() <----------------------------------------------> TLSneg() ++ PBSZ 0 ----------------------------------------------> ++ <---------------------------------------------- 200 ++ PROT P ----------------------------------------------> ++ <---------------------------------------------- 200 ++ USER fred ----------------------------------------------> ++ <---------------------------------------------- 331 ++ PASS pass ----------------------------------------------> ++ <---------------------------------------------- 230 ++ ++Note: the order of the PBSZ/PROT pair and the USER/PASS pair (with ++respect to each other) is not important (i.e. the USER/PASS can happen ++prior to the PBSZ/PROT - or indeed the server can refuse to allow a ++PBSZ/PROT pair until the USER/PASS pair has happened). ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 16] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++ 12.2. A standard data transfer without protection. ++ ++ Client Server ++ control data data control ++==================================================================== ++ ++ socket() ++ bind() ++ PORT w,x,y,z,a,b -----------------------------------------> ++ <----------------------------------------------------- 200 ++ STOR file ------------------------------------------------> ++ socket() ++ bind() ++ <----------------------------------------------------- 150 ++ accept() <----------- connect() ++ write() -----------> read() ++ close() -----------> close() ++ <----------------------------------------------------- 226 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 17] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++ 12.3. A firewall-friendly data transfer without protection ++ ++ Client Server ++ control data data control ++==================================================================== ++ ++ PASV --------------------------------------------------------> ++ socket() ++ bind() ++ <------------------------------------------ 227 (w,x,y,z,a,b) ++ socket() ++ STOR file ---------------------------------------------------> ++ connect() ----------> accept() ++ <-------------------------------------------------------- 150 ++ write() ----------> read() ++ close() ----------> close() ++ <-------------------------------------------------------- 226 ++ ++ ++ Note: Implementors should be aware that then connect()/accept() ++ function is performed prior to the receipt of the reply from the ++ STOR command. This contrasts with situation when (non-firewall- ++ friendly) PORT is used prior to the STOR, and the accept()/connect() ++ is performed after the reply from the aforementioned STOR has been ++ dealt with. ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 18] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++ 12.4. A standard data transfer with protection ++ ++ Client Server ++ control data data control ++==================================================================== ++ ++ socket() ++ bind() ++ PORT w,x,y,z,a,b --------------------------------------------> ++ <-------------------------------------------------------- 200 ++ STOR file ---------------------------------------------------> ++ socket() ++ bind() ++ <-------------------------------------------------------- 150 ++ accept() <---------- connect() ++ TLSneg() <----------> TLSneg() ++ TLSwrite() ----------> TLSread() ++ close() ----------> close() ++ <-------------------------------------------------------- 226 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 19] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++ 12.5. A firewall-friendly data transfer with protection ++ ++ Client Server ++ control data data control ++==================================================================== ++ ++ PASV --------------------------------------------------------> ++ socket() ++ bind() ++ <------------------------------------------ 227 (w,x,y,z,a,b) ++ socket() ++ STOR file ---------------------------------------------------> ++ connect() ----------> accept() ++ <-------------------------------------------------------- 150 ++ TLSneg() <---------> TLSneg() ++ TLSwrite() ---------> TLSread() ++ close() ---------> close() ++ <-------------------------------------------------------- 226 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 20] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++13. Implications of [FTP-EXT] ++ ++ 13.1. MLST and MLSD ++ ++ MLST and MLSD are directory listing commands and should be treated ++ in the same manner as NLST and LIST for the purposes of this ++ document. ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 21] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++14. Discussion of the 'REIN' command ++ ++ The 'REIN' command, defined in [RFC-959], allows the user to reset ++ the state of the FTP session. ++ REINITIALIZE (REIN) ++ This command terminates a USER, flushing all I/O and account ++ information, except to allow any transfer in progress to be ++ completed. All parameters are reset to the default settings ++ and the control connection is left open. This is identical to ++ the state in which a user finds himself immediately after the ++ control connection is opened. A USER command may be expected ++ to follow. ++ The defined behaviour for TLS protected FTP sessons will depend on ++ the manner of session initialisation. ++ If the session has been explicity protected (see section 4.1) then ++ the TLS session(s) will be cleared and the control and data ++ connections revert to unprotected, clear communications. It will be ++ acceptable to use cached TLS sessions for subsequent connections, ++ however a server should not mandate this. ++ If the session is implicitly protected (see section 4.2) then the ++ control connection will continue to be protected using the exisiting ++ negotiated TLS session and the data connection will revert to being ++ implicitly protected, irrespective of any 'PROT' commands preceding ++ the 'REIN'. ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 22] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++15. Security Considerations ++ ++ This entire document deals with security considerations related to ++ the File Transfer Protocol. ++ ++ 15.1. Verification of Authentication tokens ++ ++ 15.1.1. Server Certificates ++ ++ Although it is entirely an implementation decision, it is ++ recommended that certificates used for server authentication of ++ the TLS session contain the server identification information ++ in a similar manner to those used for http servers. (i.e. ++ SubjectCommonName or SubjectAltName of type dNSName). ++ ++ Note that, if there is any future extensions to the FTP ++ protocol to allow multi-homed servers, then the interaction of ++ such a mechanism, the REIN commands and the certificate ++ presented by the server in the TLS handshake will need to be ++ considered carefully. ++ ++ 15.1.2. Client Certificates ++ ++ - Deciding which client certificates to allow and defining ++ which fields define what authentication information is entirely ++ a server implementation issue. ++ ++ - It is also server implementation issue to decide if the ++ authentication token presented for the data connection must ++ match the one used for the corresponding control connection. ++ ++ 15.2. Addressing FTP Security Considerations [RFC-2577] ++ ++ 15.2.1. Bounce Attack ++ ++ A bounce attack should be harder in a secured FTP environment ++ because: ++ ++ - The FTP server that is being used to initiate a false ++ connection will always be a 'server' in the TLS context. ++ Therefore, only services that act as 'clients' in the TLS ++ context could be vulnerable. This would be a counter- ++ intuitive way to implement TLS on a service. ++ ++ - The FTP server would detect that the authentication ++ credentials for the data connection are not the same as ++ those for the control connection, thus the server policies ++ could be set to drop the data connection. ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 23] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++ - Genuine users are less likely to initiate such attacks ++ when the authentication is strong and malicious users are ++ less likely to gain access to the FTP server if the ++ authentication is not easily subverted (password guessing, ++ network tracing, etc...) ++ ++ 15.2.2. Restricting Access ++ ++ This document presents a strong mechanism for solving the issue ++ raised in this section. ++ ++ 15.2.3. Protecting Passwords ++ ++ The twin solutions of strong authentication and data ++ confidentiality ensure that this is not an issue when TLS is ++ used to protect the control session. ++ ++ 15.2.4. Privacy ++ ++ The TLS protocol ensures data confidentiality by encryption. ++ Privacy (e.g. access to download logs, user profile ++ information, etc...) is outside the scope of this document (and ++ [RFC-2577] presumably) ++ ++ 15.2.5. Protecting Usernames ++ ++ This is not an issue when TLS is used as the primary ++ authentication mechanism. ++ ++ 15.2.6. Port Stealing ++ ++ This proposal will do little for the Denial of Service element ++ of this section, however, strong authentication on the data ++ connection will prevent unauthorised connections retrieving or ++ submitting files. ++ ++ 15.2.7. Software-Base Security Problems ++ ++ Nothing in this proposal will affect the discussion in this ++ section. ++ ++ ++ ++ ++16. IANA Considerations ++ ++ {FTP-PORT} - The port assigned to the FTP control connection is 21. ++ ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 24] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++ {FTP-TLSPORT} - A port to be assigned by the IANA for native TLS FTP ++ connections on the control socket. This has been provisionally ++ reserved as port 990. ++ ++ {TLS-PARM} - A parameter for the AUTH command to indicate that TLS is ++ required. It is recommended that 'TLS', 'TLS-C', 'SSL' and 'TLS-P' ++ are acceptable, and mean the following :- ++ ++ 'TLS' or 'TLS-C' - the TLS protocol or the SSL protocol will be ++ negotiated on the control connection. The default protection ++ setting for the Data connection is 'Clear'. ++ ++ 'SSL' or 'TLS-P' - the TLS protocol or the SSL protocol will be ++ negotiated on the control connection. The default protection ++ setting for the Data connection is 'Private'. This is primarily ++ for backward compatibility. ++ ++ Note - [RFC-2228] states that these parameters are case- ++ insensitive. ++ ++ ++17. Network Management ++ ++ NONE ++ ++ ++18. Internationalization ++ ++ NONE ++ ++ ++19. Scalability & Limits ++ ++ There are no issues other than those concerned with the ability of ++ the server to refuse to have a complete TLS negotiation for each and ++ every data connection, which will allow servers to retain throughput ++ whilst using cycles only when necessary. ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 25] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++20. Applicability ++ ++ This mechanism is generally applicable as a mechanism for securing ++ the FTP protocol. It is unlikely that anonymous FTP clients or ++ servers will require such security (although some might like the ++ authentication features without the privacy). ++ ++ ++21. Acknowledgements ++ ++ o Netscape Communications Corporation for the original SSL protocol. ++ ++ o Eric Young for the SSLeay libraries. ++ ++ o University of California, Berkley for the original implementations ++ of FTP and ftpd on which the initial implementation of these ++ extensions were layered. ++ ++ o IETF CAT working group. ++ ++ o IETF TLS working group. ++ ++ o IETF FTPEXT working group. ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 26] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++22. References ++ ++ [RFC-959] J. Postel, "File Transfer Protocol" ++ RFC 959, October 1985. ++ ++ [RFC-1579] Bellovin, S., "Firewall-Friendly FTP" ++ RFC 1579, February 1994. ++ ++ [RFC-2222] J. Myers, "Simple Authentication and Security Layer" ++ RFC 2222, October 1997. ++ ++ [RFC-2228] M. Horowitz, S. Lunt, "FTP Security Extensions" ++ RFC 2228, October 1997. ++ ++ [RFC-2246] T. Dierks, C. Allen, "The TLS Protocol Version 1.0" ++ RFC 2246, January 1999. ++ ++ [RFC-2389] P Hethmon, R.Elz, "Feature Negotiation Mechanism for the ++ File Transfer Protocol" ++ RFC 2389, August 1998. ++ ++ [RFC-2487] P Hoffman, "SMTP Service Extension for Secure SMTP over ++ TLS" ++ RFC 2487, January 1999. ++ ++ [RFC-2577] M Allman, S Ostermann "FTP Security Considerations" ++ RFC 2577, May 1999. ++ ++ [FTP-EXT] R Elz, P Hethmon "Extensions to FTP" ++ draft-ietf-ftpext-mlst-07.txt, June 1999. ++ ++ [SRA-FTP] "SRA - Secure RPC Authentication for TELNET and FTP Version ++ 1.1" ++ file://ftp.funet.fi/security/login/telnet/doc/sra/sra.README ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 27] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++23. Authors' Contact Addresses ++ ++Please send comments to Paul Ford-Hutchinson at the address below ++ ++ Tim Hudson Paul Ford-Hutchinson ++ RSA Data Security IBM UK Ltd ++ Australia Pty Ltd PO Box 31 ++ Birmingham Road ++ Warwick ++ United Kingdom ++ tel - +61 7 3227 4444 +44 1926 462005 ++ fax - +61 7 3227 4400 +44 1926 496482 ++email - tjh@rsasecurity.com.au paulfordh@uk.ibm.com ++ ++ Martin Carpenter Eric Murray ++ Verisign Ltd Wave Systems Inc. ++email - mcarpenter@verisign.com ericm@lne.com ++ ++ Volker Wiegand ++ SuSE Linux ++email - wiegand@suse.de ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 28] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++ Appendices ++ ++A. Summary of [RFC-2246] ++ ++ The TLS protocol was developed by the IETF TLS working group. It is ++ based on the SSL protocol proposed by Netscape Communications ++ Corporation. The structure of the start of a TLS session allows ++ negotiation of the level of the protocol to be used - in this way, a ++ client or server can simultaneously support TLS and SSL and negotiate ++ the most appropriate for the connection. ++ ++ The TLS protocol defines three security mechanisms that may be used ++ (almost) independently. They are Authentication, Integrity and ++ Privacy. It is possible to have an Authenticated session with no ++ Privacy and with or without Integrity (useful for anonymous FTP ++ sites, or sites with pre-encrypted data). For example, sessions with ++ Authentication, Privacy and Integrity would be useful for control ++ connections over an insecure network and data connections ++ transferring confidential material. ++ ++ The TLS protocol allows unauthenticated sessions; server ++ authentication or client and server authentication. There is no ++ mechanism for authenticating a client without first authenticating ++ the server. ++ ++ The basic mechanism of the TLS protocol is that (for an ++ Authenticated, Private session) asymmetric encryption is used to ++ authenticate clients and servers and exchange a session key for ++ symmetric encryption which is to be used for the rest of the session. ++ ++ The structure of the TLS session initialisation is that the client ++ initiates the session with a 'ClientHello' message. The server will ++ respond with a 'ServerHello' and the session negotiation will ++ continue. ++ ++ The TLS protocol allows session caching which is achieved by the ++ client requesting that the server re-use a session context (Cipher ++ Suite and symmetric key) in the ClientHello message. There is no ++ reason why a second connection could not request a 'cached' session ++ with the same context as an existing session. ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 29] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++B. Summary of [RFC-2228] ++ ++ ++ ++ Extensions to FTP ++ ++ The FTP Security Extensions document has 8 new commands to enhance ++ the FTP protocol to allow negotiation of security and exchange of ++ security data. Three of these commands (the AUTH, PBSZ and PROT ++ commands) are used by this document to allow an FTP client to ++ negotiate TLS with the server. The other commands are not required. ++ ++ i) AUTH ++ ++ This command is a request by the client to use an authentication ++ and/or security mechanism. ++ ++ The client will issue an 'AUTH ' command ++ which will be a request to the server to secure the control ++ connection using the TLS (or SSL) protocol. It also governs the ++ initial protection setting of the data channel (which may be ++ changed by a subsequent PROT command). ++ ++ ii) ADAT ++ ++ This command is used to transmit security data required by the ++ security mechanism agreed in a preceding AUTH command. ++ This document does not use the ADAT command. ++ ++ iii) PROT ++ ++ This command is used by the client to instruct the type of ++ security that is required on the Data connection. ++ ++ The 'PROT C' command will mean that TLS should not be used to ++ secure the data connection; 'PROT P' means that TLS should be ++ used. 'PROT E' and 'PROT S' are not defined and generate ++ a '536' reply from the server. ++ ++ iv) PBSZ ++ ++ This command is used to negotiate the size of the buffer to be ++ used during secured data transfer. ++ ++ The PBSZ command must be issued prior to the PROT command. The ++ PBSZ command cannot be sent on an insecure control connection. ++ For FTP and TLS the only valid value for the parameter is '0', all ++ other values should receive a '200' reply with the text 'PBSZ=0' ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 30] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++ included. ++ ++ v) CCC ++ ++ This command is used to specify that the control channel no longer ++ requires protection. ++ This document does not use the CCC command. ++ ++ vi) MIC ++ ++ This command is used to send a normal FTP command with integrity ++ protection. ++ This document does not use the MIC command. ++ ++ vii) CONF ++ ++ This command is used to send a normal FTP command with ++ confidentiality protection (encrypted). ++ This document does not use the CONF command. ++ ++ viii) ENC ++ ++ This command is used to send a normal FTP command with ++ confidentiality and integrity protection. ++ This document does not use the ENC command. ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 31] ++ ++ ++ ++ ++ ++Internet-Draft Secure FTP using TLS 18th September, 2000 ++ ++ ++Full Copyright Statement ++ ++ Copyright (C) The Internet Society (2000). All Rights Reserved. ++ ++ This document and translations of it may be copied and furnished to ++ others, and derivative works that comment on or otherwise explain it ++ or assist in its implementation may be prepared, copied, published ++ and distributed, in whole or in part, without restriction of any ++ kind, provided that the above copyright notice and this paragraph are ++ included on all such copies and derivative works. However, this ++ document itself may not be modified in any way, such as by removing ++ the copyright notice or references to the Internet Society or other ++ Internet organizations, except as needed for the purpose of ++ developing Internet standards in which case the procedures for ++ copyrights defined in the Internet Standards process must be ++ followed, or as required to translate it into languages other than ++ English. ++ ++ The limited permissions granted above are perpetual and will not be ++ revoked by the Internet Society or its successors or assigns. ++ ++ This document and the information contained herein is provided on an ++ "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING ++ TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING ++ BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION ++ HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF ++ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. ++ ++This document expires on 17th March, 2001 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++Ford-Hutchinson, Carpenter, Hudson, Murray & Wiegand [Page 32] ++ ++ +diff -ruN proftpd-1.2.10-old/include/buildstamp.h proftpd-1.2.10/include/buildstamp.h +--- proftpd-1.2.10-old/include/buildstamp.h 1970-01-01 01:00:00.000000000 +0100 ++++ proftpd-1.2.10/include/buildstamp.h 2004-09-14 23:22:09.000000000 +0200 +@@ -0,0 +1 @@ ++#define BUILD_STAMP "do mrt 22 18:28:32 CET 2001" +diff -ruN proftpd-1.2.10-old/README.ftpasswd proftpd-1.2.10/README.ftpasswd +--- proftpd-1.2.10-old/README.ftpasswd 1970-01-01 01:00:00.000000000 +0100 ++++ proftpd-1.2.10/README.ftpasswd 2004-09-14 23:22:09.000000000 +0200 +@@ -0,0 +1,82 @@ ++--------------------------------------------------------------------------- ++TJ Saunders ++2000-01-09 ++--------------------------------------------------------------------------- ++ ++usage: ftpasswd [ -h ] [ --group | --passwd ] ++ ++ If used with --passwd, ftpasswd creates a file in the passwd(5) format, ++ suitable for use with proftpd's AuthUserFile configuration directive. ++ You will be prompted for the password to use of the user, which will be ++ encrypted, and written out as the encrypted string. ++ ++ By default, using --passwd will write output to "./ftpd.passwd". ++ ++ Options: ++ -F write output to specified file, rather than "./ftpd.passwd" ++ --file ++ ++ -f if the file to be used already exists, delete it and write a ++ --force new one. ++ ++ --gid primary group ID for this user (optional, will default to ++ given --uid value if absent) ++ ++ -h displays this message ++ --help ++ ++ --home home directory for the user (required) ++ ++ --name name of the user account (required). If the name does not ++ exist in the specified output-file, an entry will be created ++ for her. Otherwise, the given fields will be updated. ++ ++ --shell shell for the user (required). Recommended: /bin/false ++ ++ --uid numerical user ID (required) ++ ++ --use-cracklib ++ causes ftpasswd to use Alec Muffet's cracklib routines in ++ order to determine and prevent the use of bad or weak ++ passwords. The optional path to this option specifies ++ the path to the dictionary files to use -- default path ++ is "/usr/lib/cracklib_dict". This requires the Perl ++ Crypt::Cracklib module to be installed on your system. ++ ++ If used with --group, ftpasswd creates a file in the group(5) format, ++ suitable for use with proftpd's AuthGroupFile configuration directive. ++ ++ By default, using --group will write output to "./ftpd.group". ++ ++ Options: ++ --enable-group-passwd ++ prompt for a group password. This is disabled by default. ++ ++ -F write output to specified file, rather than "./ftpd.group" ++ --file ++ ++ -f if the file be used already exists, delete it and write a new ++ --force one. ++ ++ --gid numerical group ID (required) ++ ++ -h ++ --help displays this message ++ ++ -m ++ --member user to be a member of the group. This argument may be used ++ multiple times to specify the full list of users to be members ++ of this group. ++ ++ --name name of the group (required). If the name does not exist in ++ the specified output-file, an entry will be created for them. ++ Otherwise, the given fields will be updated. ++ ++ --use-cracklib ++ causes ftpasswd to use Alec Muffet's cracklib routines in ++ order to determine and prevent the use of bad or weak ++ passwords. The optional path to this option specifies ++ the path to the dictionary files to use -- default path ++ is "/usr/lib/cracklib_dict". This requires the Perl ++ Crypt::Cracklib module to be installed on your system. ++ --- proftpd-1.2.10.orig/debian/patches/02.mod_pam.c.change.pam.name.diff +++ proftpd-1.2.10/debian/patches/02.mod_pam.c.change.pam.name.diff @@ -0,0 +1,12 @@ +diff -urN proftpd-1.2.8/modules/mod_auth_pam.c proftpd-1.2.8-debian/modules/mod_auth_pam.c +--- proftpd-1.2.8/modules/mod_auth_pam.c 2003-01-02 19:25:20.000000000 +0100 ++++ proftpd-1.2.8-debian/modules/mod_auth_pam.c 2003-03-17 15:09:28.000000000 +0100 +@@ -57,7 +57,7 @@ + #endif /* HAVE_PAM_PAM_APPL_H */ + + static pam_handle_t * pamh = NULL; +-static char * pamconfig = "ftp"; ++static char * pamconfig = "proftpd"; + static char * pam_user = NULL; + static char * pam_pass = NULL; + static size_t pam_user_len = 0; --- proftpd-1.2.10.orig/debian/patches/33.documentation.diff +++ proftpd-1.2.10/debian/patches/33.documentation.diff @@ -0,0 +1,211 @@ +diff -ruN proftpd-1.2.10-old/doc/Configuration.html proftpd-1.2.10/doc/Configuration.html +--- proftpd-1.2.10-old/doc/Configuration.html 2003-10-30 21:38:16.000000000 +0100 ++++ proftpd-1.2.10/doc/Configuration.html 2006-01-11 15:09:12.000000000 +0100 +@@ -6068,8 +6068,10 @@ + >Determines the directory a user is placed in after logging in. + By default, the user is put in their home directory. The specified + directory can be relative to the user's home directory. +-NOTE: if the specified directory is not available +-the user will not be able to log in.

+\ No newline at end of file ++> +diff -ruN proftpd-1.2.10-old/doc/howto/AuthFiles.html proftpd-1.2.10/doc/howto/AuthFiles.html +--- proftpd-1.2.10-old/doc/howto/AuthFiles.html 1970-01-01 01:00:00.000000000 +0100 ++++ proftpd-1.2.10/doc/howto/AuthFiles.html 2004-12-22 11:40:44.000000000 +0100 +@@ -0,0 +1,184 @@ ++ ++ ++ ++ ++ ++ProFTPD mini-HOWTO - Using AuthUserFiles ++ ++ ++ ++ ++
++

Using AuthUserFiles

++
++ ++

++The FTP protocol is old, stemming from the days of Telnet, before security ++came to be the relevant issue it is today. One of the protocol's biggest flaws, ++in today's security-conscious world, is the transmission of passwords "in ++the clear", unencrypted, easily visible to network sniffers. There ++are several ways of attempting to deal with this flaw. ++ ++

++ProFTPD allows for the definition of "virtual" users: users who ++do not have accounts on the host machine, whose account information is defined ++in other sources. The passwords for these users are then specific only to ++FTP access, and thus do not expose shell access (ssh, hopefully) to ++unauthorized users. These alternative account information sources include SQL ++tables (via mod_sql), LDAP servers (via mod_ldap), ++CDB files (via mod_auth_cdb), and other system files (via ++the ++AuthUserFile and ++AuthGroupFile ++configuration directives). The proftpd server can be configured ++to use multiple account information sources simultaneously as well, ++allowing for flexible support of a range of environments. ++ ++

++This document focuses on the use of the AuthUserFile and ++AuthGroupFile directives. Several questions often arise ++about the use of these directives. In general, the answers to those questions ++apply to other authentication/account sources, too. ++ ++

++Formats
++Any configured AuthUserFile is used in addition to ++/etc/passwd, not instead of it (prior to 1.2.8rc1, however, ++an AuthUserFile was used instead of /etc/passwd); ++similarly for AuthGroupFile and /etc/group. The ++AuthOrder directive can be used if ++you want proftpd to use only the AuthUserFile. The ++format of an AuthUserFile is the same as /etc/passwd ++(man passwd(5)), and the format of an AuthGroupFile ++is the same as /etc/group (man group(5)). There is ++an ftpasswd script available that can be used to create and update ++these files. ++ ++

++It is important to note here that not all flavors of Unix use these formats; ++one notable exception is FreeBSD. With FreeBSD, user account information is ++stored in binary database files as opposed to ASCII files. The C library on ++this platform also lacks the functions necessary for making the ++AuthUserFile and AuthGroupFile directives work ++properly. In this case, proftpd uses an internal implementation ++of the missing functions to read AuthUserFiles and ++AuthGroupFiles. This internal implementation requires that ++AuthUserFiles have the traditional passwd(5) format: ++

++  username:password:uid:gid:gecos:homedir:shell
++
++and that AuthGroupFiles have this format: ++
++  groupname:grouppasswd:gid:member1,member2,...memberN
++
++The ftpasswd script mentioned creates files in these required formats. ++ ++

++Choice of IDs
++The choice of IDs for your users is important; the operating system does not ++deal with user processes in terms of their user names, it knows only of the ++numeric identity of a process. In general, it is best if each user has ++a unique positive user ID (negative IDs are an ugly hack, and ++proftpd will complain if they are used). ++ ++

++However, in some mass-hosting environments such as ISPs, the number of users ++is greater than the number of IDs available. In these cases, you can give ++each user the same ID; additional steps should then be taken to make sure ++that each user is isolated from affecting other users' files. These additional ++steps are to make sure each user has a unique home directory, and then ++to restrict each user to their respective home directories by having ++

++  DefaultRoot ~
++
++in your proftpd.conf. ++ ++

++Shadow passwords
++There really is no need for an AuthShadowFile directive. The ++purpose of a shadow file is separate sensitive information ++(e.g. passwords) from other account information ++(username/UID/GID, etc). Programs like ++/bin/ls often reference the passwd file in order to display ++user/group names rather than numbers; these programs do not really need that ++sensitive information. Rather than relying on programs like ++/bin/ls to ignore the sensitive information, libraries were ++developed to split the information into /etc/passwd, ++/etc/shadow (and similarly for /etc/group, but very ++few administrators use group passwords anymore). Some operating systems, most ++notably FreeBSD, though, chose a different form of information separation. ++Since FreeBSD maintains account information in binary database files, the ++shadow libraries mentioned above are not used. Instead, FreeBSD returns the ++sensitive information to the calling program only if it has sufficient ++(i.e. superuser) privileges. ++ ++

++When proftpd uses an AuthUserFile, it is looking for ++all of the account information, including the password. And since ++AuthUserFiles are specific to proftpd, there is no ++need to split any passwords out of an AuthUserFile into an ++AuthShadowFile. As the documentation states, an ++AuthUserFile need not reside inside a chroot() ++filesystem, which means that users can be effectively isolated from having ++access to that AuthUserFile. At that point, the only ++consideration is making sure that the permissions on the ++AuthUserFile are sufficient for the server to have access, but ++no other users. ++ ++

++Permissions
++As the AuthUserFile and AuthGroupFile files are ++meant to be drop-in replacements for their system cousins, there are a few ++caveats. /etc/passwd and /etc/group are normally ++world-readable on modern Unix systems. This allows programs like ++/bin/ls to map system ID numbers to more legible names; sensitive ++information in the /etc/passwd and /etc/group ++is normally stored elsewhere, in restricted shadow files. The ++proftpd server thus assumes that it will not need special ++privileges to read an AuthUserFile or an ++AuthGroupFile. The process will access any ++AuthUserFiles and AuthGroupFiles with the credentials ++of the user and group configured via the User and ++Group directives. The files may contain sensitive information, so ++they should not have as open of permissions as /etc/passwd ++and /etc/group. The most paranoid setting will have ++user-read-only permissions for those files, and have the files be owned by the ++user configured for the relevant server via the User directive. ++Hopefully the server administrator has created a new account on the system just ++for the ftpd daemon. ++ ++

++ID-to-name mapping
++A consequence of which to be aware when using an AuthUserFile ++is the difference between that AuthUserFile's mapping of ++system IDs to names, and the mapping in /etc/passwd. This ++may catch some system administrators unawares when they go to check the ++ownership of files uploaded by some user whose account is defined in an ++AuthUserFile, and find those files being reported as being ++owned by different users and/or groups by /bin/ls. Keep in ++mind that /bin/ls is using /etc/passwd, not ++the AuthUserFile. This issue crops up with any alternative ++account information source, not just AuthUserFiles. ++ ++

++If you are using the same UID/GID for your users, e.g. in a mass ++hosting environment, one trick you might like to do is make all of the files, ++as listed by the server, appear to be owned by the logged in user. This is ++done using the DirFakeUser and DirFakeGroup directives, ++like this: ++

++  # make listed files appear to be owned by the logged-in user
++  DirFakeUser on ~
++  DirFakeGroup on ~
++
++As noted in the documentation, these directives are purely cosmetic, and in ++no way change the real ownership of files. This may cause some confusion on ++the client side in some cases, if the user sees a file that is reported to be ++owned by them, and the permissions on the file show user access is allowed, and ++yet the client is unable to access the file. HideNoAccess ++can help in situations like this. ++ ++

++


++ ++ --- proftpd-1.2.10.orig/debian/patches/30.response.c.diff +++ proftpd-1.2.10/debian/patches/30.response.c.diff @@ -0,0 +1,20 @@ +diff -ruN proftpd-1.2.10-old/src/response.c proftpd-1.2.10/src/response.c +--- proftpd-1.2.10-old/src/response.c 2003-06-03 18:25:23.000000000 +0200 ++++ proftpd-1.2.10/src/response.c 2005-06-29 11:54:08.000000000 +0200 +@@ -1,6 +1,6 @@ + /* + * ProFTPD - FTP server daemon +- * Copyright (c) 2001, 2002, 2003 The ProFTPD Project team ++ * Copyright (c) 2001-2005 The ProFTPD Project team + * + * 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 +@@ -169,7 +169,7 @@ + buf[sizeof(buf) - 1] = '\0'; + sstrcat(buf, "\r\n", sizeof(buf)); + +- RESPONSE_WRITE_STR_ASYNC(session.c->outstrm, buf, strlen(buf)) ++ RESPONSE_WRITE_STR_ASYNC(session.c->outstrm, "%s", buf) + } + + void pr_response_send(const char *resp_numeric, const char *fmt, ...) { --- proftpd-1.2.10.orig/debian/patches/10.mod_unixpw.c.ldap.fix.diff +++ proftpd-1.2.10/debian/patches/10.mod_unixpw.c.ldap.fix.diff @@ -0,0 +1,27 @@ +diff -urN proftpd-1.2.8/modules/mod_auth_unix.c proftpd-1.2.8-debian/modules/mod_auth_unix.c +--- proftpd-1.2.8/modules/mod_auth_unix.c 2003-02-18 18:55:22.000000000 +0100 ++++ proftpd-1.2.8-debian/modules/mod_auth_unix.c 2003-03-17 15:35:17.000000000 +0100 +@@ -196,6 +196,11 @@ + static struct passwd *p_getpwnam(const char *name) { + struct passwd *pw = NULL; + ++ if (pwdfname!=NULL && !strncmp(pwdfname, "/etc/passwd", 12)) { ++ pw = getpwnam(name); ++ if (pw) return pw; ++ } ++ + p_setpwent(); + while ((pw = p_getpwent()) != NULL) + if (!strcmp(name,pw->pw_name)) +@@ -207,6 +212,11 @@ + static struct passwd *p_getpwuid(uid_t uid) { + struct passwd *pw = NULL; + ++ if (pwdfname!=NULL && !strncmp(pwdfname, "/etc/passwd", 12)) { ++ pw = getpwuid(uid); ++ if (pw) return pw; ++ } ++ + p_setpwent(); + while ((pw = p_getpwent()) != NULL) + if (pw->pw_uid == uid) --- proftpd-1.2.10.orig/debian/patches/22.mod_delay.c.diff +++ proftpd-1.2.10/debian/patches/22.mod_delay.c.diff @@ -0,0 +1,1133 @@ +diff -ruN proftpd-1.2.10-old/contrib/mod_delay.c proftpd-1.2.10/contrib/mod_delay.c +--- proftpd-1.2.10-old/contrib/mod_delay.c 1970-01-01 01:00:00.000000000 +0100 ++++ proftpd-1.2.10/contrib/mod_delay.c 2005-06-30 10:17:33.000000000 +0200 +@@ -0,0 +1,973 @@ ++/* ++ * ProFTPD: mod_delay -- a module for adding arbitrary delays to the FTP ++ * session lifecycle ++ * ++ * Copyright (c) 2004 TJ Saunders ++ * ++ * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ++ * ++ * As a special exemption, TJ Saunders and other respective copyright holders ++ * give permission to link this program with OpenSSL, and distribute the ++ * resulting executable, without including the source code for OpenSSL in the ++ * source distribution. ++ * ++ * This is mod_delay, contrib software for proftpd 1.2.10 and above. ++ * For more information contact TJ Saunders . ++ * ++ * $Id: mod_delay.c,v 1.12 2005/04/23 22:54:20 castaglia Exp $ ++ */ ++ ++#include "conf.h" ++#include "privs.h" ++ ++#define MOD_DELAY_VERSION "mod_delay/0.4" ++ ++/* Make sure the version of proftpd is as necessary. */ ++#if PROFTPD_VERSION_NUMBER < 0x0001021001 ++# error "ProFTPD 1.2.10rc1 or later required" ++#endif ++ ++#include ++ ++#ifdef HAVE_SYS_MMAN_H ++# include ++#endif ++ ++/* Number of values to keep in a row. */ ++#ifndef DELAY_NVALUES ++# define DELAY_NVALUES 256 ++#endif ++ ++/* Fraction of total values that are accepted from a single session. */ ++#ifndef DELAY_SESS_NVALUES ++# define DELAY_SESS_NVALUES 16 ++#endif ++ ++extern xaset_t *server_list; ++ ++module delay_module; ++ ++struct delay_rec { ++ unsigned int d_sid; ++ char d_addr[80]; ++ unsigned int d_port; ++ unsigned int d_nvals; ++ long d_vals[DELAY_NVALUES]; ++}; ++ ++struct { ++ const char *dt_path; ++ int dt_fd; ++ off_t dt_size; ++ void *dt_data; ++ ++} delay_tab; ++ ++static unsigned int delay_engine = TRUE; ++static unsigned int delay_nuser = 0; ++static unsigned int delay_npass = 0; ++static struct timeval delay_tv; ++ ++static void delay_table_reset(void); ++ ++#define delay_swap(a, b) \ ++ tmp = (a); \ ++ (a) = (b); \ ++ (b) = tmp; ++ ++static long delay_select_k(unsigned long k, array_header *values) { ++ unsigned long l, ir, tmp = 0; ++ long *elts = (long *) values->elts; ++ int nelts = values->nelts; ++ ++ /* This is from "Numeric Recipes in C", Ch. 8.5, as the select() ++ * algorithm, an in-place sorting algorithm for finding the Kth ++ * element in an array, where all elements to the left of K are ++ * smaller than K, and all elements to the right are larger. ++ */ ++ ++ l = 1; ++ ir = values->nelts - 1; ++ ++ while (TRUE) { ++ if (ir <= l+1) { ++ if (ir == l+1 && ++ elts[ir] < elts[l]) ++ delay_swap(elts[l], elts[ir]); ++ ++ return elts[k]; ++ ++ } else { ++ unsigned long i, j; ++ long p; ++ unsigned long mid = (l + ir) >> 1; ++ ++ delay_swap(elts[mid], elts[l+1]); ++ if (elts[l] > elts[ir]) ++ delay_swap(elts[l], elts[ir]); ++ ++ if (elts[l+1] > elts[ir]) ++ delay_swap(elts[l+1], elts[ir]); ++ ++ if (elts[l] > elts[l+1]) ++ delay_swap(elts[l], elts[l+1]); ++ ++ i = l + 1; ++ j = ir; ++ p = elts[l+1]; ++ ++ while (TRUE) { ++ do i++; ++ while (i < nelts && elts[i] < p); ++ ++ do j--; ++ while (j >= 0 && elts[j] > p); ++ ++ if (j < i) ++ break; ++ ++ delay_swap(elts[i], elts[j]); ++ } ++ ++ elts[l+1] = elts[j]; ++ elts[j] = p; ++ ++ if (p >= k) ++ ir = j - 1; ++ ++ if (p <= k) ++ l = i; ++ ++ if (l >= (nelts - 1) || ++ ir >= nelts) ++ break; ++ } ++ } ++ ++ return -1; ++} ++ ++static long delay_get_median(pool *p, unsigned int rownum, long interval) { ++ register unsigned int i; ++ struct delay_rec *row; ++ long *tab_vals; ++ array_header *list = make_array(p, 1, sizeof(long)); ++ ++ /* Calculate the median value of the current command's recorded values. ++ * ++ * When calculating the median, we use the current interval as well ++ * as the recorded intervals in the table, giving us an odd number of ++ * values. ++ * ++ * If the number of values in this row is less than the watermark ++ * value, we'll actually return the maximum value, rather than the ++ * median. Below the watermark, the server is "cold" and has not ++ * yet accumulated enough data to make the median a useful value. ++ */ ++ ++ row = &((struct delay_rec *) delay_tab.dt_data)[rownum]; ++ tab_vals = row->d_vals; ++ ++ /* Start at the end of the row and work backward, as values are ++ * always added at the end of the row, shifting everything to the left. ++ */ ++ for (i = 1; i < row->d_nvals; i++) ++ *((long *) push_array(list)) = tab_vals[DELAY_NVALUES - i]; ++ *((long *) push_array(list)) = interval; ++ ++ pr_log_debug(DEBUG6, MOD_DELAY_VERSION ++ ": selecting median interval from %d %s", list->nelts, ++ list->nelts != 1 ? "values" : "value"); ++ return delay_select_k(((list->nelts + 1) / 2), list); ++} ++ ++static void delay_mask_signals(unsigned char block) { ++ static sigset_t mask_sigset; ++ ++ if (block) { ++ sigemptyset(&mask_sigset); ++ ++ sigaddset(&mask_sigset, SIGCHLD); ++ sigaddset(&mask_sigset, SIGUSR1); ++ sigaddset(&mask_sigset, SIGINT); ++ sigaddset(&mask_sigset, SIGQUIT); ++ sigaddset(&mask_sigset, SIGALRM); ++#ifdef SIGIO ++ sigaddset(&mask_sigset, SIGIO); ++#endif ++#ifdef SIGBUS ++ sigaddset(&mask_sigset, SIGBUS); ++#endif ++ sigaddset(&mask_sigset, SIGHUP); ++ ++ sigprocmask(SIG_BLOCK, &mask_sigset, NULL); ++ ++ } else ++ sigprocmask(SIG_UNBLOCK, &mask_sigset, NULL); ++} ++ ++static void delay_signals_block(void) { ++ delay_mask_signals(TRUE); ++} ++ ++static void delay_signals_unblock(void) { ++ delay_mask_signals(FALSE); ++} ++ ++static void delay_delay(long interval) { ++ struct timeval tv; ++ long rand_usec; ++ ++ /* Add an additional delay of a random number of usecs, with a ++ * maximum of half of the given interval. ++ */ ++ rand_usec = ((interval / 2.0) * rand()) / RAND_MAX; ++ interval += rand_usec; ++ pr_log_debug(DEBUG10, MOD_DELAY_VERSION ++ ": additional random delay of %ld usecs added", (long int) rand_usec); ++ ++ tv.tv_sec = interval / 1000000; ++ tv.tv_usec = interval % 1000000; ++ ++ pr_log_debug(DEBUG0, MOD_DELAY_VERSION ": delaying for %ld usecs", ++ (long int) ((tv.tv_sec * 1000000) + tv.tv_usec)); ++ ++ delay_signals_block(); ++ (void) select(0, NULL, NULL, NULL, &tv); ++ delay_signals_unblock(); ++} ++ ++static void delay_table_add_interval(unsigned int rownum, long interval) { ++ struct delay_rec *row; ++ ++ row = &((struct delay_rec *) delay_tab.dt_data)[rownum]; ++ ++ /* Shift all existing values to the left one position. */ ++ memmove(&(row->d_vals[0]), &(row->d_vals[1]), ++ sizeof(long) * (DELAY_NVALUES - 1)); ++ ++ /* Add the given value to the end. */ ++ row->d_vals[DELAY_NVALUES-1] = interval; ++ if (row->d_nvals < DELAY_NVALUES) ++ row->d_nvals++; ++} ++ ++#if defined(HAVE_LLU) && SIZEOF_OFF_T == 8 ++# define PR_LU "llu" ++# define pr_off_t unsigned long long ++#else ++# define PR_LU "lu" ++# define pr_off_t unsigned long ++#endif ++ ++static int delay_table_init(void) { ++ pr_fh_t *fh; ++ struct stat st; ++ server_rec *s; ++ unsigned int nservers = 0; ++ off_t tab_size; ++ int flags = O_RDWR|O_CREAT; ++ int reset_table = FALSE; ++ ++ /* We only want to create the table if it does not already exist. ++ * ++ * If the ServerType is inetd, we want to leave the current contents ++ * alone (don't we want to check to see that it's appropriate, sid-wise, ++ * for the current server_list?), otherwse, we reset the table. ++ * ++ * The size of the table should be: ++ * ++ * number of vhosts * 2 * row size ++ */ ++ ++ for (s = (server_rec *) server_list->xas_list; s; s = s->next) ++ nservers++; ++ tab_size = nservers * 2 * sizeof(struct delay_rec); ++ ++ PRIVS_ROOT ++ fh = pr_fsio_open(delay_tab.dt_path, flags); ++ PRIVS_RELINQUISH ++ ++ if (!fh) { ++ pr_log_debug(DEBUG0, MOD_DELAY_VERSION ++ ": error opening DelayTable '%s': %s", delay_tab.dt_path, ++ strerror(errno)); ++ return -1; ++ } ++ ++ if (pr_fsio_fstat(fh, &st) < 0) { ++ pr_log_debug(DEBUG0, MOD_DELAY_VERSION ++ ": error stat'ing DelayTable '%s': %s", delay_tab.dt_path, ++ strerror(errno)); ++ return -1; ++ } ++ ++ if (st.st_size != tab_size) { ++ /* This check is for cases when the ServerType is inetd, and the ++ * current DelayTable has the wrong size, which can happen if the ++ * configuration has changed by having vhosts added or removed. ++ */ ++ ++ pr_log_debug(DEBUG2, MOD_DELAY_VERSION ++ ": expected table size %" PR_LU ", found %" PR_LU ", resetting table", ++ (pr_off_t) tab_size, (pr_off_t) st.st_size); ++ reset_table = TRUE; ++ } ++ ++ if (reset_table) { ++ struct flock lock; ++ ++ lock.l_type = F_WRLCK; ++ lock.l_whence = 0; ++ lock.l_start = 0; ++ lock.l_len = 0; ++ ++ pr_log_debug(DEBUG10, MOD_DELAY_VERSION ": write-locking DelayTable '%s'", ++ fh->fh_path); ++ while (fcntl(fh->fh_fd, F_SETLKW, &lock) < 0) { ++ if (errno == EINTR) { ++ pr_signals_handle(); ++ continue; ++ ++ } else { ++ pr_log_pri(PR_LOG_WARNING, MOD_DELAY_VERSION ++ "warning: unable to obtain write lock on DelayTable '%s': %s", ++ fh->fh_path, strerror(errno)); ++ pr_fsio_close(fh); ++ return -1; ++ } ++ } ++ ++ /* Seek to the desired table size (actually, one byte less than the ++ * desired size) and write a single byte, so that there's enough ++ * allocated backing store on the filesystem to support the ensuing ++ * mmap() call. ++ */ ++ lseek(fh->fh_fd, tab_size-1, SEEK_SET); ++ write(fh->fh_fd, "", 1); ++ ++ /* Truncate the table, in case we're shrinking an existing table. */ ++ pr_fsio_ftruncate(fh, tab_size); ++ ++ lock.l_type = F_UNLCK; ++ ++ pr_log_debug(DEBUG10, MOD_DELAY_VERSION ": unlocking DelayTable '%s'", ++ fh->fh_path); ++ fcntl(fh->fh_fd, F_SETLK, &lock); ++ } ++ ++ delay_tab.dt_fd = fh->fh_fd; ++ delay_tab.dt_size = tab_size; ++ delay_tab.dt_data = mmap(NULL, delay_tab.dt_size, PROT_READ|PROT_WRITE, ++ MAP_SHARED, delay_tab.dt_fd, 0); ++ ++ if (delay_tab.dt_data == MAP_FAILED) { ++ pr_log_pri(PR_LOG_ERR, MOD_DELAY_VERSION ++ ": error mapping DelayTable '%s' into memory: %s", delay_tab.dt_path, ++ strerror(errno)); ++ pr_fsio_close(fh); ++ return -1; ++ } ++ ++ if (!reset_table) { ++ struct delay_rec *row; ++ ++ for (s = (server_rec *) server_list->xas_list; s; s = s->next) { ++ unsigned int i = s->sid - 1; ++ ++ /* Row for USER values */ ++ row = &((struct delay_rec *) delay_tab.dt_data)[i]; ++ if (strcmp(pr_netaddr_get_ipstr(s->addr), row->d_addr) != 0) { ++ reset_table = TRUE; ++ break; ++ } ++ ++ if (s->ServerPort != row->d_port) { ++ reset_table = TRUE; ++ break; ++ } ++ ++ /* Row for PASS values */ ++ row = &((struct delay_rec *) delay_tab.dt_data)[i + 1]; ++ if (strcmp(pr_netaddr_get_ipstr(s->addr), row->d_addr) != 0) { ++ reset_table = TRUE; ++ break; ++ } ++ ++ if (s->ServerPort != row->d_port) { ++ reset_table = TRUE; ++ break; ++ } ++ } ++ } ++ ++ if (reset_table) { ++ struct flock lock; ++ ++ lock.l_type = F_WRLCK; ++ lock.l_whence = 0; ++ lock.l_start = 0; ++ lock.l_len = 0; ++ ++ pr_log_debug(DEBUG10, MOD_DELAY_VERSION ": write-locking DelayTable '%s'", ++ fh->fh_path); ++ while (fcntl(fh->fh_fd, F_SETLKW, &lock) < 0) { ++ if (errno == EINTR) { ++ pr_signals_handle(); ++ continue; ++ ++ } else { ++ pr_log_pri(PR_LOG_WARNING, MOD_DELAY_VERSION ++ "warning: unable to obtain write lock on DelayTable '%s': %s", ++ fh->fh_path, strerror(errno)); ++ pr_fsio_close(fh); ++ return -1; ++ } ++ } ++ ++ /* Seek to the desired table size (actually, one byte less than the ++ * desired size) and write a single byte, so that there's enough ++ * allocated backing store on the filesystem to support the ensuing ++ * mmap() call. ++ */ ++ lseek(fh->fh_fd, tab_size-1, SEEK_SET); ++ write(fh->fh_fd, "", 1); ++ ++ /* Truncate the table, in case we're shrinking an existing table. */ ++ pr_fsio_ftruncate(fh, tab_size); ++ ++ pr_log_debug(DEBUG6, MOD_DELAY_VERSION ": resetting DelayTable '%s'", ++ delay_tab.dt_path); ++ delay_table_reset(); ++ ++ lock.l_type = F_UNLCK; ++ ++ pr_log_debug(DEBUG10, MOD_DELAY_VERSION ": unlocking DelayTable '%s'", ++ fh->fh_path); ++ fcntl(fh->fh_fd, F_SETLK, &lock); ++ } ++ ++ /* Done */ ++ munmap(delay_tab.dt_data, delay_tab.dt_size); ++ ++ delay_tab.dt_data = NULL; ++ ++ if (pr_fsio_close(fh) < 0) { ++ pr_log_pri(PR_LOG_WARNING, MOD_DELAY_VERSION ++ ": error closing DelayTable '%s': %s", delay_tab.dt_path, ++ strerror(errno)); ++ return -1; ++ } ++ ++ delay_tab.dt_fd = -1; ++ return 0; ++} ++ ++static int delay_table_load(int lock_table) { ++ ++ if (lock_table) { ++ struct flock lock; ++ lock.l_type = F_WRLCK; ++ lock.l_whence = 0; ++ lock.l_start = 0; ++ lock.l_len = 0; ++ ++ pr_log_debug(DEBUG10, MOD_DELAY_VERSION ": write-locking DelayTable '%s'", ++ delay_tab.dt_path); ++ while (fcntl(delay_tab.dt_fd, F_SETLKW, &lock) < 0) { ++ if (errno == EINTR) { ++ pr_signals_handle(); ++ continue; ++ ++ } else ++ return -1; ++ } ++ } ++ ++ if (!delay_tab.dt_data) { ++ delay_tab.dt_data = mmap(NULL, delay_tab.dt_size, PROT_READ|PROT_WRITE, ++ MAP_SHARED, delay_tab.dt_fd, 0); ++ ++ if (delay_tab.dt_data == MAP_FAILED) ++ return -1; ++ } ++ ++ return 0; ++} ++ ++static void delay_table_reset(void) { ++ server_rec *s; ++ ++ for (s = (server_rec *) server_list->xas_list; s; s = s->next) { ++ unsigned int i = s->sid - 1; ++ ++ /* Row for USER values */ ++ struct delay_rec *row = &((struct delay_rec *) delay_tab.dt_data)[i]; ++ row->d_sid = s->sid; ++ sstrncpy(row->d_addr, pr_netaddr_get_ipstr(s->addr), sizeof(row->d_addr)); ++ row->d_port = s->ServerPort; ++ row->d_nvals = 0; ++ memset(row->d_vals, 0, sizeof(row->d_vals)); ++ ++ /* Row for PASS values */ ++ row = &((struct delay_rec *) delay_tab.dt_data)[i + 1]; ++ row->d_sid = s->sid; ++ sstrncpy(row->d_addr, pr_netaddr_get_ipstr(s->addr), sizeof(row->d_addr)); ++ row->d_port = s->ServerPort; ++ row->d_nvals = 0; ++ memset(row->d_vals, 0, sizeof(row->d_vals)); ++ } ++ ++ return; ++} ++ ++static int delay_table_wlock(unsigned int rownum) { ++ struct flock lock; ++ ++ lock.l_type = F_WRLCK; ++ lock.l_whence = 0; ++ lock.l_start = sizeof(struct delay_rec) * rownum; ++ lock.l_len = sizeof(struct delay_rec); ++ ++ pr_log_debug(DEBUG10, MOD_DELAY_VERSION ++ ": write-locking DelayTable '%s', row %u", delay_tab.dt_path, rownum + 1); ++ while (fcntl(delay_tab.dt_fd, F_SETLKW, &lock) < 0) { ++ if (errno == EINTR) { ++ pr_signals_handle(); ++ continue; ++ } ++ ++ pr_log_debug(DEBUG2, MOD_DELAY_VERSION ++ ": error locking table: %s", strerror(errno)); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++static int delay_table_unload(int unlock_table) { ++ ++ if (delay_tab.dt_data) { ++ munmap(delay_tab.dt_data, delay_tab.dt_size); ++ delay_tab.dt_data = NULL; ++ } ++ ++ if (unlock_table) { ++ struct flock lock; ++ lock.l_type = F_UNLCK; ++ lock.l_whence = SEEK_SET; ++ lock.l_start = 0; ++ lock.l_len = 0; ++ ++ pr_log_debug(DEBUG10, MOD_DELAY_VERSION ": unlocking DelayTable '%s'", ++ delay_tab.dt_path); ++ while (fcntl(delay_tab.dt_fd, F_SETLK, &lock) < 0) { ++ if (errno == EINTR) { ++ pr_signals_handle(); ++ continue; ++ ++ } else ++ return -1; ++ } ++ } ++ ++ return 0; ++} ++ ++static int delay_table_unlock(unsigned int rownum) { ++ struct flock lock; ++ ++ lock.l_type = F_UNLCK; ++ lock.l_whence = 0; ++ lock.l_start = sizeof(struct delay_rec) * rownum; ++ lock.l_len = sizeof(struct delay_rec); ++ ++ pr_log_debug(DEBUG10, MOD_DELAY_VERSION ++ ": unlocking DelayTable '%s', row %u", delay_tab.dt_path, rownum + 1); ++ while (fcntl(delay_tab.dt_fd, F_SETLKW, &lock) < 0) { ++ if (errno == EINTR) { ++ pr_signals_handle(); ++ continue; ++ } ++ ++ pr_log_pri(PR_LOG_WARNING, MOD_DELAY_VERSION ++ ": error unlocking table: %s", strerror(errno)); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++/* Configuration handlers ++ */ ++ ++/* usage: DelayEngine on|off */ ++MODRET set_delayengine(cmd_rec *cmd) { ++ config_rec *c; ++ int bool; ++ ++ CHECK_ARGS(cmd, 1); ++ CHECK_CONF(cmd, CONF_ROOT|CONF_VIRTUAL|CONF_GLOBAL); ++ ++ bool = get_boolean(cmd, 1); ++ if (bool == -1) ++ CONF_ERROR(cmd, "expected Boolean parameter"); ++ ++ c = add_config_param(cmd->argv[0], 1, NULL); ++ c->argv[0] = pcalloc(c->pool, sizeof(unsigned int)); ++ *((unsigned int *) c->argv[0]) = bool; ++ ++ return HANDLED(cmd); ++} ++ ++/* usage: DelayTable path */ ++MODRET set_delaytable(cmd_rec *cmd) { ++ CHECK_ARGS(cmd, 1); ++ CHECK_CONF(cmd, CONF_ROOT); ++ ++ if (pr_fs_valid_path(cmd->argv[1]) < 0) ++ CONF_ERROR(cmd, "must be an absolute path"); ++ ++ add_config_param_str(cmd->argv[0], 1, cmd->argv[1]); ++ return HANDLED(cmd); ++} ++ ++/* Command handlers ++ */ ++ ++MODRET delay_post_pass(cmd_rec *cmd) { ++ struct timeval tv; ++ unsigned int rownum; ++ long interval, median; ++ ++ if (!delay_engine) ++ return DECLINED(cmd); ++ ++ /* We use sid-1, since the sid is a server number, and the locking ++ * routines want a row index. However, PASS rows are always after ++ * USER rows, so we need to add 1 to the row number, leaving us ++ * with just the sid. ++ */ ++ rownum = main_server->sid; ++ ++ /* Prepare for manipulating the table. */ ++ if (delay_table_load(FALSE) < 0) { ++ pr_log_pri(PR_LOG_WARNING, MOD_DELAY_VERSION ++ "warning: unable to load DelayTable '%s' into memory: %s", ++ delay_tab.dt_path, strerror(errno)); ++ return DECLINED(cmd); ++ } ++ ++ delay_table_wlock(rownum); ++ ++ gettimeofday(&tv, NULL); ++ ++ interval = (tv.tv_sec - delay_tv.tv_sec) * 1000000 + ++ (tv.tv_usec - delay_tv.tv_usec); ++ ++ /* Get the median interval value. */ ++ median = delay_get_median(cmd->tmp_pool, rownum, interval); ++ ++ /* Add the interval to the table. Only allow a single session to ++ * add a portion of the cache size, to prevent a single client from ++ * poisoning the cache. ++ */ ++ if (delay_npass < (DELAY_NVALUES / DELAY_SESS_NVALUES)) { ++ pr_log_debug(DEBUG10, MOD_DELAY_VERSION ": adding %ld usecs to PASS row", ++ interval); ++ delay_table_add_interval(rownum, interval); ++ delay_npass++; ++ ++ } else ++ /* Generate an event, in case a module (i.e. mod_ban) might want ++ * to do something appropriate to such an ill-behaved client. ++ */ ++ pr_event_generate("mod_delay.max-pass", session.c); ++ ++ /* Done with the table. */ ++ delay_table_unlock(rownum); ++ if (delay_table_unload(FALSE) < 0) { ++ pr_log_pri(PR_LOG_WARNING, MOD_DELAY_VERSION ++ "warning: unable to unload DelayTable '%s' from memory: %s", ++ delay_tab.dt_path, strerror(errno)); ++ } ++ ++ /* If the current interval is less than the median interval, we ++ * need to delay ourselves a little. ++ */ ++ if (interval < median) ++ delay_delay(median - interval); ++ ++ return DECLINED(cmd); ++} ++ ++MODRET delay_pre_pass(cmd_rec *cmd) { ++ if (!delay_engine) ++ return DECLINED(cmd); ++ ++ gettimeofday(&delay_tv, NULL); ++ return DECLINED(cmd); ++} ++ ++MODRET delay_post_user(cmd_rec *cmd) { ++ struct timeval tv; ++ unsigned int rownum; ++ long interval, median; ++ ++ if (!delay_engine) ++ return DECLINED(cmd); ++ ++ /* We use sid-1, since the sid is a server number, and the locking ++ * routines want a row index. ++ */ ++ rownum = main_server->sid - 1; ++ ++ /* Prepare for manipulating the table. */ ++ if (delay_table_load(FALSE) < 0) { ++ pr_log_pri(PR_LOG_WARNING, MOD_DELAY_VERSION ++ "warning: unable to load DelayTable '%s' into memory: %s", ++ delay_tab.dt_path, strerror(errno)); ++ return DECLINED(cmd); ++ } ++ ++ delay_table_wlock(rownum); ++ ++ gettimeofday(&tv, NULL); ++ ++ interval = (tv.tv_sec - delay_tv.tv_sec) * 1000000 + ++ (tv.tv_usec - delay_tv.tv_usec); ++ ++ /* Get the median interval value. */ ++ median = delay_get_median(cmd->tmp_pool, rownum, interval); ++ ++ /* Add the interval to the table. Only allow a single session to ++ * add a portion of the cache size, to prevent a single client from ++ * poisoning the cache. ++ */ ++ if (delay_nuser < (DELAY_NVALUES / DELAY_SESS_NVALUES)) { ++ pr_log_debug(DEBUG10, MOD_DELAY_VERSION ": adding %ld usecs to USER row", ++ interval); ++ delay_table_add_interval(rownum, interval); ++ delay_nuser++; ++ ++ } else ++ /* Generate an event, in case a module (i.e. mod_ban) might want ++ * to do something appropriate to such an ill-behaved client. ++ */ ++ pr_event_generate("mod_delay.max-user", session.c); ++ ++ /* Done with the table. */ ++ delay_table_unlock(rownum); ++ if (delay_table_unload(FALSE) < 0) { ++ pr_log_pri(PR_LOG_WARNING, MOD_DELAY_VERSION ++ "warning: unable to unload DelayTable '%s' from memory: %s", ++ delay_tab.dt_path, strerror(errno)); ++ } ++ ++ /* If the current interval is less than the median interval, we ++ * need to delay ourselves a little. ++ */ ++ if (interval < median) ++ delay_delay(median - interval); ++ ++ return DECLINED(cmd); ++} ++ ++MODRET delay_pre_user(cmd_rec *cmd) { ++ if (!delay_engine) ++ return DECLINED(cmd); ++ ++ gettimeofday(&delay_tv, NULL); ++ return DECLINED(cmd); ++} ++ ++/* Event handlers ++ */ ++ ++static void delay_exit_ev(const void *event_data, void *user_data) { ++ pr_fh_t *fh; ++ ++ if (!delay_engine) ++ return; ++ ++ /* Write out the DelayTable to the filesystem, thus updating the ++ * file metadata. ++ */ ++ ++ PRIVS_ROOT ++ fh = pr_fsio_open(delay_tab.dt_path, O_RDWR); ++ PRIVS_RELINQUISH ++ ++ if (!fh) { ++ pr_log_pri(PR_LOG_WARNING, MOD_DELAY_VERSION ++ ": warning: unable to open DelayTable '%s': %s", delay_tab.dt_path, ++ strerror(errno)); ++ return; ++ } ++ ++ delay_tab.dt_fd = fh->fh_fd; ++ delay_tab.dt_data = NULL; ++ ++ /* Load the DelayTable into memory. */ ++ if (delay_table_load(TRUE) < 0) { ++ pr_log_pri(PR_LOG_WARNING, MOD_DELAY_VERSION ++ "warning: unable to load DelayTable '%s' into memory: %s", ++ delay_tab.dt_path, strerror(errno)); ++ pr_fsio_close(fh); ++ return; ++ } ++ ++ if (pr_fsio_write(fh, delay_tab.dt_data, delay_tab.dt_size) < 0) ++ pr_log_pri(PR_LOG_WARNING, MOD_DELAY_VERSION ++ ": warning: error updating DelayTable '%s': %s", delay_tab.dt_path, ++ strerror(errno)); ++ ++ /* Unload the DelayTable from memory. */ ++ if (delay_table_unload(TRUE) < 0) { ++ pr_log_pri(PR_LOG_WARNING, MOD_DELAY_VERSION ++ ": warning: error unloading DelayTable '%s' from memory: %s", ++ delay_tab.dt_path, strerror(errno)); ++ } ++ ++ if (pr_fsio_close(fh) < 0) ++ pr_log_pri(PR_LOG_WARNING, MOD_DELAY_VERSION ++ ": warning: error writing DelayTable '%s': %s", delay_tab.dt_path, ++ strerror(errno)); ++ ++ return; ++} ++ ++static void delay_postparse_ev(const void *event_data, void *user_data) { ++ config_rec *c; ++ ++ c = find_config(main_server->conf, CONF_PARAM, "DelayEngine", FALSE); ++ if (c && *((unsigned int *) c->argv[0]) == FALSE) ++ delay_engine = FALSE; ++ ++ if (!delay_engine) ++ return; ++ ++ c = find_config(main_server->conf, CONF_PARAM, "DelayTable", FALSE); ++ if (c) ++ delay_tab.dt_path = c->argv[0]; ++ ++ (void) delay_table_init(); ++ return; ++} ++ ++#define PR_RUN_DIR "/var/run/proftpd" ++ ++ ++/* Initialization functions ++ */ ++ ++static int delay_init(void) { ++ delay_tab.dt_path = PR_RUN_DIR "/proftpd.delay"; ++ delay_tab.dt_data = NULL; ++ ++ pr_event_register(&delay_module, "core.exit", delay_exit_ev, NULL); ++ pr_event_register(&delay_module, "core.postparse", delay_postparse_ev, NULL); ++ return 0; ++} ++ ++static int delay_sess_init(void) { ++ pr_fh_t *fh; ++ config_rec *c; ++ ++ pr_event_unregister(&delay_module, "core.exit", delay_exit_ev); ++ ++ if (!delay_engine) ++ return 0; ++ ++ /* Look up DelayEngine again, as it may have been disabled in an ++ * section. ++ */ ++ c = find_config(main_server->conf, CONF_PARAM, "DelayEngine", FALSE); ++ if (c && *((unsigned int *) c->argv[0]) == FALSE) ++ delay_engine = FALSE; ++ ++ if (!delay_engine) ++ return 0; ++ ++ delay_nuser = 0; ++ delay_npass = 0; ++ ++ pr_log_debug(DEBUG6, MOD_DELAY_VERSION ": opening DelayTable '%s'", ++ delay_tab.dt_path); ++ ++ PRIVS_ROOT ++ fh = pr_fsio_open(delay_tab.dt_path, O_RDWR); ++ PRIVS_RELINQUISH ++ ++ if (!fh) { ++ pr_log_pri(PR_LOG_WARNING, MOD_DELAY_VERSION ++ ": warning: unable to open DelayTable '%s': %s", delay_tab.dt_path, ++ strerror(errno)); ++ delay_engine = FALSE; ++ return 0; ++ } ++ ++ delay_tab.dt_fd = fh->fh_fd; ++ delay_tab.dt_data = NULL; ++ ++ return 0; ++} ++ ++/* Module API tables ++ */ ++ ++static conftable delay_conftab[] = { ++ { "DelayEngine", set_delayengine, NULL }, ++ { "DelayTable", set_delaytable, NULL }, ++ { NULL } ++}; ++ ++static cmdtable delay_cmdtab[] = { ++ { PRE_CMD, C_PASS, G_NONE, delay_pre_pass, FALSE, FALSE }, ++ { POST_CMD, C_PASS, G_NONE, delay_post_pass, FALSE, FALSE }, ++ { POST_CMD_ERR, C_PASS, G_NONE, delay_post_pass, FALSE, FALSE }, ++ { PRE_CMD, C_USER, G_NONE, delay_pre_user, FALSE, FALSE }, ++ { POST_CMD, C_USER, G_NONE, delay_post_user, FALSE, FALSE }, ++ { POST_CMD_ERR, C_USER, G_NONE, delay_post_user, FALSE, FALSE }, ++ { 0, NULL } ++}; ++ ++module delay_module = { ++ NULL, NULL, ++ ++ /* Module API version 2.0 */ ++ 0x20, ++ ++ /* Module name */ ++ "delay", ++ ++ /* Module configuration handler table */ ++ delay_conftab, ++ ++ /* Module command handler table */ ++ delay_cmdtab, ++ ++ /* Module authentication handler table */ ++ NULL, ++ ++ /* Module initialization function */ ++ delay_init, ++ ++ /* Session initialization function */ ++ delay_sess_init, ++ ++ /* Module version */ ++ MOD_DELAY_VERSION ++}; +diff -ruN proftpd-1.2.10-old/contrib/mod_delay.html proftpd-1.2.10/contrib/mod_delay.html +--- proftpd-1.2.10-old/contrib/mod_delay.html 1970-01-01 01:00:00.000000000 +0100 ++++ proftpd-1.2.10/contrib/mod_delay.html 2005-06-30 10:16:53.000000000 +0200 +@@ -0,0 +1,152 @@ ++ ++ ++ ++ ++ ++ProFTPD module mod_delay ++ ++ ++ ++ ++
++
++

ProFTPD module mod_delay

++
++

++ ++

++The mod_delay module is designed to make a certain type of ++information leak, known as a "timing attack", harder. ++ ++

++When proftpd processes the USER and PASS ++FTP commands from a client, it has to perform checks against configured ++ACLs, look up user and group information, etc. These checks are not done ++if the given username is known to not exist for the server, in order to ++not tie up system resources needlessly. However, this does mean that more ++work is done when handling "good" users than when handling ++"bad" users. This difference can be detected in the time it takes ++for proftpd to send a response to the USER and ++PASS commands. This means it is possible for an attacker ++to look for these statistical timing differences, and determine which ++users are "good" and which are "bad". From there, ++a determined attacker can focus their attention on the known good usernames. ++Note that the timings will vary depending on server load, number of ++users in the user base, type of storage of user data (e.g. ++LDAP directories, SQL tables, RADIUS servers, flat files, etc). ++ ++

++The mod_delay module attempts to prevent such timing differences ++by keeping track of the time taken to process the USER and ++PASS commands. It does this for the most recent ++USER and PASS commands. The timing data are ++stored in the module's DelayTable. If the module detects ++that proftpd has not taken enough time to handle one of these ++commands, compared to its past response times, a small delay will be added ++to the response cycle. The amount of delay is determined by the difference ++between the current time spent handling the command and the median time ++spent handling the same command in the past. ++ ++

++This module is contained in the mod_delay.c file for ProFTPD ++1.2.10rc1 and later, and is not compiled by default. Installation instructions ++are discussed here. ++ ++

++The most current version of mod_delay can be found at: ++

++  http://www.castaglia.org/proftpd/
++
++ ++

Author

++

++Please contact TJ Saunders <tj at castaglia.org> with any ++questions, concerns, or suggestions regarding this module. ++ ++

Thanks

++

++2004-10-18: Thanks to Michael Renner for testing out various versions ++of the module as it was developed. ++ ++

Directives

++ ++ ++
++

DelayEngine

++Syntax: DelayEngine on|off
++Default: DelayEngine on
++Context: "server config"
++Module: mod_delay
++Compatibility: 1.2.10rc1 and later ++ ++

++The DelayEngine directive enables or disables the module's ++runtime delaying calculations. If it is set to off this module ++does no delaying. Use this directive to disable the module. ++ ++

++Example: ++

++  <IfModule mod_delay.c>
++    DelayEngine off
++  </IfModule>
++
++ ++

++

DelayTable

++Syntax: DelayTable path
++Default: DelayTable var/proftpd/proftpd.delay
++Context: "server config"
++Module: mod_delay
++Compatibility: 1.2.10rc1 and later ++ ++

++The DelayTable directive configures a path to a file ++that mod_delay uses for storing its timing data. The given ++path must be an absolute path. It is recommended that this file ++not be on an NFS mounted partition. ++ ++

++Note that timing data is kept across daemon stop/starts. When new ++<VirtualHost>s are added to the configuration, though, ++mod_delay will detect that it does not have a suitable ++DelayTable for the new configuration, and will clear all ++stored data. ++ ++

++


++

Installation

++To install mod_delay, copy the mod_delay.c file ++into: ++
++  proftpd-dir/contrib/
++
++after unpacking the latest proftpd-1.2.x source code. Then follow the ++usual steps for using third-party modules in proftpd: ++
++  ./configure --with-modules=mod_delay
++  make
++  make install
++
++ ++

++



++ ++Author: $Author: tj $
++Last Updated: $Date: 2004/10/19 03:41:18 $
++ ++

++ ++ ++© Copyright 2004 TJ Saunders
++ All Rights Reserved
++
++ ++

++ ++ ++ ++ --- proftpd-1.2.10.orig/debian/patches/06.man.diff +++ proftpd-1.2.10/debian/patches/06.man.diff @@ -0,0 +1,22 @@ +diff -ruN proftpd-1.2.10-old/Makefile.in proftpd-1.2.10/Makefile.in +--- proftpd-1.2.10-old/Makefile.in 2004-02-13 00:46:54.000000000 +0100 ++++ proftpd-1.2.10/Makefile.in 2004-09-14 23:02:48.000000000 +0200 +@@ -98,7 +98,8 @@ + $(DESTDIR)$(sysconfdir)/proftpd.conf ; \ + fi + +-install-man: $(DESTDIR)$(mandir) $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man8 ++install-man-proftpd: $(DESTDIR)$(mandir) $(DESTDIR)$(mandir)/man8 ++install-man-utils: $(DESTDIR)$(mandir) $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man8 + $(INSTALL_MAN) $(top_srcdir)/src/ftpdctl.8 $(DESTDIR)$(mandir)/man8 + $(INSTALL_MAN) $(top_srcdir)/src/proftpd.8 $(DESTDIR)$(mandir)/man8 + $(INSTALL_MAN) $(top_srcdir)/utils/ftpshut.8 $(DESTDIR)$(mandir)/man8 +@@ -107,6 +108,8 @@ + $(INSTALL_MAN) $(top_srcdir)/utils/ftpwho.1 $(DESTDIR)$(mandir)/man1 + $(INSTALL_MAN) $(top_srcdir)/src/xferlog.5 $(DESTDIR)$(mandir)/man5 + ++install-man: install-man-proftpd install-man-utils ++ + install-all: install-proftpd install-utils install-conf install-man + + install: all install-all --- proftpd-1.2.10.orig/debian/patches/21.sendfile_with_large_files.diff +++ proftpd-1.2.10/debian/patches/21.sendfile_with_large_files.diff @@ -0,0 +1,11689 @@ +diff -ruN proftpd-1.2.10-old/config.h.in proftpd-1.2.10/config.h.in +--- proftpd-1.2.10-old/config.h.in 2004-05-26 04:15:35.000000000 +0200 ++++ proftpd-1.2.10/config.h.in 2005-05-04 14:37:59.051199880 +0200 +@@ -204,6 +204,9 @@ + /* The number of bytes in an off_t. */ + #undef SIZEOF_OFF_T + ++/* The number of bytes in a size_t. */ ++#undef SIZEOF_SIZE_T ++ + /* Define if you have the bcopy function. */ + #undef HAVE_BCOPY + +diff -ruN proftpd-1.2.10-old/configure proftpd-1.2.10/configure +--- proftpd-1.2.10-old/configure 2004-05-26 04:17:24.000000000 +0200 ++++ proftpd-1.2.10/configure 2005-05-04 14:37:59.114190304 +0200 +@@ -1,9 +1,8 @@ + #! /bin/sh + # Guess values for system-dependent variables and create Makefiles. +-# Generated by GNU Autoconf 2.57. ++# Generated by GNU Autoconf 2.59. + # +-# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 +-# Free Software Foundation, Inc. ++# Copyright (C) 2003 Free Software Foundation, Inc. + # This configure script is free software; the Free Software Foundation + # gives unlimited permission to copy, distribute and modify it. + ## --------------------- ## +@@ -20,9 +19,10 @@ + elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix + fi ++DUALCASE=1; export DUALCASE # for MKS sh + + # Support unset when possible. +-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then ++if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset + else + as_unset=false +@@ -41,7 +41,7 @@ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME + do +- if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then ++ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var +@@ -218,16 +218,17 @@ + if mkdir -p . 2>/dev/null; then + as_mkdir_p=: + else ++ test -d ./-p && rmdir ./-p + as_mkdir_p=false + fi + + as_executable_p="test -f" + + # Sed expression to map a string onto a valid CPP name. +-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" ++as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + + # Sed expression to map a string onto a valid variable name. +-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" ++as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + + # IFS +@@ -667,7 +668,7 @@ + + # Be sure to have absolute paths. + for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ +- localstatedir libdir includedir oldincludedir infodir mandir ++ localstatedir libdir includedir oldincludedir infodir mandir + do + eval ac_val=$`echo $ac_var` + case $ac_val in +@@ -707,10 +708,10 @@ + # Try the directory containing this script, then its parent. + ac_confdir=`(dirname "$0") 2>/dev/null || + $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X"$0" : 'X\(//\)[^/]' \| \ +- X"$0" : 'X\(//\)$' \| \ +- X"$0" : 'X\(/\)' \| \ +- . : '\(.\)' 2>/dev/null || ++ X"$0" : 'X\(//\)[^/]' \| \ ++ X"$0" : 'X\(//\)$' \| \ ++ X"$0" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || + echo X"$0" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } +@@ -806,9 +807,9 @@ + cat <<_ACEOF + Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX +- [$ac_default_prefix] ++ [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX +- [PREFIX] ++ [PREFIX] + + By default, \`make install' will install all the files in + \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +@@ -989,12 +990,45 @@ + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; + esac +-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be +-# absolute. +-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` +-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` +-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` ++ ++# Do not use `cd foo && pwd` to compute absolute paths, because ++# the directories may not exist. ++case `pwd` in ++.) ac_abs_builddir="$ac_dir";; ++*) ++ case "$ac_dir" in ++ .) ac_abs_builddir=`pwd`;; ++ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; ++ *) ac_abs_builddir=`pwd`/"$ac_dir";; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_builddir=${ac_top_builddir}.;; ++*) ++ case ${ac_top_builddir}. in ++ .) ac_abs_top_builddir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; ++ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_srcdir=$ac_srcdir;; ++*) ++ case $ac_srcdir in ++ .) ac_abs_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; ++ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_srcdir=$ac_top_srcdir;; ++*) ++ case $ac_top_srcdir in ++ .) ac_abs_top_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; ++ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; ++ esac;; ++esac + + cd $ac_dir + # Check for guested configure; otherwise get Cygnus style configure. +@@ -1005,13 +1039,13 @@ + echo + $SHELL $ac_srcdir/configure --help=recursive + elif test -f $ac_srcdir/configure.ac || +- test -f $ac_srcdir/configure.in; then ++ test -f $ac_srcdir/configure.in; then + echo + $ac_configure --help + else + echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi +- cd $ac_popdir ++ cd "$ac_popdir" + done + fi + +@@ -1019,8 +1053,7 @@ + if $ac_init_version; then + cat <<\_ACEOF + +-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 +-Free Software Foundation, Inc. ++Copyright (C) 2003 Free Software Foundation, Inc. + This configure script is free software; the Free Software Foundation + gives unlimited permission to copy, distribute and modify it. + _ACEOF +@@ -1032,7 +1065,7 @@ + running configure, to aid debugging if configure makes a mistake. + + It was created by $as_me, which was +-generated by GNU Autoconf 2.57. Invocation command line was ++generated by GNU Autoconf 2.59. Invocation command line was + + $ $0 $@ + +@@ -1109,19 +1142,19 @@ + 2) + ac_configure_args1="$ac_configure_args1 '$ac_arg'" + if test $ac_must_keep_next = true; then +- ac_must_keep_next=false # Got value, back to normal. ++ ac_must_keep_next=false # Got value, back to normal. + else +- case $ac_arg in +- *=* | --config-cache | -C | -disable-* | --disable-* \ +- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ +- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ +- | -with-* | --with-* | -without-* | --without-* | --x) +- case "$ac_configure_args0 " in +- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; +- esac +- ;; +- -* ) ac_must_keep_next=true ;; +- esac ++ case $ac_arg in ++ *=* | --config-cache | -C | -disable-* | --disable-* \ ++ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ ++ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ ++ | -with-* | --with-* | -without-* | --without-* | --x) ++ case "$ac_configure_args0 " in ++ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; ++ esac ++ ;; ++ -* ) ac_must_keep_next=true ;; ++ esac + fi + ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" + # Get rid of the leading space. +@@ -1155,12 +1188,12 @@ + case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in + *ac_space=\ *) + sed -n \ +- "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; +- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ++ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; ++ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" + ;; + *) + sed -n \ +- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ++ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; + } +@@ -1189,7 +1222,7 @@ + for ac_var in $ac_subst_files + do + eval ac_val=$`echo $ac_var` +- echo "$ac_var='"'"'$ac_val'"'"'" ++ echo "$ac_var='"'"'$ac_val'"'"'" + done | sort + echo + fi +@@ -1208,7 +1241,7 @@ + echo "$as_me: caught signal $ac_signal" + echo "$as_me: exit $exit_status" + } >&5 +- rm -f core core.* *.core && ++ rm -f core *.core && + rm -rf conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status + ' 0 +@@ -1288,7 +1321,7 @@ + # value. + ac_cache_corrupted=false + for ac_var in `(set) 2>&1 | +- sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do ++ sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val="\$ac_cv_env_${ac_var}_value" +@@ -1305,13 +1338,13 @@ + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then +- { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 ++ { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 + echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} +- { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 ++ { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 + echo "$as_me: former value: $ac_old_val" >&2;} +- { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 ++ { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 + echo "$as_me: current value: $ac_new_val" >&2;} +- ac_cache_corrupted=: ++ ac_cache_corrupted=: + fi;; + esac + # Pass precious variables to config.status. +@@ -1820,7 +1853,6 @@ + (exit $ac_status); } + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -1840,8 +1872,8 @@ + # Try to create an executable without -o first, disregard a.out. + # It will help us diagnose broken compilers, and finding out an intuition + # of exeext. +-echo "$as_me:$LINENO: checking for C compiler default output" >&5 +-echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6 ++echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 ++echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 + ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 + (eval $ac_link_default) 2>&5 +@@ -1861,23 +1893,23 @@ + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) +- ;; ++ ;; + conftest.$ac_ext ) +- # This is the source file. +- ;; ++ # This is the source file. ++ ;; + [ab].out ) +- # We found the default executable, but exeext='' is most +- # certainly right. +- break;; ++ # We found the default executable, but exeext='' is most ++ # certainly right. ++ break;; + *.* ) +- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` +- # FIXME: I believe we export ac_cv_exeext for Libtool, +- # but it would be cool to find out if it's true. Does anybody +- # maintain Libtool? --akim. +- export ac_cv_exeext +- break;; ++ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` ++ # FIXME: I believe we export ac_cv_exeext for Libtool, ++ # but it would be cool to find out if it's true. Does anybody ++ # maintain Libtool? --akim. ++ export ac_cv_exeext ++ break;; + * ) +- break;; ++ break;; + esac + done + else +@@ -1951,8 +1983,8 @@ + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` +- export ac_cv_exeext +- break;; ++ export ac_cv_exeext ++ break;; + * ) break;; + esac + done +@@ -1977,7 +2009,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -2028,7 +2059,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -2048,11 +2078,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -2065,7 +2104,7 @@ + + ac_compiler_gnu=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_c_compiler_gnu=$ac_compiler_gnu + + fi +@@ -2081,7 +2120,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -2098,11 +2136,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -2115,7 +2162,7 @@ + + ac_cv_prog_cc_g=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 + echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 +@@ -2142,7 +2189,6 @@ + ac_cv_prog_cc_stdc=no + ac_save_CC=$CC + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -2170,6 +2216,16 @@ + va_end (v); + return s; + } ++ ++/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has ++ function prototypes and stuff, but not '\xHH' hex character constants. ++ These don't provoke an error unfortunately, instead are silently treated ++ as 'x'. The following induces an error, until -std1 is added to get ++ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an ++ array size at least. It's necessary to write '\x00'==0 to get something ++ that's true only with -std1. */ ++int osf4_cc_array ['\x00' == 0 ? 1 : -1]; ++ + int test (int i, double x); + struct s1 {int (*f) (int a);}; + struct s2 {int (*f) (double a);}; +@@ -2196,11 +2252,20 @@ + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -2213,7 +2278,7 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext ++rm -f conftest.err conftest.$ac_objext + done + rm -f conftest.$ac_ext conftest.$ac_objext + CC=$ac_save_CC +@@ -2241,19 +2306,27 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + for ac_declaration in \ +- ''\ +- '#include ' \ ++ '' \ + 'extern "C" void std::exit (int) throw (); using std::exit;' \ + 'extern "C" void std::exit (int); using std::exit;' \ + 'extern "C" void exit (int) throw ();' \ +@@ -2261,14 +2334,13 @@ + 'void exit (int);' + do + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ +-#include + $ac_declaration ++#include + int + main () + { +@@ -2279,11 +2351,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -2296,9 +2377,8 @@ + + continue + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -2315,11 +2395,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -2331,7 +2420,7 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done + rm -f conftest* + if test -n "$ac_declaration"; then +@@ -2345,7 +2434,7 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +@@ -2354,7 +2443,7 @@ + + echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 + echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 +-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` ++set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` + if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +@@ -2392,6 +2481,7 @@ + # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag + # AFS /usr/afsws/bin/install, which mishandles nonexistent args + # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" ++# OS/2's system install, which has a completely different semantic + # ./install, which can be erroneously created by make from ./install.sh. + echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 + echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 +@@ -2408,6 +2498,7 @@ + case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ++ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. +@@ -2415,20 +2506,20 @@ + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do +- if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then +- if test $ac_prog = install && +- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then +- # AIX install. It has an incompatible calling convention. +- : +- elif test $ac_prog = install && +- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then +- # program-specific install script used by HP pwplus--don't use. +- : +- else +- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" +- break 3 +- fi +- fi ++ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then ++ if test $ac_prog = install && ++ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ++ # AIX install. It has an incompatible calling convention. ++ : ++ elif test $ac_prog = install && ++ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ++ # program-specific install script used by HP pwplus--don't use. ++ : ++ else ++ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" ++ break 3 ++ fi ++ fi + done + done + ;; +@@ -2558,8 +2649,7 @@ + while :; do + # IRIX 6.2 and later do not support large files by default, + # so use the C compiler's -n32 option if that helps. +- cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" ++ cat >conftest.$ac_ext <<_ACEOF + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -2584,11 +2674,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -2600,15 +2699,24 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext ++rm -f conftest.err conftest.$ac_objext + CC="$CC -n32" + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -2620,8 +2728,8 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext +- break ++rm -f conftest.err conftest.$ac_objext ++ break + done + CC=$ac_save_CC + rm -f conftest.$ac_ext +@@ -2641,7 +2749,6 @@ + while :; do + ac_cv_sys_file_offset_bits=no + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -2666,11 +2773,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -2682,9 +2798,8 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -2710,11 +2825,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -2726,7 +2850,7 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + break + done + fi +@@ -2748,7 +2872,6 @@ + while :; do + ac_cv_sys_large_files=no + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -2773,11 +2896,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -2789,9 +2921,8 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -2817,11 +2948,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -2833,7 +2973,7 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + break + done + fi +@@ -2871,7 +3011,6 @@ + echo $ECHO_N "checking whether the C compiler accepts -malign-jumps -malign-loops -malign-functions... $ECHO_C" >&6 + CFLAGS="-malign-jumps=2 -malign-loops=2 -malign-functions=2" + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -2888,11 +3027,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -2907,14 +3055,13 @@ + echo "$as_me:$LINENO: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + + echo "$as_me:$LINENO: checking whether the C compiler accepts -Wall" >&5 + echo $ECHO_N "checking whether the C compiler accepts -Wall... $ECHO_C" >&6 + CFLAGS="-Wall" + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -2931,11 +3078,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -2950,7 +3106,7 @@ + echo "$as_me:$LINENO: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + CFLAGS="$fullCFLAGS" + fi +@@ -2992,21 +3148,28 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -3037,11 +3200,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -3054,7 +3226,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -3081,21 +3254,28 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -3126,11 +3306,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -3143,7 +3332,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -3389,7 +3579,6 @@ + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -3400,7 +3589,7 @@ + #else + # include + #endif +- Syntax error ++ Syntax error + _ACEOF + if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +@@ -3412,6 +3601,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -3432,7 +3622,6 @@ + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -3450,6 +3639,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -3496,7 +3686,6 @@ + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -3507,7 +3696,7 @@ + #else + # include + #endif +- Syntax error ++ Syntax error + _ACEOF + if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +@@ -3519,6 +3708,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -3539,7 +3729,6 @@ + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -3557,6 +3746,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -3617,7 +3807,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -3638,11 +3827,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -3655,12 +3853,11 @@ + + ac_cv_header_stdc=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -3682,7 +3879,6 @@ + if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -3707,7 +3903,6 @@ + : + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -3719,9 +3914,9 @@ + # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) + #else + # define ISLOWER(c) \ +- (('a' <= (c) && (c) <= 'i') \ +- || ('j' <= (c) && (c) <= 'r') \ +- || ('s' <= (c) && (c) <= 'z')) ++ (('a' <= (c) && (c) <= 'i') \ ++ || ('j' <= (c) && (c) <= 'r') \ ++ || ('s' <= (c) && (c) <= 'z')) + # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) + #endif + +@@ -3732,7 +3927,7 @@ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) +- || toupper (i) != TOUPPER (i)) ++ || toupper (i) != TOUPPER (i)) + exit(2); + exit (0); + } +@@ -3757,7 +3952,7 @@ + ( exit $ac_status ) + ac_cv_header_stdc=no + fi +-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + fi + fi +@@ -3782,7 +3977,7 @@ + + + for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ +- inttypes.h stdint.h unistd.h ++ inttypes.h stdint.h unistd.h + do + as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` + echo "$as_me:$LINENO: checking for $ac_header" >&5 +@@ -3791,7 +3986,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -3803,11 +3997,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -3820,7 +4023,7 @@ + + eval "$as_ac_Header=no" + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -3859,7 +4062,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -3870,11 +4072,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -3887,7 +4098,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -3895,7 +4106,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -3913,6 +4123,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -3932,33 +4143,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -3969,7 +4179,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -3994,7 +4204,6 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lsecurity $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -4018,11 +4227,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -4035,7 +4253,8 @@ + + ac_cv_lib_security_set_auth_parameters=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_security_set_auth_parameters" >&5 +@@ -4059,21 +4278,28 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -4104,11 +4330,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -4121,7 +4356,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -4143,7 +4379,6 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lsec $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -4167,11 +4402,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -4184,7 +4428,8 @@ + + ac_cv_lib_sec_getprpwent=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_sec_getprpwent" >&5 +@@ -4208,21 +4453,28 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -4253,11 +4505,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -4270,7 +4531,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -4551,7 +4813,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -4568,11 +4829,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -4585,7 +4855,8 @@ + + pr_cv_lib_standalone_crypt="no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $pr_cv_lib_standalone_crypt" >&5 + echo "${ECHO_T}$pr_cv_lib_standalone_crypt" >&6 +@@ -4600,7 +4871,6 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lcrypt $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -4624,11 +4894,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -4641,7 +4920,8 @@ + + ac_cv_lib_crypt_crypt=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_crypt_crypt" >&5 +@@ -4663,7 +4943,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -4680,11 +4959,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -4697,7 +4985,8 @@ + + pr_cv_lib_standalone_gethost="no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $pr_cv_lib_standalone_gethost" >&5 + echo "${ECHO_T}$pr_cv_lib_standalone_gethost" >&6 +@@ -4712,7 +5001,6 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lresolv $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -4736,24 +5024,34 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- ac_cv_lib_resolv_gethostbyname=yes +-else ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_resolv_gethostbyname=yes ++else + echo "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_resolv_gethostbyname=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_gethostbyname" >&5 +@@ -4776,7 +5074,6 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lresolv $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -4800,11 +5097,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -4817,7 +5123,8 @@ + + ac_cv_lib_resolv_inet_aton=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_inet_aton" >&5 +@@ -4839,7 +5146,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -4856,11 +5162,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -4873,7 +5188,8 @@ + + pr_cv_lib_standalone_aton="no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $pr_cv_lib_standalone_aton" >&5 + echo "${ECHO_T}$pr_cv_lib_standalone_aton" >&6 +@@ -4888,7 +5204,6 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lbind $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -4912,11 +5227,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -4929,7 +5253,8 @@ + + ac_cv_lib_bind_inet_aton=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_bind_inet_aton" >&5 +@@ -4952,7 +5277,6 @@ + else + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -4969,11 +5293,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -4986,7 +5319,8 @@ + + pr_cv_lib_standalone_nsl="no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $pr_cv_lib_standalone_nsl" >&5 + echo "${ECHO_T}$pr_cv_lib_standalone_nsl" >&6 +@@ -5001,7 +5335,6 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lnsl $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5025,11 +5358,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -5042,7 +5384,8 @@ + + ac_cv_lib_nsl_gethostent=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostent" >&5 +@@ -5064,7 +5407,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5081,11 +5423,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -5098,7 +5449,8 @@ + + pr_cv_lib_standalone_sockets="no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $pr_cv_lib_standalone_sockets" >&5 + echo "${ECHO_T}$pr_cv_lib_standalone_sockets" >&6 +@@ -5113,7 +5465,6 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lsocket $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5137,11 +5488,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -5154,7 +5514,8 @@ + + ac_cv_lib_socket_bind=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_socket_bind" >&5 +@@ -5176,7 +5537,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5193,11 +5553,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -5210,7 +5579,8 @@ + + pr_cv_var__pw_stayopen="no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $pr_cv_var__pw_stayopen" >&5 + echo "${ECHO_T}$pr_cv_var__pw_stayopen" >&6 +@@ -5239,7 +5609,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5250,11 +5619,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -5267,7 +5645,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -5275,7 +5653,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5293,6 +5670,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -5312,33 +5690,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -5349,7 +5726,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -5381,7 +5758,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5392,11 +5768,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -5409,7 +5794,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -5417,7 +5802,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5435,6 +5819,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -5454,33 +5839,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -5491,7 +5875,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -5524,7 +5908,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5535,11 +5918,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -5552,7 +5944,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -5560,7 +5952,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5578,6 +5969,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -5597,33 +5989,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -5634,7 +6025,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -5653,7 +6044,6 @@ + ac_func_search_save_LIBS=$LIBS + ac_cv_search_getprpwnam=no + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5677,11 +6067,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -5693,12 +6092,12 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + if test "$ac_cv_search_getprpwnam" = no; then + for ac_lib in sec; do + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5722,11 +6121,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -5739,7 +6147,8 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + done + fi + LIBS=$ac_func_search_save_LIBS +@@ -5757,7 +6166,6 @@ + echo "$as_me:$LINENO: checking for hpsecurity.h workaround" >&5 + echo $ECHO_N "checking for hpsecurity.h workaround... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5778,11 +6186,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -5801,7 +6218,6 @@ + ac_func_search_save_LIBS=$LIBS + ac_cv_search_getprpwnam=no + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5825,11 +6241,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -5841,12 +6266,12 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + if test "$ac_cv_search_getprpwnam" = no; then + for ac_lib in sec; do + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5870,11 +6295,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -5887,7 +6321,8 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + done + fi + LIBS=$ac_func_search_save_LIBS +@@ -5911,7 +6346,7 @@ + echo "${ECHO_T}no" >&6 + + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + fi + +@@ -5951,7 +6386,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -5971,11 +6405,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -5988,7 +6431,7 @@ + + eval "$as_ac_Header=no" + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -6011,7 +6454,6 @@ + ac_func_search_save_LIBS=$LIBS + ac_cv_search_opendir=no + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6035,11 +6477,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6051,12 +6502,12 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + if test "$ac_cv_search_opendir" = no; then + for ac_lib in dir; do + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6080,11 +6531,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6097,7 +6557,8 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + done + fi + LIBS=$ac_func_search_save_LIBS +@@ -6118,7 +6579,6 @@ + ac_func_search_save_LIBS=$LIBS + ac_cv_search_opendir=no + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6142,11 +6602,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6158,12 +6627,12 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + if test "$ac_cv_search_opendir" = no; then + for ac_lib in x; do + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6187,11 +6656,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6204,7 +6682,8 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + done + fi + LIBS=$ac_func_search_save_LIBS +@@ -6224,7 +6703,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6245,11 +6723,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6262,12 +6749,11 @@ + + ac_cv_header_stdc=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6289,7 +6775,6 @@ + if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6314,7 +6799,6 @@ + : + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6326,9 +6810,9 @@ + # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) + #else + # define ISLOWER(c) \ +- (('a' <= (c) && (c) <= 'i') \ +- || ('j' <= (c) && (c) <= 'r') \ +- || ('s' <= (c) && (c) <= 'z')) ++ (('a' <= (c) && (c) <= 'i') \ ++ || ('j' <= (c) && (c) <= 'r') \ ++ || ('s' <= (c) && (c) <= 'z')) + # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) + #endif + +@@ -6339,7 +6823,7 @@ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) +- || toupper (i) != TOUPPER (i)) ++ || toupper (i) != TOUPPER (i)) + exit(2); + exit (0); + } +@@ -6364,7 +6848,7 @@ + ( exit $ac_status ) + ac_cv_header_stdc=no + fi +-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + fi + fi +@@ -6384,7 +6868,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6411,11 +6894,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6428,7 +6920,7 @@ + + ac_cv_header_sys_wait_h=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5 + echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6 +@@ -6461,7 +6953,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6472,11 +6963,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6489,7 +6989,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -6497,7 +6997,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6515,6 +7014,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -6534,33 +7034,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -6571,7 +7070,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -6604,7 +7103,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6615,11 +7113,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6632,7 +7139,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -6640,7 +7147,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6658,6 +7164,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -6677,33 +7184,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -6714,7 +7220,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -6736,7 +7242,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6756,11 +7261,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6772,7 +7286,6 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6792,26 +7305,35 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- ac_cv_member_struct_spwd_sp_warn=yes ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_member_struct_spwd_sp_warn=yes + else + echo "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_member_struct_spwd_sp_warn=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_member_struct_spwd_sp_warn" >&5 + echo "${ECHO_T}$ac_cv_member_struct_spwd_sp_warn" >&6 +@@ -6828,7 +7350,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6848,11 +7369,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6864,7 +7394,6 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6884,11 +7413,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6901,9 +7439,9 @@ + + ac_cv_member_struct_spwd_sp_inact=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_member_struct_spwd_sp_inact" >&5 + echo "${ECHO_T}$ac_cv_member_struct_spwd_sp_inact" >&6 +@@ -6920,7 +7458,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6940,11 +7477,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6956,7 +7502,6 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -6976,11 +7521,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -6993,9 +7547,9 @@ + + ac_cv_member_struct_spwd_sp_expire=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_member_struct_spwd_sp_expire" >&5 + echo "${ECHO_T}$ac_cv_member_struct_spwd_sp_expire" >&6 +@@ -7033,7 +7587,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -7044,11 +7597,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -7061,7 +7623,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -7069,7 +7631,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -7087,6 +7648,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -7106,33 +7668,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -7143,7 +7704,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -7173,7 +7734,6 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lpam $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -7197,11 +7757,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -7214,7 +7783,8 @@ + + ac_cv_lib_pam_pam_start=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_pam_pam_start" >&5 +@@ -7233,7 +7803,6 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lpam -ldl $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -7257,11 +7826,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -7274,7 +7852,8 @@ + + ac_cv_lib_pam_pam_end=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_pam_pam_end" >&5 +@@ -7313,7 +7892,6 @@ + echo "$as_me:$LINENO: checking linux/capability.h usability" >&5 + echo $ECHO_N "checking linux/capability.h usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -7324,11 +7902,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -7341,7 +7928,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -7349,7 +7936,6 @@ + echo "$as_me:$LINENO: checking linux/capability.h presence" >&5 + echo $ECHO_N "checking linux/capability.h presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -7367,6 +7953,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -7386,33 +7973,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: linux/capability.h: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: linux/capability.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: linux/capability.h: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: linux/capability.h: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: linux/capability.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: linux/capability.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: linux/capability.h: present but cannot be compiled" >&5 + echo "$as_me: WARNING: linux/capability.h: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: linux/capability.h: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: linux/capability.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: linux/capability.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: linux/capability.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: linux/capability.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: linux/capability.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: linux/capability.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: linux/capability.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: linux/capability.h: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: linux/capability.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: linux/capability.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: linux/capability.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -7471,7 +8057,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -7482,11 +8067,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -7499,7 +8093,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -7507,7 +8101,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -7525,6 +8118,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -7544,33 +8138,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -7581,7 +8174,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -7614,7 +8207,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -7625,11 +8217,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -7642,7 +8243,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -7650,7 +8251,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -7668,6 +8268,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -7687,33 +8288,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -7724,7 +8324,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -7759,7 +8359,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -7770,11 +8369,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -7787,7 +8395,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -7795,7 +8403,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -7813,6 +8420,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -7832,33 +8440,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -7869,7 +8476,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -7896,7 +8503,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -7914,11 +8520,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -7931,7 +8546,7 @@ + + eval "$as_ac_Header=no" + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -7963,7 +8578,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -7974,11 +8588,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -7991,7 +8614,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -7999,7 +8622,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -8017,6 +8639,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -8036,33 +8659,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -8073,7 +8695,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -8099,7 +8721,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -8117,11 +8738,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -8134,7 +8764,7 @@ + + eval "$as_ac_Header=no" + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -8158,7 +8788,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -8182,11 +8811,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -8199,7 +8837,7 @@ + + eval "$as_ac_Header=no" + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -8231,7 +8869,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -8242,11 +8879,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -8259,7 +8905,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -8267,7 +8913,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -8285,6 +8930,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -8304,33 +8950,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -8341,7 +8986,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -8377,7 +9022,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -8388,11 +9032,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -8405,7 +9058,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -8413,7 +9066,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -8431,6 +9083,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -8450,33 +9103,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -8487,7 +9139,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -8521,7 +9173,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -8532,11 +9183,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -8549,7 +9209,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -8557,7 +9217,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -8575,6 +9234,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -8594,33 +9254,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -8631,7 +9290,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -8667,7 +9326,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -8678,11 +9336,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -8695,7 +9362,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -8703,7 +9370,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -8721,6 +9387,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -8740,33 +9407,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -8777,7 +9443,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -8810,7 +9476,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -8821,11 +9486,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -8838,7 +9512,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -8846,7 +9520,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -8864,6 +9537,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -8883,33 +9557,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -8920,7 +9593,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -8952,7 +9625,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -8963,11 +9635,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -8980,7 +9661,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -8988,7 +9669,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -9006,6 +9686,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -9025,33 +9706,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes ++ ;; ++ no:yes:* ) ++ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 ++echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 +- ;; +- no:yes ) +- { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -9062,7 +9742,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -9090,7 +9770,6 @@ + echo "$as_me:$LINENO: checking syslog.h usability" >&5 + echo $ECHO_N "checking syslog.h usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -9101,11 +9780,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -9118,7 +9806,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -9126,7 +9814,6 @@ + echo "$as_me:$LINENO: checking syslog.h presence" >&5 + echo $ECHO_N "checking syslog.h presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -9144,6 +9831,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -9163,33 +9851,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: syslog.h: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: syslog.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: syslog.h: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: syslog.h: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: syslog.h: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: syslog.h: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: syslog.h: present but cannot be compiled" >&5 + echo "$as_me: WARNING: syslog.h: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: syslog.h: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: syslog.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: syslog.h: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: syslog.h: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: syslog.h: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: syslog.h: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: syslog.h: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: syslog.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: syslog.h: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: syslog.h: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: syslog.h: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: syslog.h: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -9229,7 +9916,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -9240,11 +9926,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -9257,7 +9952,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -9265,7 +9960,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -9283,6 +9977,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -9302,33 +9997,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -9339,7 +10033,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -9361,7 +10055,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -9424,11 +10117,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -9441,7 +10143,7 @@ + + ac_cv_c_const=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 + echo "${ECHO_T}$ac_cv_c_const" >&6 +@@ -9461,7 +10163,6 @@ + ac_cv_c_inline=no + for ac_kw in inline __inline__ __inline; do + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -9476,11 +10177,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -9492,23 +10202,27 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done + + fi + echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5 + echo "${ECHO_T}$ac_cv_c_inline" >&6 ++ ++ + case $ac_cv_c_inline in + inline | yes) ;; +- no) +-cat >>confdefs.h <<\_ACEOF +-#define inline +-_ACEOF +- ;; +- *) cat >>confdefs.h <<_ACEOF +-#define inline $ac_cv_c_inline ++ *) ++ case $ac_cv_c_inline in ++ no) ac_val=;; ++ *) ac_val=$ac_cv_c_inline;; ++ esac ++ cat >>confdefs.h <<_ACEOF ++#ifndef __cplusplus ++#define inline $ac_val ++#endif + _ACEOF +- ;; ++ ;; + esac + + echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5 +@@ -9517,7 +10231,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -9556,7 +10269,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -9576,11 +10288,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -9593,7 +10314,7 @@ + + ac_cv_type_pid_t=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5 + echo "${ECHO_T}$ac_cv_type_pid_t" >&6 +@@ -9613,7 +10334,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -9633,11 +10353,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -9650,7 +10379,7 @@ + + ac_cv_type_size_t=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 + echo "${ECHO_T}$ac_cv_type_size_t" >&6 +@@ -9670,7 +10399,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -9690,11 +10418,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -9707,7 +10444,7 @@ + + ac_cv_type_mode_t=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_type_mode_t" >&5 + echo "${ECHO_T}$ac_cv_type_mode_t" >&6 +@@ -9727,7 +10464,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -9747,11 +10483,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -9764,7 +10509,7 @@ + + ac_cv_type_off_t=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5 + echo "${ECHO_T}$ac_cv_type_off_t" >&6 +@@ -9787,7 +10532,6 @@ + ac_cv_type_getgroups=cross + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -9810,7 +10554,7 @@ + for (i = 0; i < NGID; i++) + gidset[i] = val.gval; + n = getgroups (sizeof (gidset) / MAX (sizeof (int), sizeof (gid_t)) - 1, +- gidset); ++ gidset); + /* Exit non-zero if getgroups seems to require an array of ints. This + happens when gid_t is short but getgroups modifies an array of ints. */ + exit ((n > 0 && gidset[n] != val.gval) ? 1 : 0); +@@ -9836,11 +10580,10 @@ + ( exit $ac_status ) + ac_cv_type_getgroups=int + fi +-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_type_getgroups = cross; then + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -9874,7 +10617,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -9888,7 +10630,6 @@ + pr_cv_header_timer_t="yes" + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -9925,7 +10666,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -9945,11 +10685,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -9962,7 +10711,7 @@ + + ac_cv_type_short=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_type_short" >&5 + echo "${ECHO_T}$ac_cv_type_short" >&6 +@@ -9980,7 +10729,6 @@ + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -9999,11 +10747,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10012,7 +10769,6 @@ + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -10031,11 +10787,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10047,20 +10812,19 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr $ac_mid + 1` +- if test $ac_lo -le $ac_mid; then +- ac_lo= ac_hi= +- break +- fi +- ac_mid=`expr 2 '*' $ac_mid + 1` ++ if test $ac_lo -le $ac_mid; then ++ ac_lo= ac_hi= ++ break ++ fi ++ ac_mid=`expr 2 '*' $ac_mid + 1` + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done + else + echo "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -10079,11 +10843,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10092,7 +10865,6 @@ + ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -10111,11 +10883,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10127,13 +10908,13 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + ac_hi=`expr '(' $ac_mid ')' - 1` +- if test $ac_mid -le $ac_hi; then +- ac_lo= ac_hi= +- break +- fi +- ac_mid=`expr 2 '*' $ac_mid` ++ if test $ac_mid -le $ac_hi; then ++ ac_lo= ac_hi= ++ break ++ fi ++ ac_mid=`expr 2 '*' $ac_mid` + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done + else + echo "$as_me: failed program was:" >&5 +@@ -10141,14 +10922,13 @@ + + ac_lo= ac_hi= + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + # Binary search between lo and hi bounds. + while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -10167,11 +10947,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10184,7 +10973,7 @@ + + ac_lo=`expr '(' $ac_mid ')' + 1` + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done + case $ac_lo in + ?*) ac_cv_sizeof_short=$ac_lo;; +@@ -10196,14 +10985,11 @@ + esac + else + if test "$cross_compiling" = yes; then +- { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling +-See \`config.log' for more details." >&5 +-echo "$as_me: error: cannot run test program while cross compiling +-See \`config.log' for more details." >&2;} ++ { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5 ++echo "$as_me: error: internal error: not reached in cross-compile" >&2;} + { (exit 1); exit 1; }; } + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -10265,7 +11051,7 @@ + See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + fi +-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + fi + rm -f conftest.val +@@ -10286,7 +11072,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -10306,11 +11091,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10323,7 +11117,7 @@ + + ac_cv_type_int=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5 + echo "${ECHO_T}$ac_cv_type_int" >&6 +@@ -10341,7 +11135,6 @@ + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -10360,11 +11153,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10373,7 +11175,6 @@ + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -10392,11 +11193,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10408,20 +11218,19 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr $ac_mid + 1` +- if test $ac_lo -le $ac_mid; then +- ac_lo= ac_hi= +- break +- fi +- ac_mid=`expr 2 '*' $ac_mid + 1` ++ if test $ac_lo -le $ac_mid; then ++ ac_lo= ac_hi= ++ break ++ fi ++ ac_mid=`expr 2 '*' $ac_mid + 1` + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done + else + echo "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -10440,11 +11249,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10453,7 +11271,6 @@ + ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -10472,11 +11289,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10488,13 +11314,13 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + ac_hi=`expr '(' $ac_mid ')' - 1` +- if test $ac_mid -le $ac_hi; then +- ac_lo= ac_hi= +- break +- fi +- ac_mid=`expr 2 '*' $ac_mid` ++ if test $ac_mid -le $ac_hi; then ++ ac_lo= ac_hi= ++ break ++ fi ++ ac_mid=`expr 2 '*' $ac_mid` + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done + else + echo "$as_me: failed program was:" >&5 +@@ -10502,14 +11328,13 @@ + + ac_lo= ac_hi= + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + # Binary search between lo and hi bounds. + while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -10528,11 +11353,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10545,7 +11379,7 @@ + + ac_lo=`expr '(' $ac_mid ')' + 1` + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done + case $ac_lo in + ?*) ac_cv_sizeof_int=$ac_lo;; +@@ -10557,14 +11391,11 @@ + esac + else + if test "$cross_compiling" = yes; then +- { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling +-See \`config.log' for more details." >&5 +-echo "$as_me: error: cannot run test program while cross compiling +-See \`config.log' for more details." >&2;} ++ { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5 ++echo "$as_me: error: internal error: not reached in cross-compile" >&2;} + { (exit 1); exit 1; }; } + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -10626,7 +11457,7 @@ + See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + fi +-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + fi + rm -f conftest.val +@@ -10647,7 +11478,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -10667,11 +11497,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10684,7 +11523,7 @@ + + ac_cv_type_long=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_type_long" >&5 + echo "${ECHO_T}$ac_cv_type_long" >&6 +@@ -10702,7 +11541,6 @@ + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -10721,11 +11559,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10734,7 +11581,6 @@ + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -10753,11 +11599,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10769,20 +11624,19 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr $ac_mid + 1` +- if test $ac_lo -le $ac_mid; then +- ac_lo= ac_hi= +- break +- fi +- ac_mid=`expr 2 '*' $ac_mid + 1` ++ if test $ac_lo -le $ac_mid; then ++ ac_lo= ac_hi= ++ break ++ fi ++ ac_mid=`expr 2 '*' $ac_mid + 1` + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done + else + echo "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -10801,11 +11655,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10814,7 +11677,6 @@ + ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -10833,11 +11695,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10849,13 +11720,13 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + ac_hi=`expr '(' $ac_mid ')' - 1` +- if test $ac_mid -le $ac_hi; then +- ac_lo= ac_hi= +- break +- fi +- ac_mid=`expr 2 '*' $ac_mid` ++ if test $ac_mid -le $ac_hi; then ++ ac_lo= ac_hi= ++ break ++ fi ++ ac_mid=`expr 2 '*' $ac_mid` + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done + else + echo "$as_me: failed program was:" >&5 +@@ -10863,14 +11734,13 @@ + + ac_lo= ac_hi= + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + # Binary search between lo and hi bounds. + while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -10889,11 +11759,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -10906,7 +11785,7 @@ + + ac_lo=`expr '(' $ac_mid ')' + 1` + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done + case $ac_lo in + ?*) ac_cv_sizeof_long=$ac_lo;; +@@ -10918,14 +11797,11 @@ + esac + else + if test "$cross_compiling" = yes; then +- { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling +-See \`config.log' for more details." >&5 +-echo "$as_me: error: cannot run test program while cross compiling +-See \`config.log' for more details." >&2;} ++ { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5 ++echo "$as_me: error: internal error: not reached in cross-compile" >&2;} + { (exit 1); exit 1; }; } + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -10987,7 +11863,7 @@ + See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + fi +-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + fi + rm -f conftest.val +@@ -11008,7 +11884,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -11028,11 +11903,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11045,7 +11929,7 @@ + + ac_cv_type_long_long=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_type_long_long" >&5 + echo "${ECHO_T}$ac_cv_type_long_long" >&6 +@@ -11063,7 +11947,6 @@ + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -11082,11 +11965,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11095,7 +11987,6 @@ + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -11114,11 +12005,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11130,20 +12030,19 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr $ac_mid + 1` +- if test $ac_lo -le $ac_mid; then +- ac_lo= ac_hi= +- break +- fi +- ac_mid=`expr 2 '*' $ac_mid + 1` ++ if test $ac_lo -le $ac_mid; then ++ ac_lo= ac_hi= ++ break ++ fi ++ ac_mid=`expr 2 '*' $ac_mid + 1` + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done + else + echo "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -11162,11 +12061,426 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_hi=-1 ac_mid=-1 ++ while :; do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (long long))) >= $ac_mid)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_lo=$ac_mid; break ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_hi=`expr '(' $ac_mid ')' - 1` ++ if test $ac_mid -le $ac_hi; then ++ ac_lo= ac_hi= ++ break ++ fi ++ ac_mid=`expr 2 '*' $ac_mid` ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++ done ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_lo= ac_hi= ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++# Binary search between lo and hi bounds. ++while test "x$ac_lo" != "x$ac_hi"; do ++ ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (long long))) <= $ac_mid)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_hi=$ac_mid ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_lo=`expr '(' $ac_mid ')' + 1` ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++done ++case $ac_lo in ++?*) ac_cv_sizeof_long_long=$ac_lo;; ++'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long long), 77 ++See \`config.log' for more details." >&5 ++echo "$as_me: error: cannot compute sizeof (long long), 77 ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; } ;; ++esac ++else ++ if test "$cross_compiling" = yes; then ++ { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5 ++echo "$as_me: error: internal error: not reached in cross-compile" >&2;} ++ { (exit 1); exit 1; }; } ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++long longval () { return (long) (sizeof (long long)); } ++unsigned long ulongval () { return (long) (sizeof (long long)); } ++#include ++#include ++int ++main () ++{ ++ ++ FILE *f = fopen ("conftest.val", "w"); ++ if (! f) ++ exit (1); ++ if (((long) (sizeof (long long))) < 0) ++ { ++ long i = longval (); ++ if (i != ((long) (sizeof (long long)))) ++ exit (1); ++ fprintf (f, "%ld\n", i); ++ } ++ else ++ { ++ unsigned long i = ulongval (); ++ if (i != ((long) (sizeof (long long)))) ++ exit (1); ++ fprintf (f, "%lu\n", i); ++ } ++ exit (ferror (f) || fclose (f) != 0); ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_sizeof_long_long=`cat conftest.val` ++else ++ echo "$as_me: program exited with status $ac_status" >&5 ++echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++( exit $ac_status ) ++{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long long), 77 ++See \`config.log' for more details." >&5 ++echo "$as_me: error: cannot compute sizeof (long long), 77 ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++fi ++fi ++rm -f conftest.val ++else ++ ac_cv_sizeof_long_long=0 ++fi ++fi ++echo "$as_me:$LINENO: result: $ac_cv_sizeof_long_long" >&5 ++echo "${ECHO_T}$ac_cv_sizeof_long_long" >&6 ++cat >>confdefs.h <<_ACEOF ++#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long ++_ACEOF ++ ++ ++echo "$as_me:$LINENO: checking for off_t" >&5 ++echo $ECHO_N "checking for off_t... $ECHO_C" >&6 ++if test "${ac_cv_type_off_t+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++if ((off_t *) 0) ++ return 0; ++if (sizeof (off_t)) ++ return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_type_off_t=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_type_off_t=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5 ++echo "${ECHO_T}$ac_cv_type_off_t" >&6 ++ ++echo "$as_me:$LINENO: checking size of off_t" >&5 ++echo $ECHO_N "checking size of off_t... $ECHO_C" >&6 ++if test "${ac_cv_sizeof_off_t+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test "$ac_cv_type_off_t" = yes; then ++ # The cast to unsigned long works around a bug in the HP C Compiler ++ # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects ++ # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. ++ # This bug is HP SR number 8606223364. ++ if test "$cross_compiling" = yes; then ++ # Depending upon the size, compute the lo and hi bounds. ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (off_t))) >= 0)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_lo=0 ac_mid=0 ++ while :; do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (off_t))) <= $ac_mid)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_hi=$ac_mid; break ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_lo=`expr $ac_mid + 1` ++ if test $ac_lo -le $ac_mid; then ++ ac_lo= ac_hi= ++ break ++ fi ++ ac_mid=`expr 2 '*' $ac_mid + 1` ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++ done ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (off_t))) < 0)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11175,7 +12489,6 @@ + ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -11185,7 +12498,7 @@ + int + main () + { +-static int test_array [1 - 2 * !(((long) (sizeof (long long))) >= $ac_mid)]; ++static int test_array [1 - 2 * !(((long) (sizeof (off_t))) >= $ac_mid)]; + test_array [0] = 0 + + ; +@@ -11194,11 +12507,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11210,13 +12532,13 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + ac_hi=`expr '(' $ac_mid ')' - 1` +- if test $ac_mid -le $ac_hi; then +- ac_lo= ac_hi= +- break +- fi +- ac_mid=`expr 2 '*' $ac_mid` ++ if test $ac_mid -le $ac_hi; then ++ ac_lo= ac_hi= ++ break ++ fi ++ ac_mid=`expr 2 '*' $ac_mid` + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done + else + echo "$as_me: failed program was:" >&5 +@@ -11224,14 +12546,13 @@ + + ac_lo= ac_hi= + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + # Binary search between lo and hi bounds. + while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -11241,7 +12562,7 @@ + int + main () + { +-static int test_array [1 - 2 * !(((long) (sizeof (long long))) <= $ac_mid)]; ++static int test_array [1 - 2 * !(((long) (sizeof (off_t))) <= $ac_mid)]; + test_array [0] = 0 + + ; +@@ -11250,11 +12571,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11267,34 +12597,31 @@ + + ac_lo=`expr '(' $ac_mid ')' + 1` + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done + case $ac_lo in +-?*) ac_cv_sizeof_long_long=$ac_lo;; +-'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long long), 77 ++?*) ac_cv_sizeof_off_t=$ac_lo;; ++'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (off_t), 77 + See \`config.log' for more details." >&5 +-echo "$as_me: error: cannot compute sizeof (long long), 77 ++echo "$as_me: error: cannot compute sizeof (off_t), 77 + See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } ;; + esac + else + if test "$cross_compiling" = yes; then +- { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling +-See \`config.log' for more details." >&5 +-echo "$as_me: error: cannot run test program while cross compiling +-See \`config.log' for more details." >&2;} ++ { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5 ++echo "$as_me: error: internal error: not reached in cross-compile" >&2;} + { (exit 1); exit 1; }; } + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ + $ac_includes_default +-long longval () { return (long) (sizeof (long long)); } +-unsigned long ulongval () { return (long) (sizeof (long long)); } ++long longval () { return (long) (sizeof (off_t)); } ++unsigned long ulongval () { return (long) (sizeof (off_t)); } + #include + #include + int +@@ -11304,17 +12631,17 @@ + FILE *f = fopen ("conftest.val", "w"); + if (! f) + exit (1); +- if (((long) (sizeof (long long))) < 0) ++ if (((long) (sizeof (off_t))) < 0) + { + long i = longval (); +- if (i != ((long) (sizeof (long long)))) ++ if (i != ((long) (sizeof (off_t)))) + exit (1); + fprintf (f, "%ld\n", i); + } + else + { + unsigned long i = ulongval (); +- if (i != ((long) (sizeof (long long)))) ++ if (i != ((long) (sizeof (off_t)))) + exit (1); + fprintf (f, "%lu\n", i); + } +@@ -11335,41 +12662,40 @@ + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_sizeof_long_long=`cat conftest.val` ++ ac_cv_sizeof_off_t=`cat conftest.val` + else + echo "$as_me: program exited with status $ac_status" >&5 + echo "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + + ( exit $ac_status ) +-{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long long), 77 ++{ { echo "$as_me:$LINENO: error: cannot compute sizeof (off_t), 77 + See \`config.log' for more details." >&5 +-echo "$as_me: error: cannot compute sizeof (long long), 77 ++echo "$as_me: error: cannot compute sizeof (off_t), 77 + See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + fi +-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + fi + rm -f conftest.val + else +- ac_cv_sizeof_long_long=0 ++ ac_cv_sizeof_off_t=0 + fi + fi +-echo "$as_me:$LINENO: result: $ac_cv_sizeof_long_long" >&5 +-echo "${ECHO_T}$ac_cv_sizeof_long_long" >&6 ++echo "$as_me:$LINENO: result: $ac_cv_sizeof_off_t" >&5 ++echo "${ECHO_T}$ac_cv_sizeof_off_t" >&6 + cat >>confdefs.h <<_ACEOF +-#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long ++#define SIZEOF_OFF_T $ac_cv_sizeof_off_t + _ACEOF + + +-echo "$as_me:$LINENO: checking for off_t" >&5 +-echo $ECHO_N "checking for off_t... $ECHO_C" >&6 +-if test "${ac_cv_type_off_t+set}" = set; then ++echo "$as_me:$LINENO: checking for size_t" >&5 ++echo $ECHO_N "checking for size_t... $ECHO_C" >&6 ++if test "${ac_cv_type_size_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -11379,9 +12705,9 @@ + int + main () + { +-if ((off_t *) 0) ++if ((size_t *) 0) + return 0; +-if (sizeof (off_t)) ++if (sizeof (size_t)) + return 0; + ; + return 0; +@@ -11389,34 +12715,43 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_type_off_t=yes ++ ac_cv_type_size_t=yes + else + echo "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + +-ac_cv_type_off_t=no ++ac_cv_type_size_t=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi +-echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5 +-echo "${ECHO_T}$ac_cv_type_off_t" >&6 ++echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 ++echo "${ECHO_T}$ac_cv_type_size_t" >&6 + +-echo "$as_me:$LINENO: checking size of off_t" >&5 +-echo $ECHO_N "checking size of off_t... $ECHO_C" >&6 +-if test "${ac_cv_sizeof_off_t+set}" = set; then ++echo "$as_me:$LINENO: checking size of size_t" >&5 ++echo $ECHO_N "checking size of size_t... $ECHO_C" >&6 ++if test "${ac_cv_sizeof_size_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- if test "$ac_cv_type_off_t" = yes; then ++ if test "$ac_cv_type_size_t" = yes; then + # The cast to unsigned long works around a bug in the HP C Compiler + # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects + # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +@@ -11424,7 +12759,6 @@ + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -11434,7 +12768,7 @@ + int + main () + { +-static int test_array [1 - 2 * !(((long) (sizeof (off_t))) >= 0)]; ++static int test_array [1 - 2 * !(((long) (sizeof (size_t))) >= 0)]; + test_array [0] = 0 + + ; +@@ -11443,11 +12777,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11456,7 +12799,6 @@ + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -11466,7 +12808,7 @@ + int + main () + { +-static int test_array [1 - 2 * !(((long) (sizeof (off_t))) <= $ac_mid)]; ++static int test_array [1 - 2 * !(((long) (sizeof (size_t))) <= $ac_mid)]; + test_array [0] = 0 + + ; +@@ -11475,11 +12817,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11491,20 +12842,19 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr $ac_mid + 1` +- if test $ac_lo -le $ac_mid; then +- ac_lo= ac_hi= +- break +- fi +- ac_mid=`expr 2 '*' $ac_mid + 1` ++ if test $ac_lo -le $ac_mid; then ++ ac_lo= ac_hi= ++ break ++ fi ++ ac_mid=`expr 2 '*' $ac_mid + 1` + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done + else + echo "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -11514,7 +12864,7 @@ + int + main () + { +-static int test_array [1 - 2 * !(((long) (sizeof (off_t))) < 0)]; ++static int test_array [1 - 2 * !(((long) (sizeof (size_t))) < 0)]; + test_array [0] = 0 + + ; +@@ -11523,11 +12873,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11536,7 +12895,6 @@ + ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -11546,7 +12904,7 @@ + int + main () + { +-static int test_array [1 - 2 * !(((long) (sizeof (off_t))) >= $ac_mid)]; ++static int test_array [1 - 2 * !(((long) (sizeof (size_t))) >= $ac_mid)]; + test_array [0] = 0 + + ; +@@ -11555,11 +12913,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11571,13 +12938,13 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + ac_hi=`expr '(' $ac_mid ')' - 1` +- if test $ac_mid -le $ac_hi; then +- ac_lo= ac_hi= +- break +- fi +- ac_mid=`expr 2 '*' $ac_mid` ++ if test $ac_mid -le $ac_hi; then ++ ac_lo= ac_hi= ++ break ++ fi ++ ac_mid=`expr 2 '*' $ac_mid` + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done + else + echo "$as_me: failed program was:" >&5 +@@ -11585,14 +12952,13 @@ + + ac_lo= ac_hi= + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + # Binary search between lo and hi bounds. + while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -11602,7 +12968,7 @@ + int + main () + { +-static int test_array [1 - 2 * !(((long) (sizeof (off_t))) <= $ac_mid)]; ++static int test_array [1 - 2 * !(((long) (sizeof (size_t))) <= $ac_mid)]; + test_array [0] = 0 + + ; +@@ -11611,11 +12977,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11628,34 +13003,31 @@ + + ac_lo=`expr '(' $ac_mid ')' + 1` + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + done + case $ac_lo in +-?*) ac_cv_sizeof_off_t=$ac_lo;; +-'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (off_t), 77 ++?*) ac_cv_sizeof_size_t=$ac_lo;; ++'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (size_t), 77 + See \`config.log' for more details." >&5 +-echo "$as_me: error: cannot compute sizeof (off_t), 77 ++echo "$as_me: error: cannot compute sizeof (size_t), 77 + See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } ;; + esac + else + if test "$cross_compiling" = yes; then +- { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling +-See \`config.log' for more details." >&5 +-echo "$as_me: error: cannot run test program while cross compiling +-See \`config.log' for more details." >&2;} ++ { { echo "$as_me:$LINENO: error: internal error: not reached in cross-compile" >&5 ++echo "$as_me: error: internal error: not reached in cross-compile" >&2;} + { (exit 1); exit 1; }; } + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ + $ac_includes_default +-long longval () { return (long) (sizeof (off_t)); } +-unsigned long ulongval () { return (long) (sizeof (off_t)); } ++long longval () { return (long) (sizeof (size_t)); } ++unsigned long ulongval () { return (long) (sizeof (size_t)); } + #include + #include + int +@@ -11665,17 +13037,17 @@ + FILE *f = fopen ("conftest.val", "w"); + if (! f) + exit (1); +- if (((long) (sizeof (off_t))) < 0) ++ if (((long) (sizeof (size_t))) < 0) + { + long i = longval (); +- if (i != ((long) (sizeof (off_t)))) ++ if (i != ((long) (sizeof (size_t)))) + exit (1); + fprintf (f, "%ld\n", i); + } + else + { + unsigned long i = ulongval (); +- if (i != ((long) (sizeof (off_t)))) ++ if (i != ((long) (sizeof (size_t)))) + exit (1); + fprintf (f, "%lu\n", i); + } +@@ -11696,31 +13068,31 @@ + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then +- ac_cv_sizeof_off_t=`cat conftest.val` ++ ac_cv_sizeof_size_t=`cat conftest.val` + else + echo "$as_me: program exited with status $ac_status" >&5 + echo "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + + ( exit $ac_status ) +-{ { echo "$as_me:$LINENO: error: cannot compute sizeof (off_t), 77 ++{ { echo "$as_me:$LINENO: error: cannot compute sizeof (size_t), 77 + See \`config.log' for more details." >&5 +-echo "$as_me: error: cannot compute sizeof (off_t), 77 ++echo "$as_me: error: cannot compute sizeof (size_t), 77 + See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + fi +-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + fi + rm -f conftest.val + else +- ac_cv_sizeof_off_t=0 ++ ac_cv_sizeof_size_t=0 + fi + fi +-echo "$as_me:$LINENO: result: $ac_cv_sizeof_off_t" >&5 +-echo "${ECHO_T}$ac_cv_sizeof_off_t" >&6 ++echo "$as_me:$LINENO: result: $ac_cv_sizeof_size_t" >&5 ++echo "${ECHO_T}$ac_cv_sizeof_size_t" >&6 + cat >>confdefs.h <<_ACEOF +-#define SIZEOF_OFF_T $ac_cv_sizeof_off_t ++#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t + _ACEOF + + +@@ -11731,7 +13103,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -11752,11 +13123,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11769,7 +13149,7 @@ + + ac_cv_header_time=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 + echo "${ECHO_T}$ac_cv_header_time" >&6 +@@ -11787,7 +13167,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -11806,11 +13185,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11823,7 +13211,7 @@ + + ac_cv_struct_tm=sys/time.h + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5 + echo "${ECHO_T}$ac_cv_struct_tm" >&6 +@@ -11842,7 +13230,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -11862,11 +13249,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11879,7 +13275,7 @@ + + ac_cv_type_umode_t=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_type_umode_t" >&5 + echo "${ECHO_T}$ac_cv_type_umode_t" >&6 +@@ -11899,7 +13295,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -11919,11 +13314,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11936,7 +13340,7 @@ + + ac_cv_type_ino_t=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_type_ino_t" >&5 + echo "${ECHO_T}$ac_cv_type_ino_t" >&6 +@@ -11956,7 +13360,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -11981,11 +13384,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -11998,7 +13410,7 @@ + + ac_cv_type_intptr_t=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_type_intptr_t" >&5 + echo "${ECHO_T}$ac_cv_type_intptr_t" >&6 +@@ -12016,7 +13428,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -12045,11 +13456,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -12062,7 +13482,7 @@ + + ac_cv_type_socklen_t=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_type_socklen_t" >&5 + echo "${ECHO_T}$ac_cv_type_socklen_t" >&6 +@@ -12098,7 +13518,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -12109,11 +13528,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -12126,7 +13554,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -12134,7 +13562,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -12152,6 +13579,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -12171,33 +13599,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -12208,7 +13635,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -12233,7 +13660,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -12259,7 +13685,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -12285,7 +13710,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -12340,7 +13764,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -12371,7 +13794,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -12414,7 +13836,6 @@ + echo "$as_me:$LINENO: checking for $dirfd in DIR structure" >&5 + echo $ECHO_N "checking for $dirfd in DIR structure... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -12437,11 +13858,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -12453,7 +13883,7 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + if test "`eval echo x'$''ac_cv_struct_dir_'$dirfd`" = xyes ; then + ucdirfd=`echo $dirfd | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >>confdefs.h <<_ACEOF +@@ -12479,7 +13909,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -12496,11 +13925,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -12513,7 +13951,8 @@ + + ac_cv_working_alloca_h=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5 + echo "${ECHO_T}$ac_cv_working_alloca_h" >&6 +@@ -12531,7 +13970,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -12568,11 +14006,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -12585,7 +14032,8 @@ + + ac_cv_func_alloca_works=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5 + echo "${ECHO_T}$ac_cv_func_alloca_works" >&6 +@@ -12615,7 +14063,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -12648,21 +14095,28 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -12693,11 +14147,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -12710,7 +14173,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -12735,7 +14199,6 @@ + ac_cv_c_stack_direction=0 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -12781,7 +14244,7 @@ + ( exit $ac_status ) + ac_cv_c_stack_direction=-1 + fi +-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + fi + echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5 +@@ -12806,7 +14269,6 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lucb $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -12830,11 +14292,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -12847,7 +14318,8 @@ + + ac_cv_lib_ucb_alloca=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_ucb_alloca" >&5 +@@ -12871,7 +14343,6 @@ + else + ac_pattern="Autoconf.*'x'" + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -12891,7 +14362,6 @@ + + if test $ac_cv_prog_gcc_traditional = no; then + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -12926,7 +14396,6 @@ + { (exit 1); exit 1; }; } + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -12967,7 +14436,7 @@ + ( exit $ac_status ) + ac_cv_func_setpgrp_void=yes + fi +-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + fi + echo "$as_me:$LINENO: result: $ac_cv_func_setpgrp_void" >&5 +@@ -12986,7 +14455,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -13013,11 +14481,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -13030,7 +14507,7 @@ + + ac_cv_type_signal=int + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 + echo "${ECHO_T}$ac_cv_type_signal" >&6 +@@ -13050,21 +14527,28 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -13095,11 +14579,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -13112,7 +14605,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -13127,21 +14621,28 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define _doprnt to an innocuous variant, in case declares _doprnt. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define _doprnt innocuous__doprnt ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char _doprnt (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef _doprnt ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -13172,11 +14673,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -13189,7 +14699,8 @@ + + ac_cv_func__doprnt=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_func__doprnt" >&5 + echo "${ECHO_T}$ac_cv_func__doprnt" >&6 +@@ -13220,21 +14731,28 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -13265,11 +14783,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -13282,7 +14809,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -13300,21 +14828,28 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define gai_strerror to an innocuous variant, in case declares gai_strerror. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define gai_strerror innocuous_gai_strerror ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char gai_strerror (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef gai_strerror ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -13345,11 +14880,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -13362,7 +14906,8 @@ + + ac_cv_func_gai_strerror=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_func_gai_strerror" >&5 + echo "${ECHO_T}$ac_cv_func_gai_strerror" >&6 +@@ -13380,7 +14925,6 @@ + echo "$as_me:$LINENO: checking for getaddrinfo" >&5 + echo $ECHO_N "checking for getaddrinfo... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -13410,11 +14954,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -13439,7 +14992,8 @@ + + + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + + + +@@ -13455,21 +15009,28 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -13500,11 +15061,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -13517,7 +15087,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -13544,21 +15115,28 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -13589,11 +15167,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -13606,7 +15193,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -13635,21 +15223,28 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -13680,11 +15275,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -13697,7 +15301,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -13726,21 +15331,28 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -13771,11 +15383,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -13788,7 +15409,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -13814,21 +15436,28 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -13859,11 +15488,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -13876,7 +15514,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -13900,21 +15539,28 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -13945,11 +15591,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -13962,7 +15617,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -13987,21 +15643,28 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -14032,11 +15695,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -14049,7 +15721,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -14078,7 +15751,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -14089,11 +15761,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -14106,7 +15787,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -14114,7 +15795,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -14132,6 +15812,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -14151,33 +15832,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -14188,7 +15868,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -14218,21 +15898,28 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -14263,11 +15950,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -14280,7 +15976,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -14303,21 +16000,28 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -14348,11 +16052,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -14365,7 +16078,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -14387,21 +16101,28 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -14432,11 +16153,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -14449,7 +16179,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -14472,21 +16203,28 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -14517,11 +16255,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -14534,7 +16281,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -14557,21 +16305,28 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -14602,11 +16357,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -14619,7 +16383,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -14641,21 +16406,28 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -14686,11 +16458,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -14703,7 +16484,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -14722,21 +16504,28 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define setpassent to an innocuous variant, in case declares setpassent. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define setpassent innocuous_setpassent ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char setpassent (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef setpassent ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -14767,11 +16556,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -14784,7 +16582,8 @@ + + ac_cv_func_setpassent=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_func_setpassent" >&5 + echo "${ECHO_T}$ac_cv_func_setpassent" >&6 +@@ -14814,7 +16613,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -14844,11 +16642,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -14860,7 +16667,6 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -14890,11 +16696,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -14907,9 +16722,9 @@ + + ac_cv_member_struct_sockaddr_in_sin_len=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $ac_cv_member_struct_sockaddr_in_sin_len" >&5 + echo "${ECHO_T}$ac_cv_member_struct_sockaddr_in_sin_len" >&6 +@@ -14924,7 +16739,6 @@ + echo "$as_me:$LINENO: checking whether struct addrinfo is defined" >&5 + echo $ECHO_N "checking whether struct addrinfo is defined... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -14952,11 +16766,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -14978,12 +16801,11 @@ + echo "${ECHO_T}no" >&6 + + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + echo "$as_me:$LINENO: checking whether struct sockaddr_storage is defined" >&5 + echo $ECHO_N "checking whether struct sockaddr_storage is defined... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -15010,11 +16832,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -15036,13 +16867,12 @@ + echo "${ECHO_T}no" >&6 + + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + + echo "$as_me:$LINENO: checking whether ss_family is defined" >&5 + echo $ECHO_N "checking whether ss_family is defined... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -15069,11 +16899,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -15097,7 +16936,6 @@ + echo "$as_me:$LINENO: checking whether __ss_family is defined" >&5 + echo $ECHO_N "checking whether __ss_family is defined... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -15124,11 +16962,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -15151,16 +16998,15 @@ + echo "${ECHO_T}no" >&6 + + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + + echo "$as_me:$LINENO: checking whether ss_len is defined" >&5 + echo $ECHO_N "checking whether ss_len is defined... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -15187,11 +17033,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -15215,7 +17070,6 @@ + echo "$as_me:$LINENO: checking whether __ss_len is defined" >&5 + echo $ECHO_N "checking whether __ss_len is defined... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -15242,11 +17096,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -15269,10 +17132,10 @@ + echo "${ECHO_T}no" >&6 + + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + + + if test x"$enable_sendfile" = xyes ; then +@@ -15285,7 +17148,6 @@ + + if test "$pr_cv_func_sendfile" = "None"; then + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -15309,11 +17171,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -15325,12 +17196,12 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + + if test "$pr_cv_func_sendfile" = "None"; then + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -15355,11 +17226,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -15371,12 +17251,12 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + + if test "$pr_cv_func_sendfile" = "None"; then + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -15399,11 +17279,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -15415,14 +17304,14 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + + if test "$pr_cv_func_sendfile" = "None"; then + old_ldflags=$LDFLAGS + LDFLAGS="-lsendfile $LDFLAGS" + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -15446,11 +17335,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -15462,7 +17360,8 @@ + sed 's/^/| /' conftest.$ac_ext >&5 + + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$old_ldflags + fi + +@@ -15497,7 +17396,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -15508,11 +17406,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -15525,7 +17432,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -15533,7 +17440,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -15551,6 +17457,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -15570,33 +17477,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -15607,7 +17513,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -15660,7 +17566,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -15671,11 +17576,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -15688,7 +17602,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -15696,7 +17610,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -15714,6 +17627,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -15733,33 +17647,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -15770,7 +17683,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -15838,7 +17751,7 @@ + ( exit $ac_status ) + ac_cv_func_setgrent_void=yes + fi +-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + fi + echo "$as_me:$LINENO: result: $ac_cv_func_setgrent_void" >&5 +@@ -15862,7 +17775,6 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lcurses $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -15886,11 +17798,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -15903,7 +17824,8 @@ + + ac_cv_lib_curses_initscr=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_curses_initscr" >&5 +@@ -15929,7 +17851,6 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lncurses $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -15953,11 +17874,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -15970,7 +17900,8 @@ + + ac_cv_lib_ncurses_initscr=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_initscr" >&5 +@@ -16011,21 +17942,28 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -16056,11 +17994,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -16073,7 +18020,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -16102,7 +18050,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -16113,11 +18060,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -16130,7 +18086,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -16138,7 +18094,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -16156,6 +18111,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -16175,33 +18131,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -16212,7 +18167,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -16235,7 +18190,6 @@ + ac_check_lib_save_LIBS=$LIBS + LIBS="-lutil $LIBS" + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -16259,11 +18213,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -16276,7 +18239,8 @@ + + ac_cv_lib_util_setproctitle=no + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_util_setproctitle" >&5 +@@ -16315,7 +18279,6 @@ + echo "$as_me:$LINENO: checking $ac_header usability" >&5 + echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -16326,11 +18289,20 @@ + _ACEOF + rm -f conftest.$ac_objext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>&5 ++ (eval $ac_compile) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest.$ac_objext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -16343,7 +18315,7 @@ + + ac_header_compiler=no + fi +-rm -f conftest.$ac_objext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext + echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 + echo "${ECHO_T}$ac_header_compiler" >&6 + +@@ -16351,7 +18323,6 @@ + echo "$as_me:$LINENO: checking $ac_header presence" >&5 + echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -16369,6 +18340,7 @@ + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag + else + ac_cpp_err= + fi +@@ -16388,33 +18360,32 @@ + echo "${ECHO_T}$ac_header_preproc" >&6 + + # So? What about this header? +-case $ac_header_compiler:$ac_header_preproc in +- yes:no ) ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 + echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes + ;; +- no:yes ) ++ no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 + echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 + echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( + cat <<\_ASBOX +-## ------------------------------------ ## +-## Report this to bug-autoconf@gnu.org. ## +-## ------------------------------------ ## ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## + _ASBOX + ) | + sed "s/^/$as_me: WARNING: /" >&2 +@@ -16425,7 +18396,7 @@ + if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else +- eval "$as_ac_Header=$ac_header_preproc" ++ eval "$as_ac_Header=\$ac_header_preproc" + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +@@ -16453,21 +18424,28 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ ++ + #ifdef __STDC__ + # include + #else + # include + #endif ++ ++#undef $ac_func ++ + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" +@@ -16498,11 +18476,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -16515,7 +18502,8 @@ + + eval "$as_ac_var=no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 +@@ -16545,7 +18533,6 @@ + + if test "$pf_argv_set" = "no"; then + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -16578,7 +18565,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -16595,11 +18581,20 @@ + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 ++ (eval $ac_link) 2>conftest.er1 + ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' ++ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? +@@ -16612,7 +18607,8 @@ + + pf_cv_var_progname="no" + fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: $pf_cv_var_progname" >&5 + echo "${ECHO_T}$pf_cv_var_progname" >&6 +@@ -16630,7 +18626,6 @@ + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -16682,7 +18677,6 @@ + + else + cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext +@@ -16722,7 +18716,7 @@ + _ACEOF + + fi +-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext + fi + + LIBS="-lsupp $LIBS" +@@ -16910,13 +18904,13 @@ + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ +- "s/'/'\\\\''/g; +- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ++ "s/'/'\\\\''/g; ++ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n \ +- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ++ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; + } | +@@ -16946,13 +18940,13 @@ + # trailing colons and then remove the whole line if VPATH becomes empty + # (actually we leave an empty line to preserve line numbers). + if test "x$srcdir" = x.; then +- ac_vpsub='/^[ ]*VPATH[ ]*=/{ ++ ac_vpsub='/^[ ]*VPATH[ ]*=/{ + s/:*\$(srcdir):*/:/; + s/:*\${srcdir}:*/:/; + s/:*@srcdir@:*/:/; +-s/^\([^=]*=[ ]*\):*/\1/; ++s/^\([^=]*=[ ]*\):*/\1/; + s/:*$//; +-s/^[^=]*=[ ]*$//; ++s/^[^=]*=[ ]*$//; + }' + fi + +@@ -16963,7 +18957,7 @@ + for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_i=`echo "$ac_i" | +- sed 's/\$U\././;s/\.o$//;s/\.obj$//'` ++ sed 's/\$U\././;s/\.o$//;s/\.obj$//'` + # 2. Add them. + ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' +@@ -17007,9 +19001,10 @@ + elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix + fi ++DUALCASE=1; export DUALCASE # for MKS sh + + # Support unset when possible. +-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then ++if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset + else + as_unset=false +@@ -17028,7 +19023,7 @@ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME + do +- if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then ++ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var +@@ -17207,16 +19202,17 @@ + if mkdir -p . 2>/dev/null; then + as_mkdir_p=: + else ++ test -d ./-p && rmdir ./-p + as_mkdir_p=false + fi + + as_executable_p="test -f" + + # Sed expression to map a string onto a valid CPP name. +-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" ++as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + + # Sed expression to map a string onto a valid variable name. +-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" ++as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + + # IFS +@@ -17243,7 +19239,7 @@ + cat >&5 <<_CSEOF + + This file was extended by $as_me, which was +-generated by GNU Autoconf 2.57. Invocation command line was ++generated by GNU Autoconf 2.59. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS +@@ -17287,9 +19283,9 @@ + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] +- instantiate the configuration file FILE ++ instantiate the configuration file FILE + --header=FILE[:TEMPLATE] +- instantiate the configuration header FILE ++ instantiate the configuration header FILE + + Configuration files: + $config_files +@@ -17306,11 +19302,10 @@ + cat >>$CONFIG_STATUS <<_ACEOF + ac_cs_version="\\ + config.status +-configured by $0, generated by GNU Autoconf 2.57, ++configured by $0, generated by GNU Autoconf 2.59, + with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" + +-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 +-Free Software Foundation, Inc. ++Copyright (C) 2003 Free Software Foundation, Inc. + This config.status script is free software; the Free Software Foundation + gives unlimited permission to copy, distribute and modify it." + srcdir=$srcdir +@@ -17585,9 +19580,9 @@ + (echo ':t + /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed + if test -z "$ac_sed_cmds"; then +- ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" ++ ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" + else +- ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" ++ ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" + fi + ac_sed_frag=`expr $ac_sed_frag + 1` + ac_beg=$ac_end +@@ -17605,21 +19600,21 @@ + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case $ac_file in + - | *:- | *:-:* ) # input from stdin +- cat >$tmp/stdin +- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` +- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; ++ cat >$tmp/stdin ++ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ++ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` +- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; ++ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + * ) ac_file_in=$ac_file.in ;; + esac + + # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. + ac_dir=`(dirname "$ac_file") 2>/dev/null || + $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X"$ac_file" : 'X\(//\)[^/]' \| \ +- X"$ac_file" : 'X\(//\)$' \| \ +- X"$ac_file" : 'X\(/\)' \| \ +- . : '\(.\)' 2>/dev/null || ++ X"$ac_file" : 'X\(//\)[^/]' \| \ ++ X"$ac_file" : 'X\(//\)$' \| \ ++ X"$ac_file" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || + echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } +@@ -17635,10 +19630,10 @@ + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || + $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X"$as_dir" : 'X\(//\)[^/]' \| \ +- X"$as_dir" : 'X\(//\)$' \| \ +- X"$as_dir" : 'X\(/\)' \| \ +- . : '\(.\)' 2>/dev/null || ++ X"$as_dir" : 'X\(//\)[^/]' \| \ ++ X"$as_dir" : 'X\(//\)$' \| \ ++ X"$as_dir" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || + echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } +@@ -17676,12 +19671,45 @@ + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; + esac +-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be +-# absolute. +-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` +-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` +-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` ++ ++# Do not use `cd foo && pwd` to compute absolute paths, because ++# the directories may not exist. ++case `pwd` in ++.) ac_abs_builddir="$ac_dir";; ++*) ++ case "$ac_dir" in ++ .) ac_abs_builddir=`pwd`;; ++ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; ++ *) ac_abs_builddir=`pwd`/"$ac_dir";; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_builddir=${ac_top_builddir}.;; ++*) ++ case ${ac_top_builddir}. in ++ .) ac_abs_top_builddir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; ++ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_srcdir=$ac_srcdir;; ++*) ++ case $ac_srcdir in ++ .) ac_abs_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; ++ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_srcdir=$ac_top_srcdir;; ++*) ++ case $ac_top_srcdir in ++ .) ac_abs_top_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; ++ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; ++ esac;; ++esac + + + case $INSTALL in +@@ -17689,11 +19717,6 @@ + *) ac_INSTALL=$ac_top_builddir$INSTALL ;; + esac + +- if test x"$ac_file" != x-; then +- { echo "$as_me:$LINENO: creating $ac_file" >&5 +-echo "$as_me: creating $ac_file" >&6;} +- rm -f "$ac_file" +- fi + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ +@@ -17703,7 +19726,7 @@ + configure_input="$ac_file. " + fi + configure_input=$configure_input"Generated from `echo $ac_file_in | +- sed 's,.*/,,'` by configure." ++ sed 's,.*/,,'` by configure." + + # First look for the input files in the build tree, otherwise in the + # src tree. +@@ -17712,26 +19735,32 @@ + case $f in + -) echo $tmp/stdin ;; + [\\/$]*) +- # Absolute (can't be DOS-style, as IFS=:) +- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 ++ # Absolute (can't be DOS-style, as IFS=:) ++ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 + echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } +- echo $f;; ++ echo "$f";; + *) # Relative +- if test -f "$f"; then +- # Build tree +- echo $f +- elif test -f "$srcdir/$f"; then +- # Source tree +- echo $srcdir/$f +- else +- # /dev/null tree +- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 ++ if test -f "$f"; then ++ # Build tree ++ echo "$f" ++ elif test -f "$srcdir/$f"; then ++ # Source tree ++ echo "$srcdir/$f" ++ else ++ # /dev/null tree ++ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 + echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } +- fi;; ++ fi;; + esac + done` || { (exit 1); exit 1; } ++ ++ if test x"$ac_file" != x-; then ++ { echo "$as_me:$LINENO: creating $ac_file" >&5 ++echo "$as_me: creating $ac_file" >&6;} ++ rm -f "$ac_file" ++ fi + _ACEOF + cat >>$CONFIG_STATUS <<_ACEOF + sed "$ac_vpsub +@@ -17771,12 +19800,12 @@ + # NAME is the cpp macro being defined and VALUE is the value it is being given. + # + # ac_d sets the value in "#define NAME VALUE" lines. +-ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' +-ac_dB='[ ].*$,\1#\2' ++ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' ++ac_dB='[ ].*$,\1#\2' + ac_dC=' ' + ac_dD=',;t' + # ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". +-ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ++ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' + ac_uB='$,\1#\2define\3' + ac_uC=' ' + ac_uD=',;t' +@@ -17785,11 +19814,11 @@ + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case $ac_file in + - | *:- | *:-:* ) # input from stdin +- cat >$tmp/stdin +- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` +- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; ++ cat >$tmp/stdin ++ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ++ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` +- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; ++ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + * ) ac_file_in=$ac_file.in ;; + esac + +@@ -17803,28 +19832,29 @@ + case $f in + -) echo $tmp/stdin ;; + [\\/$]*) +- # Absolute (can't be DOS-style, as IFS=:) +- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 ++ # Absolute (can't be DOS-style, as IFS=:) ++ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 + echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } +- echo $f;; ++ # Do quote $f, to prevent DOS paths from being IFS'd. ++ echo "$f";; + *) # Relative +- if test -f "$f"; then +- # Build tree +- echo $f +- elif test -f "$srcdir/$f"; then +- # Source tree +- echo $srcdir/$f +- else +- # /dev/null tree +- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 ++ if test -f "$f"; then ++ # Build tree ++ echo "$f" ++ elif test -f "$srcdir/$f"; then ++ # Source tree ++ echo "$srcdir/$f" ++ else ++ # /dev/null tree ++ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 + echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } +- fi;; ++ fi;; + esac + done` || { (exit 1); exit 1; } + # Remove the trailing spaces. +- sed 's/[ ]*$//' $ac_file_inputs >$tmp/in ++ sed 's/[ ]*$//' $ac_file_inputs >$tmp/in + + _ACEOF + +@@ -17847,9 +19877,9 @@ + s,[\\$`],\\&,g + t clear + : clear +-s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp ++s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp + t end +-s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp ++s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp + : end + _ACEOF + # If some macros were called several times there might be several times +@@ -17863,13 +19893,13 @@ + # example, in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + cat >>conftest.undefs <<\_ACEOF +-s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, ++s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, + _ACEOF + + # Break up conftest.defines because some shells have a limit on the size + # of here documents, and old seds have small limits too (100 cmds). + echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS +-echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS ++echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS + echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS + echo ' :' >>$CONFIG_STATUS + rm -f conftest.tail +@@ -17878,7 +19908,7 @@ + # Write a limited-size here document to $tmp/defines.sed. + echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS + # Speed up: don't consider the non `#define' lines. +- echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS ++ echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS + # Work around the forget-to-reset-the-flag bug. + echo 't clr' >>$CONFIG_STATUS + echo ': clr' >>$CONFIG_STATUS +@@ -17905,7 +19935,7 @@ + # Write a limited-size here document to $tmp/undefs.sed. + echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS + # Speed up: don't consider the non `#undef' +- echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS ++ echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS + # Work around the forget-to-reset-the-flag bug. + echo 't clr' >>$CONFIG_STATUS + echo ': clr' >>$CONFIG_STATUS +@@ -17939,10 +19969,10 @@ + else + ac_dir=`(dirname "$ac_file") 2>/dev/null || + $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X"$ac_file" : 'X\(//\)[^/]' \| \ +- X"$ac_file" : 'X\(//\)$' \| \ +- X"$ac_file" : 'X\(/\)' \| \ +- . : '\(.\)' 2>/dev/null || ++ X"$ac_file" : 'X\(//\)[^/]' \| \ ++ X"$ac_file" : 'X\(//\)$' \| \ ++ X"$ac_file" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || + echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } +@@ -17958,10 +19988,10 @@ + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || + $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X"$as_dir" : 'X\(//\)[^/]' \| \ +- X"$as_dir" : 'X\(//\)$' \| \ +- X"$as_dir" : 'X\(/\)' \| \ +- . : '\(.\)' 2>/dev/null || ++ X"$as_dir" : 'X\(//\)[^/]' \| \ ++ X"$as_dir" : 'X\(//\)$' \| \ ++ X"$as_dir" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || + echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } +@@ -17993,16 +20023,41 @@ + ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_dir=`(dirname "$ac_dest") 2>/dev/null || + $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ +- X"$ac_dest" : 'X\(//\)[^/]' \| \ +- X"$ac_dest" : 'X\(//\)$' \| \ +- X"$ac_dest" : 'X\(/\)' \| \ +- . : '\(.\)' 2>/dev/null || ++ X"$ac_dest" : 'X\(//\)[^/]' \| \ ++ X"$ac_dest" : 'X\(//\)$' \| \ ++ X"$ac_dest" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || + echo X"$ac_dest" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` ++ { if $as_mkdir_p; then ++ mkdir -p "$ac_dir" ++ else ++ as_dir="$ac_dir" ++ as_dirs= ++ while test ! -d "$as_dir"; do ++ as_dirs="$as_dir $as_dirs" ++ as_dir=`(dirname "$as_dir") 2>/dev/null || ++$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$as_dir" : 'X\(//\)[^/]' \| \ ++ X"$as_dir" : 'X\(//\)$' \| \ ++ X"$as_dir" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || ++echo X"$as_dir" | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } ++ /^X\(\/\/\)[^/].*/{ s//\1/; q; } ++ /^X\(\/\/\)$/{ s//\1/; q; } ++ /^X\(\/\).*/{ s//\1/; q; } ++ s/.*/./; q'` ++ done ++ test ! -n "$as_dirs" || mkdir $as_dirs ++ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 ++echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} ++ { (exit 1); exit 1; }; }; } ++ + ac_builddir=. + + if test "$ac_dir" != .; then +@@ -18028,12 +20083,45 @@ + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; + esac +-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be +-# absolute. +-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` +-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` +-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` ++ ++# Do not use `cd foo && pwd` to compute absolute paths, because ++# the directories may not exist. ++case `pwd` in ++.) ac_abs_builddir="$ac_dir";; ++*) ++ case "$ac_dir" in ++ .) ac_abs_builddir=`pwd`;; ++ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; ++ *) ac_abs_builddir=`pwd`/"$ac_dir";; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_builddir=${ac_top_builddir}.;; ++*) ++ case ${ac_top_builddir}. in ++ .) ac_abs_top_builddir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; ++ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_srcdir=$ac_srcdir;; ++*) ++ case $ac_srcdir in ++ .) ac_abs_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; ++ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_srcdir=$ac_top_srcdir;; ++*) ++ case $ac_top_srcdir in ++ .) ac_abs_top_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; ++ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; ++ esac;; ++esac + + + { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 +diff -ruN proftpd-1.2.10-old/configure.in proftpd-1.2.10/configure.in +--- proftpd-1.2.10-old/configure.in 2004-05-26 04:15:35.000000000 +0200 ++++ proftpd-1.2.10/configure.in 2005-05-04 14:37:59.117189848 +0200 +@@ -807,6 +807,7 @@ + AC_CHECK_SIZEOF(long, 0) + AC_CHECK_SIZEOF(long long, 0) + AC_CHECK_SIZEOF(off_t, 0) ++AC_CHECK_SIZEOF(size_t, 0) + + AC_HEADER_TIME + AC_STRUCT_TM +diff -ruN proftpd-1.2.10-old/include/data.h proftpd-1.2.10/include/data.h +--- proftpd-1.2.10-old/include/data.h 2004-05-21 19:19:02.000000000 +0200 ++++ proftpd-1.2.10/include/data.h 2005-05-04 14:37:59.117189848 +0200 +@@ -54,7 +54,7 @@ + + pr_sendfile_t; + +-pr_sendfile_t pr_data_sendfile(int retr_fd, off_t *offset, size_t count); ++pr_sendfile_t pr_data_sendfile(int retr_fd, off_t *offset, off_t count); + #endif /* HAVE_SENDFILE */ + + #endif /* PR_DATACONN_H */ +diff -ruN proftpd-1.2.10-old/modules/mod_xfer.c proftpd-1.2.10/modules/mod_xfer.c +--- proftpd-1.2.10-old/modules/mod_xfer.c 2005-05-04 14:37:58.689254000 +0200 ++++ proftpd-1.2.10/modules/mod_xfer.c 2005-05-04 14:37:59.120189392 +0200 +@@ -633,6 +633,7 @@ + session.xfer.file_size - count); + + if (*retval == -1) { ++ + switch (errno) { + case EAGAIN: + case EINTR: +@@ -670,7 +671,7 @@ + } + #endif /* HAVE_SENDFILE */ + +-static long _transmit_data(off_t count, off_t offset, char *buf, long bufsize) { ++static long _transmit_data(off_t count, off_t *offset, char *buf, long bufsize) { + long res; + + #ifdef TCP_CORK +@@ -692,7 +693,7 @@ + #endif /* TCP_CORK */ + + #ifdef HAVE_SENDFILE +- if (!_transmit_sendfile(count, &offset, &retval)) ++ if (_transmit_sendfile(count, offset, &retval) == 0) + res = _transmit_normal(buf, bufsize); + else + res = (long) retval; +@@ -1185,7 +1186,7 @@ + off_t nbytes_stored, nbytes_max_store = 0; + unsigned char have_limit = FALSE; + struct stat sbuf; +- off_t respos = 0; ++ off_t curr_pos = 0; + privdata_t *p, *p_hidden; + + #if defined(HAVE_REGEX_H) && defined(HAVE_REGCOMP) +@@ -1291,7 +1292,7 @@ + return ERROR(cmd); + } + +- respos = session.restart_pos; ++ curr_pos = session.restart_pos; + session.restart_pos = 0L; + } + +@@ -1313,7 +1314,7 @@ + else + session.xfer.path_hidden = NULL; + +- session.xfer.file_size = respos; ++ session.xfer.file_size = curr_pos; + + /* First, make sure the uploaded file has the requested ownership. */ + stor_chown(); +@@ -1529,7 +1530,7 @@ + unsigned char have_limit = FALSE; + privdata_t *p; + long bufsize, len = 0; +- off_t respos = 0, nbytes_sent = 0, cnt_steps = 0, cnt_next = 0; ++ off_t curr_pos = 0, nbytes_sent = 0, cnt_steps = 0, cnt_next = 0; + + /* This function sets static module variables for later potential + * throttling of the transfer. +@@ -1583,7 +1584,7 @@ + retr_fh = NULL; + } + +- respos = session.restart_pos; ++ curr_pos = session.restart_pos; + session.restart_pos = 0L; + } + +@@ -1597,7 +1598,7 @@ + if (cnt_steps == 0) + cnt_steps = 1; + +- if (pr_data_open(cmd->arg, NULL, PR_NETIO_IO_WR, sbuf.st_size - respos) < 0) { ++ if (pr_data_open(cmd->arg, NULL, PR_NETIO_IO_WR, sbuf.st_size - curr_pos) < 0) { + retr_abort(); + pr_data_abort(0, TRUE); + return ERROR(cmd); +@@ -1632,7 +1633,7 @@ + PR_TUNABLE_XFER_BUFFER_SIZE); + lbuf = (char *) palloc(cmd->tmp_pool, bufsize); + +- nbytes_sent = respos; ++ nbytes_sent = curr_pos; + + pr_scoreboard_update_entry(getpid(), + PR_SCORE_XFER_SIZE, session.xfer.file_size, +@@ -1643,7 +1644,8 @@ + if (XFER_ABORTED) + break; + +- if ((len = _transmit_data(nbytes_sent, respos, lbuf, bufsize)) == 0) ++ len = _transmit_data(nbytes_sent, &curr_pos, lbuf, bufsize); ++ if (len == 0) + break; + + if (len < 0) { +diff -ruN proftpd-1.2.10-old/src/data.c proftpd-1.2.10/src/data.c +--- proftpd-1.2.10-old/src/data.c 2004-08-25 20:08:46.000000000 +0200 ++++ proftpd-1.2.10/src/data.c 2005-05-04 14:41:14.037557448 +0200 +@@ -910,7 +910,7 @@ + * ASCII translation is not performed. + * return 0 if reading and data connection closes, or -1 if error + */ +-pr_sendfile_t pr_data_sendfile(int retr_fd, off_t *offset, size_t count) { ++pr_sendfile_t pr_data_sendfile(int retr_fd, off_t *offset, off_t count) { + int flags, error; + pr_sendfile_t len = 0, total = 0; + #if defined(HAVE_AIX_SENDFILE) +@@ -921,10 +921,11 @@ + if (session.xfer.direction == PR_NETIO_IO_RD) + return -1; + +- if ((flags = fcntl(PR_NETIO_FD(session.d->outstrm), F_GETFL)) == -1) ++ flags = fcntl(PR_NETIO_FD(session.d->outstrm), F_GETFL); ++ if (flags == -1) + return -1; + +- /* set fd to blocking-mode for sendfile() */ ++ /* Set fd to blocking-mode for sendfile() */ + if (flags & O_NONBLOCK) + if (fcntl(PR_NETIO_FD(session.d->outstrm), F_SETFL, flags^O_NONBLOCK) == -1) + return -1; +@@ -935,14 +936,41 @@ + + /* Linux semantics are fairly straightforward in a glibc 2.x world: + * +- * #include ++ * #include + * +- * ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t count) ++ * ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t count) ++ * ++ * Unfortunately, this API does not allow for an off_t number of bytes ++ * to be sent, only a size_t. This means we need to make sure that ++ * the given count does not exceed the maximum value for a size_t. Even ++ * worse, the return value is a ssize_t, not a size_t, which means ++ * the maximum value used can only be of the maximum _signed_ value, ++ * not the maximum unsigned value. This means calling sendfile() more ++ * times. How annoying. + */ ++ ++#if defined(HAVE_LINUX_SENDFILE) ++ if (count > INT_MAX) ++ count = INT_MAX; ++ ++#elif defined(HAVE_SOLARIS_SENDFILE) ++# if SIZEOF_SIZE_T == SIZEOF_INT ++ if (count > INT_MAX) ++ count = INT_MAX; ++# elif SIZEOF_SIZE_T == SIZEOF_LONG ++ if (count > LONG_MAX) ++ count = LONG_MAX; ++# elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG ++ if (count > LLONG_MAX) ++ count = LLONG_MAX; ++# endif ++#endif /* !HAVE_SOLARIS_SENDFILE */ ++ + len = sendfile(PR_NETIO_FD(session.d->outstrm), retr_fd, offset, count); + +- if (len != -1 && len < count) { +- /* under linux semantics, this occurs when a signal has interrupted ++ if (len != -1 && ++ len < count) { ++ /* Under Linux semantics, this occurs when a signal has interrupted + * sendfile(). + */ + +@@ -1013,16 +1041,18 @@ + * -1 being returned and EINTR being set, what ACTUALLY happens is + * that errno is cleared and the number of bytes written is returned. + * +- * For obvious reasons, HP/UX sendfile is not supported yet - jss ++ * For obvious reasons, HP/UX sendfile is not supported yet. + */ + if (errno == EINTR) { + pr_signals_handle(); + +- /* If we got everything in this transaction, we're done. +- */ +- if ((count -= len) <= 0) +- break; +- ++ /* If we got everything in this transaction, we're done. */ ++ if (len >= count) ++ break; ++ ++ else ++ count -= len; ++ + *offset += len; + + if (TimeoutStalled) --- proftpd-1.2.10.orig/debian/patches/14.quotatab_modules.diff +++ proftpd-1.2.10/debian/patches/14.quotatab_modules.diff @@ -0,0 +1,701 @@ +diff -ruN proftpd-1.2.10-old/contrib/diskuse proftpd-1.2.10/contrib/diskuse +--- proftpd-1.2.10-old/contrib/diskuse 1970-01-01 01:00:00.000000000 +0100 ++++ proftpd-1.2.10/contrib/diskuse 2004-09-14 23:41:11.000000000 +0200 +@@ -0,0 +1,232 @@ ++#!/usr/bin/perl ++# ------------------------------------------------------------------------- ++# Copyright (C) 2002 TJ Saunders ++# ++# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ++# ++# $Id: 14.quotatab_modules.diff,v 1.4 2003/11/17 15:30:12 frankie Exp $ ++# ++# ------------------------------------------------------------------------- ++ ++use strict; ++ ++use Fcntl; ++use File::Basename qw(basename); ++use Getopt::Long; ++ ++my $program = basename($0); ++my %opts = {}; ++ ++GetOptions(\%opts, 'G', 'K', 'M', 'dir-tally', 'group=s', 'help', ++ 'user=s', 'verbose'); ++ ++my $verbose = 0; ++my $user_id = -1; ++my $group_id = -1; ++ ++usage() if defined($opts{'help'}); ++ ++if (length(@ARGV) < 1) { ++ print STDOUT "$program: wrong number of parameters\n"; ++ exit 0; ++} ++ ++unless (defined($opts{'user'}) || defined($opts{'group'})) { ++ print STDOUT "$program: missing required --group or --user option\n"; ++ exit 0; ++} ++ ++if (defined($opts{'user'})) { ++ $user_id = getpwnam($opts{'user'}) or ++ die "$program: no such user: $opts{'user'}\n"; ++} ++ ++if (defined($opts{'group'})) { ++ $group_id = getgrnam($opts{'group'}) or ++ die "$program: no such group: $opts{'group'}\n"; ++} ++ ++$verbose = 1 if (defined($opts{'verbose'})); ++ ++my ($total_bytes, $total_files); ++ ++foreach my $dir (@ARGV) { ++ my ($bytes, $files) = get_dir_disk_use($dir); ++ ++ $total_bytes += $bytes; ++ $total_files += $files; ++} ++ ++my $byte_units = "bytes"; ++ ++if (defined($opts{'K'})) { ++ $total_bytes /= 1024; ++ $byte_units = "KB"; ++ ++} elsif (defined($opts{'M'})) { ++ $total_bytes /= (1024 * 1024); ++ $byte_units = "MB"; ++ ++} elsif (defined($opts{'G'})) { ++ $total_bytes /= (1024 * 1024 * 1024); ++ $byte_units = "GB"; ++} ++ ++my $file_units = "files"; ++$file_units = "file" if ($total_files == 1); ++ ++print STDOUT "$program: $total_bytes $byte_units in $total_files $file_units\n"; ++ ++# done ++exit 0; ++ ++# -------------------------------------------------------------------------- ++sub get_dir_disk_use { ++ my ($dir) = @_; ++ ++ print STDOUT "$program: examining directory '$dir'\n" if $verbose; ++ ++ my @subdirs = (); ++ my $nbytes = 0; ++ my $nfiles = 0; ++ ++ unless (opendir(DIR, $dir)) { ++ print STDERR "$program: unable to open directory '$dir': $!\n"; ++ return (0, 0); ++ } ++ ++ my @files = readdir(DIR); ++ close(DIR); ++ ++ foreach my $file (@files) { ++ my ($mode, $uid, $gid, $size) = (lstat("$dir/$file"))[2, 4, 5, 7]; ++ ++ # Is this entry a regular file, or a directory? ++ unless (-f "$dir/$file" || (-l "$dir/$file" && !-f "$dir/$file") || -d "$dir/$file") { ++ print STDOUT "$program: skipping '$dir/$file': not a file or directory\n" if $verbose; ++ next; ++ } ++ ++ # Does this file match the given user/group ownership? ++ if ($user_id != -1 && $group_id != -1) { ++ ++ if ($uid == $user_id && $gid == $group_id) { ++ ++ if (defined($opts{'dir-tally'}) && $file eq ".") { ++ $nbytes += $size; ++ $nfiles++; ++ ++ } elsif (! -d "$dir/$file") { ++ $nbytes += $size; ++ $nfiles++; ++ } ++ ++ } else { ++ print STDOUT "$program: '$file' does not match UID $user_id, GID $group_id\n" if $verbose; ++ } ++ ++ } elsif ($user_id != -1) { ++ ++ if ($uid == $user_id) { ++ ++ if (defined($opts{'dir-tally'}) && $file eq ".") { ++ $nbytes += $size; ++ $nfiles++; ++ ++ } elsif (! -d "$dir/$file") { ++ $nbytes += $size; ++ $nfiles++; ++ } ++ ++ } else { ++ print STDOUT "$program: '$file' does not match UID $user_id\n" if $verbose; ++ } ++ ++ } elsif ($group_id != -1) { ++ ++ if ($gid == $group_id) { ++ ++ if (defined($opts{'dir-tally'}) && $file eq ".") { ++ $nbytes += $size; ++ $nfiles++; ++ ++ } elsif (! -d "$dir/$file") { ++ $nbytes += $size; ++ $nfiles++; ++ } ++ ++ } else { ++ print STDOUT "$program: '$file' does not match GID $group_id\n" if $verbose; ++ } ++ } ++ ++ # Is this entry a directory? If so, add it to the subdir list. ++ if (-d "$dir/$file") { ++ ++ # Skip dot directories ++ push(@subdirs, "$dir/$file") unless ($file eq "." || $file eq ".."); ++ } ++ } ++ ++ # Now, recurse through the directory's subdirectories ++ foreach my $subdir (@subdirs) { ++ my ($bytecount, $filecount) = get_dir_disk_use($subdir); ++ $nbytes += $bytecount; ++ $nfiles += $filecount; ++ } ++ ++ return ($nbytes, $nfiles); ++} ++ ++# -------------------------------------------------------------------------- ++sub usage { ++ ++ print STDOUT < ++ ++ ++ ++ ++diskuse: tool for ProFTPD mod_quotatab ++ ++ ++ ++ ++

++
++

diskuse: tool for ProFTPD module mod_quotatab

++
++

++ ++This program is distributed with the ++mod_quotatab module for ++ProFTPD 1.2. It is used to calculate the amount of disk space currently ++used by a given user and/or group. ++ ++

++The most current version of diskuse can be found at: ++

++  http://www.castaglia.org/proftpd/
++
++ ++

Author

++

++Please contact TJ Saunders <tj at castaglia.org> with any ++questions, concerns, or suggestions regarding this program. ++ ++

++



++

Usage

++The following describes the common usage of the diskuse tool. ++The options supported are described in more detail ++later. ++ ++

++Usage of this tool is fairly straightforward: choose the directory (or ++directories) to scan, and the user or group for whom you wish to calculate ++disk usage: ++

++  diskuse /home /usr /tmp --user=bob
++
++The --K, --M, and --G options can be ++used to display the disk usage calculated in kilobytes, megabytes, or ++gigabytes, respectively. ++ ++

++



++

Options

++The following is the output from running diskuse --help: ++
++usage: diskuse [options] dir1 dir2 ... dirN
++
++ diskuse calculates the amount of disk space used underneath the given
++ directory (or directories).  Either a --group or a --user option is required.
++ If both are used, only files whose ownership matches both the given name and
++ group will be added to the disk usage sum.
++
++ Options:
++
++  --G          Display the number of bytes in units of gigabytes.  The default
++               number is in bytes.
++
++  --K          Display the number of bytes in units of kilobytes.  The default
++               number is in bytes.
++
++  --M          Display the number of bytes in units of megabytes.  The default
++               number is in bytes.
++
++  --dir-tally  Count the size of directories toward the disk usage sum.  The
++               default is to consider regular files only.
++
++  --group      Count files owned by this group in the disk usage sum.
++
++  --help       Display this message.
++
++  --user       Count files owned by this user in the disk usage sum.
++
++  --verbose    Display diagnostic output while diskuse is running.
++
++ ++

++



++ ++Author: $Author: frankie $
++Last Updated: $Date: 2003/11/17 15:30:12 $
++ ++

++ ++ ++© Copyright 2000-2002 TJ Saunders
++ All Rights Reserved
++
++ ++

++ ++ ++ ++ +diff -ruN proftpd-1.2.10-old/contrib/README.mod_quotatab proftpd-1.2.10/contrib/README.mod_quotatab +--- proftpd-1.2.10-old/contrib/README.mod_quotatab 1970-01-01 01:00:00.000000000 +0100 ++++ proftpd-1.2.10/contrib/README.mod_quotatab 2004-09-14 23:41:11.000000000 +0200 +@@ -0,0 +1,354 @@ ++ ------------------------------------------------------------------------ ++ ++ ProFTPD module mod_quotatab ++ ++ ------------------------------------------------------------------------ ++ ++This module is contained in the mod_quotatab.c, mod_quotatab.h, and in its ++submodule source files, for ProFTPD 1.2, found here, and is not compiled by ++default. Installation instructions can be found here. ++ ++This module is designed to impose quotas, both byte- and file-based, on FTP ++accounts, based on user, group, class, or for all accounts. It is based on ++the ideas contained in Eric Estabrook's mod_quota; however, this module has ++been written from scratch to implement quotas in a very different manner. A ++more detailed explanation of the usage of this module follows the directive ++explanations. ++ ++The most current version of mod_quotatab's submodules supports storage of ++quota table information in various formats: ++ ++ * mod_quotatab_file for file-based quota tables ++ * mod_quotatab_sql for SQL-based quota tables ++ ++The most current version of mod_quotatab can be found at: ++ ++ http://www.castaglia.org/proftpd/ ++ ++The eventual goal of this module is to make use of the Confstream API, an ++experimental API described here. This API would make support for tables in ++other formats (e.g. LDAP, CDB, DBM) much easier to implement. ++ ++Author ++ ++Please contact TJ Saunders with any questions, ++concerns, or suggestions regarding this module. ++ ++Thanks ++ ++2002-01-12: Thanks to SupaFly for helping debug an ++issue with a missing tally table. ++ ++2002-03-30: Thanks to Kai Langheim for pointing out several ++small bugs affecting users with no quota entries. ++ ++Directives ++ ++ * QuotaDirectoryTally ++ * QuotaDisplayUnits ++ * QuotaEngine ++ * QuotaLimitTable ++ * QuotaLog ++ * QuotaShowQuotas ++ * QuotaTallyTable ++ ++SITE Commands ++ ++ * SITE QUOTA ++ ++ ------------------------------------------------------------------------ ++ ++QuotaDirectoryTally ++ ++Syntax: QuotaDirectoryTally on|off ++Default: QuotaDirectoryTally off ++Context: server config, , ++Module: mod_quotatab ++Compatibility: 1.2.5rc2 and later ++ ++The QuotaDirectoryTally directive configures mod_quotatab to take directory ++operations (e.g. creating a directory, removing a directory) into account ++when tallying. ++ ++ ------------------------------------------------------------------------ ++ ++QuotaDisplayUnits ++ ++Syntax: QuotaDisplayUnits "b"|"Kb"|"Mb"|"Gb" ++Default: None ++Context: server config, , ++Module: mod_quotatab ++Compatibility: 1.2.5rc2 and later ++ ++This directive configures how the user's current byte quota values will be ++reported to them. Note that this directive does not affect how the quota ++values are stored in the quota table, only their presentation to the user. ++ ++"b" causes quotas to be displayed in bytes; "Kb", kilobytes; "Mb", ++megabytes; and "Gb", gigabytes. ++ ++Example: ++ ++ # display quota information in megabytes ++ QuotaDisplayUnits Mb ++ ++ ------------------------------------------------------------------------ ++ ++QuotaEngine ++ ++Syntax: QuotaEngine on|off ++Default: None ++Context: server config, , ++Module: mod_quotatab ++Compatibility: 1.2.5rc2 and later ++ ++The QuotaEngine directive enables or disables the module's runtime quota ++engine. If it is set to off this module does no runtime processing at all. ++Use this directive to disable the module instead of commenting out all ++mod_quotatab directives. ++ ++ ------------------------------------------------------------------------ ++ ++QuotaLimitTable ++ ++Syntax: QuotaLimitTable source-type:source-info ++Default: None ++Context: ++Module: mod_quotatab ++Compatibility: 1.2.5rc2 and later ++ ++This directive configures the information necessary for the module to locate ++and use the table containing the quota limit, the maximum number of bytes ++and/or files defined for use by specific users, groups, classes, etc, and is ++required for mod_quotatab to function. ++ ++Please consult the relevant submodule documentation for details on that ++module's syntax for this configuration directive. ++ ++See also: QuotaTallyTable ++ ++ ------------------------------------------------------------------------ ++ ++QuotaLog ++ ++Syntax: QuotaLog file|"none" ++Default: None ++Context: ++Module: mod_quotatab ++Compatibility: 1.2.5rc2 and later ++ ++The QuotaLog directive is used to a specify a log file for mod_quotatab ++reporting, and can be done a per-server basis. The file parameter must be ++the full path to the file to use for logging. Note that this path must not ++be to a world-writeable directory and, unless AllowLogSymlinks is explicitly ++set to on (generally a bad idea), the path must not be a symbolic link. ++ ++If file is "none", no logging will be done at all; this setting can be used ++to override a QuotaLog setting inherited from a context. ++ ++ ------------------------------------------------------------------------ ++ ++QuotaShowQuotas ++ ++Syntax: QuotaShowQuotas on|off ++Default: on ++Context: ++Module: mod_quotatab ++Compatibility: 1.2.5rc2 and later ++ ++The QuotaShowQuotas directive can be used to enable/disable mod_quotatab's ++response to a SITE QUOTA request. For some sites, revealing the current ++quota information may be considered an unnecessary, perhaps even ++detrimental, information leak; other sites may consider this a definite ++feature. ++ ++ ------------------------------------------------------------------------ ++ ++QuotaTallyTable ++ ++Syntax: QuotaTallyTable source-type:source-info ++Default: None ++Context: ++Module: mod_quotatab ++Compatibility: 1.2.5rc2 and later ++ ++This directive configures the information necessary for the module to locate ++and use the table containing the quota tally, or the current byte/file ++counts for users, groups, classes, etc, and is required for mod_quotatab to ++function. ++ ++Please consult the relevant submodule documentation for details on that ++module's syntax for this configuration directive. ++ ++See also: QuotaLimitTable ++ ++ ------------------------------------------------------------------------ ++ ++SITE QUOTA ++ ++The SITE QUOTA command will display the quota, both the limit and the ++current tally, to the client. This SITE command accepts no parameters, and ++can only be used once the client has successfully logged in. ++ ++Example: ++ ++ftp> quote SITE QUOTA ++200-The current quota for this session are [current/limit]: ++ Name: tj ++ Quota Type: User ++ Per Session: True ++ Limit Type: Hard ++ Uploaded Kb: unlimited ++ Downloaded Kb: unlimited ++ Transferred Kb: unlimited ++ Uploaded files: 1/1 ++ Downloaded files: unlimited ++ Transferred files: unlimited ++200 Please contact root@familiar.castaglia.org if these entries are inaccurate ++ftp> ++ ++Use of this SITE command can be controlled via , e.g.: ++ ++ ++ AllowUser tj ++ DenyAll ++ ++ ++Like many SITE commands, the FTP client will probably not recognize or ++support SITE QUOTA. Hopefully the client does have the ability to send ++arbitrary commands to the server, as the common ftp(1) client does via ++quote. ++ ++The email address displayed in the SITE QUOTA output can be configured via ++the ServerAdmin directive. ++ ++ ------------------------------------------------------------------------ ++ ++Usage ++ ++To use mod_quotatab's functionality, you must first define the tables that ++together contain the quota information. ++ ++There are two such quota tables: one table for providing quota information ++about the absolute byte/file limits for users, groups, and classes, and a ++separate table for maintaining the current tally, or number of bytes/files ++used, for those same users, groups, and classes. This separation of ++information allows for a configuration such as using LDAP to efficiently ++distribute the limit information, and local SQL databases for efficiently ++storing the tally. The limit table is considered a read-only table, and is ++only accessed at the start of session in order to determine what the session ++limits should be. The tally table is accessed in read-write mode, and is ++updated after the relevant FTP commands have been processed. ++ ++This module was not explicitly designed for easy interaction with other ++applications, but rather for other criteria: ++ ++ * efficient lookups and updates ++ * no need for ~/.quota files ++ * no need of requirement for root privileges to access quotas ++ * easy support for an abstraction layer for storing quota information in ++ other formats ++ * support for a SITE command that allows users to view their current ++ quotas ++ ++This module maintains its quotas based solely on FTP commands - it does not ++enforce quotas based on files that may have been added, deleted, or moved ++via shell access or any mechanism other than through the proftpd server. ++ ++When a client logs in, assuming QuotaEngine is on, mod_quotatab will check ++the limit table for the record most appropriate for that client. This check ++first examines the table for records of type user that match the client's ++login name. If no such matching records are found, it checks for records of ++type group that match any of the user's groups (both primary and ++supplemental). Failing that, it will check for records of type class that ++belong to the class (if enabled) from which the client is connecting. If ++still no matching records are found, the table will be searched for a record ++of type all; if absent, the module will assume that no quotas apply to the ++client. ++ ++Once the limits for the current session have been established, mod_quotatab ++examines the tally table to see what the current numbers in the matching ++tally record are. Should the client have an applicable limit record but no ++matching tally record, the module will initialize a new record in the tally ++table. ++ ++For the purposes of tracking the number of uploaded bytes/files, the tally ++will be adjusted accordingly upon use of the following FTP commands: APPE ++(bytes only), DELE, STOR, and STOU. The number of bytes used for the ++calculation will be determined from the difference in file size of the file ++in question. ++ ++For the purposes of tracking the number of downloaded bytes/files, the tally ++will be adjusted accordingly upon use of the following FTP commands: RETR. ++The number of bytes used for the calculation will be determined from the ++number of bytes sent to the client. ++ ++For the purposes of tracking the number of transferred bytes/files, the ++tally will be adjusted accordingly upon use of the following FTP commands: ++APPE (bytes only), DELE, RETR, STOR, and STOU. The number of bytes used for ++the calculation will be determined from the number of bytes sent to the ++client. This type of limit allows for byte/file limits to be set that ++encompass both uploads and downloads. ++ ++Note that if all three types of quotas are set (upload, download, and ++transfer), any quota reached will cause denial of FTP commands. This means ++that a high upload quota will never be reached if a low transfer quota is in ++effect. This holds true for bytes and files quota. For example, if a user ++has a limited number of both bytes and files to be uploaded in their limit ++record, the first limit reached (bytes or files) is the effective limit. ++Caveat emptor. ++ ++For any quota limit that is set as "unlimited", mod_quotatab will not keep ++the tally. Many site administrators might want this ability, for accounting ++purposes. However, that ability is outside of the intended design of this ++module; other logging modules are much better suited for accounting purposes ++(e.g. mod_sql's SQLLog directive). ++ ++If any developers wish to make use of mod_quotatab's quota information, or ++to develop a new submodule, there is developer documentation available here. ++ ++ ------------------------------------------------------------------------ ++ ++Installation ++ ++To install mod_quotatab, follow these instructions. After unpacking the ++tarball, copy the mod_quotatab.c, mod_quotatab.h, mod_quotatab_file.c, and ++mod_quotatab_sql.c files into: ++ ++ proftpd-dir/contrib/ ++ ++after unpacking the latest proftpd-1.2 source code. Follow the usual steps ++for using third-party modules in proftpd: ++ ++ ./configure --with-modules=quotatab-modules ++ make ++ make install ++ ++where quotatab-modules will depend on the types of quota tables you wish to ++support. ++ ++For file-based quota tables, include the mod_quotatab_file submodule, e.g.: ++ ++ mod_quotatab:mod_quotatab_file ++ ++For SQL-based quota tables, include the mod_quotatab_sql submodule, e.g.: ++ ++ mod_quotatab:mod_quotatab_sql ++ ++And, if you wish to support file- and SQL-based quota tables: ++ ++ mod_quotatab:mod_quotatab_file:mod_quotatab_sql ++ ++Note that SQL tables require that a correct installation of mod_sql (and any ++of its backend modules) also be used. Consult the mod_sql documentation for ++installation instructions for that module. ++ ++ ------------------------------------------------------------------------ ++ ++Author: $Author: frankie $ ++Last Updated: $Date: 2003/11/17 15:30:12 $ ++ ++ ------------------------------------------------------------------------ ++ Copyright 2000-2002 TJ Saunders ++All Rights Reserved ++ ------------------------------------------------------------------------ --- proftpd-1.2.10.orig/debian/patches/20.core.create-home.diff +++ proftpd-1.2.10/debian/patches/20.core.create-home.diff @@ -0,0 +1,21 @@ +diff -ruN proftpd-1.2.10-old/src/mkhome.c proftpd-1.2.10/src/mkhome.c +--- proftpd-1.2.10-old/src/mkhome.c 2004-05-13 03:13:57.000000000 +0200 ++++ proftpd-1.2.10/src/mkhome.c 2004-10-11 14:01:23.000000000 +0200 +@@ -23,7 +23,7 @@ + */ + + /* Home-on-demand support +- * $Id: mkhome.c,v 1.6 2004/05/13 01:13:57 castaglia Exp $ ++ * $Id: mkhome.c,v 1.7 2004/09/26 17:57:37 castaglia Exp $ + */ + + #include "conf.h" +@@ -86,6 +86,8 @@ + return -1; + } + ++ pr_event_generate("core.create-home", user); ++ + pr_log_debug(DEBUG3, "creating home directory '%s' for user '%s'", path, + user); + tmppath = pstrdup(p, path); --- proftpd-1.2.10.orig/debian/patches/24.mod_ifsession.c.diff +++ proftpd-1.2.10/debian/patches/24.mod_ifsession.c.diff @@ -0,0 +1,25 @@ +diff -ruN proftpd-1.2.10-old/contrib/mod_ifsession.c proftpd-1.2.10/contrib/mod_ifsession.c +--- proftpd-1.2.10-old/contrib/mod_ifsession.c 2004-07-08 23:38:24.000000000 +0200 ++++ proftpd-1.2.10/contrib/mod_ifsession.c 2004-12-18 09:26:13.000000000 +0100 +@@ -2,7 +2,7 @@ + * ProFTPD: mod_ifsession -- a module supporting conditional + * per-user/group/class configuration contexts. + * +- * Copyright (c) 2002-2003 TJ Saunders ++ * Copyright (c) 2002-2004 TJ Saunders + * + * 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 +@@ -106,9 +106,10 @@ + } + + static void ifsess_dup_set(pool *dst_pool, xaset_t *dst, xaset_t *src) { +- config_rec *c = NULL; ++ config_rec *c, *next; + +- for (c = (config_rec *) src->xas_list; c; c = c->next) { ++ for (c = (config_rec *) src->xas_list; c; c = next) { ++ next = c->next; + + /* Skip the context lists. */ + if (c->config_type == IFSESS_CLASS_NUMBER || --- proftpd-1.2.10.orig/debian/patches/09.mod_xfer.c.diff +++ proftpd-1.2.10/debian/patches/09.mod_xfer.c.diff @@ -0,0 +1,21 @@ +diff -urN proftpd-1.2.8/modules/mod_xfer.c proftpd-1.2.8-debian/modules/mod_xfer.c +--- proftpd-1.2.8/modules/mod_xfer.c 2003-02-25 02:39:35.000000000 +0100 ++++ proftpd-1.2.8-debian/modules/mod_xfer.c 2003-03-17 15:30:33.000000000 +0100 +@@ -1407,11 +1407,13 @@ + + fmode = file_mode(dir); + ++ if(!fmode) { ++ pr_response_add_err(R_550,"%s: %s",cmd->arg,strerror(errno)); ++ return ERROR(cmd); ++ } ++ + if (!S_ISREG(fmode)) { +- if (!fmode) +- pr_response_add_err(R_550, "%s: %s", cmd->arg, strerror(errno)); +- else +- pr_response_add_err(R_550, "%s: Not a regular file", cmd->arg); ++ pr_response_add_err(R_550,"%s: Not a regular file",cmd->arg); + return ERROR(cmd); + } + --- proftpd-1.2.10.orig/debian/patches/26.mod_radius.c.diff +++ proftpd-1.2.10/debian/patches/26.mod_radius.c.diff @@ -0,0 +1,52 @@ +diff -ruN proftpd-1.2.10-old/contrib/mod_radius.c proftpd-1.2.10/contrib/mod_radius.c +--- proftpd-1.2.10-old/contrib/mod_radius.c 2003-11-09 22:18:05.000000000 +0100 ++++ proftpd-1.2.10/contrib/mod_radius.c 2005-01-08 09:54:57.000000000 +0100 +@@ -1,7 +1,7 @@ + /* + * ProFTPD: mod_radius -- a module for RADIUS authentication and accounting + * +- * Copyright (c) 2001-2003 TJ Saunders ++ * Copyright (c) 2001-2005 TJ Saunders + * + * 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 +@@ -2384,8 +2384,8 @@ + CONF_ERROR(cmd, "timeout must be greater than or equal to zero"); + + c = add_config_param(cmd->argv[0], 1, NULL); +- c->argv[0] = pcalloc(c->pool, sizeof(radius_server_t)); +- ((radius_server_t *) c->argv[0]) = radius_server; ++ c->argv[0] = pcalloc(c->pool, sizeof(radius_server_t *)); ++ *((radius_server_t **) c->argv[0]) = radius_server; + + return HANDLED(cmd); + } +@@ -2430,8 +2430,8 @@ + CONF_ERROR(cmd, "timeout must be greater than or equal to zero"); + + c = add_config_param(cmd->argv[0], 1, NULL); +- c->argv[0] = pcalloc(c->pool, sizeof(radius_server_t)); +- ((radius_server_t *) c->argv[0]) = radius_server; ++ c->argv[0] = pcalloc(c->pool, sizeof(radius_server_t *)); ++ *((radius_server_t **) c->argv[0]) = radius_server; + + return HANDLED(cmd); + } +@@ -2677,7 +2677,7 @@ + current_server = &radius_acct_server; + + while (c) { +- *current_server = (radius_server_t *) c->argv[0]; ++ *current_server = *((radius_server_t **) c->argv[0]); + current_server = &(*current_server)->next; + + c = find_config_next(c, c->next, CONF_PARAM, "RadiusAcctServer", FALSE); +@@ -2692,7 +2692,7 @@ + current_server = &radius_auth_server; + + while (c) { +- *current_server = (radius_server_t *) c->argv[0]; ++ *current_server = *((radius_server_t **) c->argv[0]); + current_server = &(*current_server)->next; + + c = find_config_next(c, c->next, CONF_PARAM, "RadiusAuthServer", FALSE); --- proftpd-1.2.10.orig/debian/patches/23.timeout.diff +++ proftpd-1.2.10/debian/patches/23.timeout.diff @@ -0,0 +1,61 @@ +diff -ruN proftpd-1.2.10-old/include/timers.h proftpd-1.2.10/include/timers.h +--- proftpd-1.2.10-old/include/timers.h 2003-02-12 09:49:14.000000000 +0100 ++++ proftpd-1.2.10/include/timers.h 2004-11-29 14:15:28.000000000 +0100 +@@ -49,5 +49,6 @@ + int timer_sleep(int); + void handle_alarm(void); + void set_sig_alarm(void); ++void timers_init(void); + + #endif /* __TIMERS_H */ +diff -ruN proftpd-1.2.10-old/src/main.c proftpd-1.2.10/src/main.c +--- proftpd-1.2.10-old/src/main.c 2004-08-08 00:22:42.000000000 +0200 ++++ proftpd-1.2.10/src/main.c 2004-11-29 14:15:28.000000000 +0100 +@@ -1317,6 +1317,9 @@ + else + pr_log_debug(DEBUG2, "FTP session requested from unknown class"); + ++ /* Prepare the Timers API. */ ++ timers_init(); ++ + /* Inform all the modules that we are now a child */ + pr_log_debug(DEBUG7, "performing module session initializations"); + +diff -ruN proftpd-1.2.10-old/src/timers.c proftpd-1.2.10/src/timers.c +--- proftpd-1.2.10-old/src/timers.c 2004-07-15 02:07:00.000000000 +0200 ++++ proftpd-1.2.10/src/timers.c 2004-11-29 14:15:28.000000000 +0100 +@@ -41,13 +41,12 @@ + static int alarms_blocked = 0,alarm_pending = 0; + static xaset_t *timers = NULL; + static xaset_t *recycled = NULL; ++static xaset_t *free_timers = NULL; + static int _indispatch = 0; + static int dynamic_timerno = 1024; + static unsigned int nalarms = 0; + static time_t _alarmed_time = 0; + +-xaset_t *free_timers = NULL; +- + static int timer_cmp(timer_t *t1, timer_t *t2) { + if (t1->count < t2->count) + return -1; +@@ -383,3 +382,19 @@ + + return 0; + } ++ ++void timers_init(void) { ++ ++ /* Reset some of the key static variables. */ ++ _current_timeout = 0; ++ _total_time = 0; ++ nalarms = 0; ++ _alarmed_time = 0; ++ ++ /* Don't inherit the parent's timer lists. */ ++ timers = NULL; ++ recycled = NULL; ++ free_timers = NULL; ++ ++ return; ++} --- proftpd-1.2.10.orig/debian/patches/15.mod_sql_mysql.c.diff +++ proftpd-1.2.10/debian/patches/15.mod_sql_mysql.c.diff @@ -0,0 +1,12 @@ +diff -ruN proftpd-1.2.10-old/contrib/mod_sql_mysql.c proftpd-1.2.10/contrib/mod_sql_mysql.c +--- proftpd-1.2.10-old/contrib/mod_sql_mysql.c 2004-05-08 05:21:46.000000000 +0200 ++++ proftpd-1.2.10/contrib/mod_sql_mysql.c 2004-09-15 15:50:47.000000000 +0200 +@@ -134,7 +134,7 @@ + + #define _MYSQL_PORT "3306" + +-#include ++#include + #include "conf.h" + #include "../contrib/mod_sql.h" + --- proftpd-1.2.10.orig/debian/patches/25.mod_quotatab_ldap.c.diff +++ proftpd-1.2.10/debian/patches/25.mod_quotatab_ldap.c.diff @@ -0,0 +1,34 @@ +diff -ruN proftpd-1.2.10-old/contrib/mod_quotatab_ldap.c proftpd-1.2.10/contrib/mod_quotatab_ldap.c +--- proftpd-1.2.10-old/contrib/mod_quotatab_ldap.c 2003-12-03 08:39:36.000000000 +0100 ++++ proftpd-1.2.10/contrib/mod_quotatab_ldap.c 2005-01-04 23:44:22.000000000 +0100 +@@ -48,7 +48,7 @@ + } + + /* Find the cmdtable for the ldap_quota_lookup command. */ +- if ((ldap_cmdtab = pr_stash_get_symbol(PR_SYM_CMD, "ldap_quota_lookup", NULL, NULL)) == NULL) { ++ if ((ldap_cmdtab = pr_stash_get_symbol(PR_SYM_HOOK, "ldap_quota_lookup", NULL, NULL)) == NULL) { + quotatab_log("error: unable to find LDAP hook symbol 'ldap_quota_lookup'"); + return FALSE; + } +@@ -57,7 +57,7 @@ + tmp_pool = make_sub_pool(ldaptab->tab_pool); + + /* Prepare the command and call the handler. */ +- ldap_cmd = pr_cmd_alloc(tmp_pool, 4, name); ++ ldap_cmd = pr_cmd_alloc(tmp_pool, 1, name); + ldap_res = call_module(ldap_cmdtab->m, ldap_cmdtab->handler, ldap_cmd); + + destroy_pool(tmp_pool); +@@ -131,8 +131,12 @@ + return tab; + } + ++/* Initialization routines ++ */ ++ + static int ldaptab_init(void) { + quotatab_register("ldap", ldaptab_open, QUOTATAB_LIMIT_SRC); ++ + return 0; + } + --- proftpd-1.2.10.orig/debian/patches/11.mod_auth.c.shell.null.segfault.diff +++ proftpd-1.2.10/debian/patches/11.mod_auth.c.shell.null.segfault.diff @@ -0,0 +1,11 @@ +--- proftpd-1.2.7/modules/mod_auth.c 2002-12-04 20:14:31.000000000 +0100 ++++ proftpd-1.2.7/modules/mod_auth.c.debian 2003-01-27 12:32:58.000000000 +0100 +@@ -511,7 +511,7 @@ + while (fgets(buf, sizeof(buf)-1, shellf)) { + buf[sizeof(buf)-1] = '\0'; CHOP(buf); + +- if (!strcmp(shell, buf)) { ++ if (shell && !strcmp(shell, buf)) { + res = TRUE; + break; + } --- proftpd-1.2.10.orig/debian/patches/07.autoconf.diff +++ proftpd-1.2.10/debian/patches/07.autoconf.diff @@ -0,0 +1,27 @@ +diff -ruN proftpd-1.2.9-old/Makefile.in proftpd-1.2.9/Makefile.in +--- proftpd-1.2.9-old/Makefile.in 2004-05-12 14:35:36.000000000 +0200 ++++ proftpd-1.2.9/Makefile.in 2004-05-12 14:40:45.000000000 +0200 +@@ -147,17 +147,17 @@ + + + # autoheader might not change config.h.in, so touch a stamp file. +-${srcdir}/config.h.in: stamp-h.in +-${srcdir}/stamp-h.in: configure.in acconfig.h +- cd ${srcdir} && autoheader +- echo timestamp > ${srcdir}/stamp-h.in ++#${srcdir}/config.h.in: stamp-h.in ++#${srcdir}/stamp-h.in: configure.ac acconfig.h ++# cd ${srcdir} && autoheader ++# echo timestamp > ${srcdir}/stamp-h.in + + config.h: stamp-h + stamp-h: config.h.in config.status + ./config.status + +-${srcdir}/configure: configure.in +- cd ${srcdir} && autoconf ++#${srcdir}/configure: configure.ac ++# cd ${srcdir} && autoconf + + Make.rules: Make.rules.in config.status + ./config.status --- proftpd-1.2.10.orig/debian/patches/31.mod_sql.c.diff +++ proftpd-1.2.10/debian/patches/31.mod_sql.c.diff @@ -0,0 +1,39 @@ +diff -ruN proftpd-1.2.10-old/contrib/mod_sql.c proftpd-1.2.10/contrib/mod_sql.c +--- proftpd-1.2.10-old/contrib/mod_sql.c 2005-06-30 09:53:11.000000000 +0200 ++++ proftpd-1.2.10/contrib/mod_sql.c 2005-06-30 09:55:48.000000000 +0200 +@@ -2036,7 +2036,7 @@ + *outsp++ = 0; + + /* add the response */ +- pr_response_add( c->argv[0], outs); ++ pr_response_add( c->argv[0], "%s", outs); + + } while((c = find_config_next(c, c->next, CONF_PARAM, name, FALSE)) != NULL); + +@@ -2110,7 +2110,7 @@ + *outsp++ = 0; + + /* add the response */ +- pr_response_add( c->argv[0], outs); ++ pr_response_add(c->argv[0], "%s", outs); + + } while((c = find_config_next(c, c->next, CONF_PARAM, name, FALSE)) != NULL); + +@@ -2201,7 +2201,7 @@ + *outsp++ = 0; + + /* add the response */ +- pr_response_add_err( c->argv[0], outs); ++ pr_response_add_err( c->argv[0], "%s", outs); + + } while((c = find_config_next(c, c->next, CONF_PARAM, name, FALSE)) != NULL); + +@@ -2275,7 +2275,7 @@ + *outsp++ = 0; + + /* add the response */ +- pr_response_add( c->argv[0], outs); ++ pr_response_add(c->argv[0], "%s", outs); + + } while((c = find_config_next(c, c->next, CONF_PARAM, name, FALSE)) != NULL); + --- proftpd-1.2.10.orig/debian/patches/28.mod_ls.c.diff +++ proftpd-1.2.10/debian/patches/28.mod_ls.c.diff @@ -0,0 +1,22 @@ +diff -ruN proftpd-1.2.10-old/modules/mod_ls.c proftpd-1.2.10/modules/mod_ls.c +--- proftpd-1.2.10-old/modules/mod_ls.c 2004-05-07 23:31:30.000000000 +0200 ++++ proftpd-1.2.10/modules/mod_ls.c 2005-05-11 13:36:43.684693784 +0200 +@@ -934,7 +934,17 @@ + d = listfile(cmd, workp, *s); + } + +- if (d == 2) ++ if (opt_R && d == 0) { ++ ++ /* This is a nasty hack. If listfile() returns a zero, and we ++ * will be recursing (-R option), make sure we don't try to list ++ * this file again by changing the first character of the path ++ * to ".". Such files are skipped later. ++ */ ++ **s = '.'; ++ *(*s + 1) = '\0'; ++ ++ } else if (d == 2) + break; + + s++; --- proftpd-1.2.10.orig/debian/patches/27.mod_quotatab_sql.c.diff +++ proftpd-1.2.10/debian/patches/27.mod_quotatab_sql.c.diff @@ -0,0 +1,12 @@ +diff -ruN proftpd-1.2.10-old/contrib/mod_quotatab_sql.c proftpd-1.2.10/contrib/mod_quotatab_sql.c +--- proftpd-1.2.10-old/contrib/mod_quotatab_sql.c 2004-06-08 00:58:44.000000000 +0200 ++++ proftpd-1.2.10/contrib/mod_quotatab_sql.c 2005-01-11 11:54:50.000000000 +0100 +@@ -685,7 +685,7 @@ + } + + tab->tab_data = pcalloc(tab->tab_pool, sizeof(char)); +- ((char *) tab->tab_data) = pstrdup(tab->tab_pool, select_query); ++ tab->tab_data = pstrdup(tab->tab_pool, select_query); + } + + /* Set all the necessary function pointers. */ --- proftpd-1.2.10.orig/debian/patches/01.contrib.mod_ldap.c.diff +++ proftpd-1.2.10/debian/patches/01.contrib.mod_ldap.c.diff @@ -0,0 +1,1259 @@ +diff -ruN proftpd-1.2.10-old/contrib/mod_ldap.c proftpd-1.2.10/contrib/mod_ldap.c +--- proftpd-1.2.10-old/contrib/mod_ldap.c 2004-07-22 02:11:22.000000000 +0200 ++++ proftpd-1.2.10/contrib/mod_ldap.c 2006-01-11 14:16:22.000000000 +0100 +@@ -1,5 +1,6 @@ +-/* mod_ldap - LDAP password lookup module for ProFTPD +- * Copyright (c) 1999, 2000-3, John Morrissey ++/* ++ * mod_ldap - LDAP password lookup module for ProFTPD ++ * Copyright (c) 1999, 2000-5, John Morrissey + * + * 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 +@@ -21,11 +22,12 @@ + */ + + /* +- * mod_ldap v2.8.12 ++ * mod_ldap v2.8.15 + * + * Thanks for patches go to (in alphabetical order): + * + * Peter Fabian (fabian at staff dot matavnet dot hu) - LDAPAuthBinds ++ * Marek Gradzki (mgradzki at ost dot net dot pl) - LDAPProtocolVersion + * Pierrick Hascoet (pierrick at alias dot fr) - OpenSSL password hash support + * Florian Lohoff (flo at rfc822 dot org) - LDAPForceDefault[UG]ID code + * Steve Luzynski (steve at uniteone dot net) - HomedirOnDemandPrefix support +@@ -45,51 +47,15 @@ + * LDAPDefaultAuthScheme + * + * +- * $Id: mod_ldap.c,v 1.33 2004/07/22 00:11:22 castaglia Exp $ ++ * $Id: mod_ldap.c,v 1.38 2005/03/11 20:44:11 jwm Exp $ + * $Libraries: -lldap -llber$ + */ + +-/* You can override the attribute names that mod_ldap uses here. */ +- +-/* User attributes */ +-#ifndef UID_ATTR +-#define UID_ATTR "uid" +-#endif +-#ifndef UIDNUMBER_ATTR +-#define UIDNUMBER_ATTR "uidNumber" +-#endif +-#ifndef GIDNUMBER_ATTR +-#define GIDNUMBER_ATTR "gidNumber" +-#endif +-#ifndef HOMEDIRECTORY_ATTR +-#define HOMEDIRECTORY_ATTR "homeDirectory" +-#endif +-#ifndef USERPASSWORD_ATTR +-#define USERPASSWORD_ATTR "userPassword" +-#endif +-#ifndef LOGINSHELL_ATTR +-#define LOGINSHELL_ATTR "loginShell" +-#endif +- +-/* Group attributes */ +-/* NOTE: gidNumber (above) is also a group attribute. */ +-#ifndef CN_ATTR +-#define CN_ATTR "cn" +-#endif +-#ifndef MEMBERUID_ATTR +-#define MEMBERUID_ATTR "memberUid" +-#endif +- +-/* Quota attributes */ +-#ifndef QUOTA_ATTR +-#define QUOTA_ATTR "ftpQuota" +-#endif +- +-/* Uncomment this to use LDAPv3 TLS. If enabled, we will try to enable +- * TLS after connecting to the LDAP server. If TLS cannot be enabled, the +- * LDAP connection will fail. ++/* Uncomment this to use LDAP TLS. If enabled, we will try to enable TLS ++ * after connecting to the LDAP server. If TLS cannot be enabled, the LDAP ++ * connection will fail. + */ +-/* #define USE_LDAPV3_TLS */ ++/* #define USE_LDAP_TLS */ + + /* Uncomment this if you have OpenSSL and wish to verify non-crypt() + * password hashes locally with OpenSSL. You'll also need to edit +@@ -104,12 +70,15 @@ + * at http://bugs.proftpd.org/. + */ + +-/* Default mode to use when creating home directory on demand. */ +-#define DEFAULT_HOMEDIR_MODE 0755 +- + #include "conf.h" + #include "privs.h" + ++#define MOD_LDAP_VERSION "mod_ldap/2.8.14" ++ ++#if PROFTPD_VERSION_NUMBER < 0x0001021002 ++# error "mod_ldap " MOD_LDAP_VERSION " requires ProFTPD 1.2.10rc2 or later" ++#endif ++ + #if defined(HAVE_CRYPT_H) && !defined(AIX4) && !defined(AIX5) + # include + #endif +@@ -124,7 +93,7 @@ + #include + #include + +-/* Sun fucks my shit right up. */ ++/* Thanks, Sun. */ + #ifndef LDAP_OPT_SUCCESS + # define LDAP_OPT_SUCCESS LDAP_SUCCESS + #endif +@@ -164,15 +133,22 @@ + *ldap_auth_basedn, *ldap_uid_basedn, *ldap_gid_basedn, + *ldap_quota_basedn, + *ldap_defaultauthscheme, *ldap_authbind_dn, +- *ldap_hdod_prefix, **ldap_hdod_suffix, +- *ldap_default_quota; ++ *ldap_genhdir_prefix, *ldap_default_quota, ++ *ldap_attr_uid = "uid", ++ *ldap_attr_uidnumber = "uidNumber", ++ *ldap_attr_gidnumber = "gidNumber", ++ *ldap_attr_homedirectory = "homeDirectory", ++ *ldap_attr_userpassword = "userPassword", ++ *ldap_attr_loginshell = "loginShell", ++ *ldap_attr_cn = "cn", ++ *ldap_attr_memberuid = "memberUid", ++ *ldap_attr_ftpquota = "ftpQuota"; + static int ldap_doauth = 0, ldap_douid = 0, ldap_dogid = 0, ldap_doquota = 0, + ldap_authbinds = 1, ldap_negcache = 1, +- ldap_querytimeout = 0, ldap_hdod = 0, ldap_hdod_prefix_nouname = 0, ++ ldap_querytimeout = 0, ldap_genhdir = 0, ldap_genhdir_prefix_nouname = 0, + ldap_forcedefaultuid = 0, ldap_forcedefaultgid = 0, +- ldap_forcehdod = 0, ++ ldap_forcegenhdir = 0, ldap_protocol_version = 3, + ldap_search_scope = LDAP_SCOPE_SUBTREE; +-static mode_t ldap_hdod_mode = DEFAULT_HOMEDIR_MODE; + static struct timeval ldap_querytimeout_tp; + + /* We get these values from get_param_int(), which returns a long. On +@@ -183,11 +159,11 @@ + static uid_t ldap_defaultuid = -1; + static gid_t ldap_defaultgid = -1; + +-#ifdef USE_LDAPV3_TLS ++#ifdef USE_LDAP_TLS + static int ldap_use_tls = 0; + #endif + +-static LDAP *ld; ++static LDAP *ld = NULL; + static struct passwd *pw = NULL; + static struct group *gr = NULL; + array_header *cached_quota = NULL; +@@ -202,19 +178,14 @@ + } + + static void +-pr_ldap_set_sizelimit(int limit) ++pr_ldap_set_sizelimit(LDAP *limit_ld, int limit) + { +- /* I couldn't think of a better way to do this without having autoconf +- * jump through hoops to detect whether ldap_set_option() is present. +- * I think this works fairly well, though, as we're sure to need +- * LDAP_OPT_SIZELIMIT to use ldap_set_option in this case. :-) +- */ + #ifdef LDAP_OPT_SIZELIMIT + int ret; +- if ((ret = ldap_set_option(ld, LDAP_OPT_SIZELIMIT, (void *)&limit)) != LDAP_OPT_SUCCESS) +- pr_log_pri(PR_LOG_ERR, "mod_ldap: pr_ldap_connect(): ldap_set_option() unable to set query size limit to %d entries: %s", limit, ldap_err2string(ret)); ++ if ((ret = ldap_set_option(limit_ld, LDAP_OPT_SIZELIMIT, (void *)&limit)) != LDAP_OPT_SUCCESS) ++ pr_log_pri(PR_LOG_ERR, "mod_ldap: pr_ldap_set_sizelimit(): ldap_set_option() unable to set query size limit to %d entries: %s", limit, ldap_err2string(ret)); + #else +- ld->ld_sizelimit = limit; ++ limit_ld->ld_sizelimit = limit; + #endif + } + +@@ -233,41 +204,53 @@ + } + + static int +-pr_ldap_connect(void) ++pr_ldap_connect(LDAP **conn_ld, int bind) + { +- int ret; +-#ifdef USE_LDAPV3_TLS +- int version = LDAP_VERSION3; +-#endif ++ int ret, version; + +- if ((ld = ldap_init(ldap_server, LDAP_PORT)) == NULL) { ++ if ((*conn_ld = ldap_init(ldap_server, LDAP_PORT)) == NULL) { + pr_log_pri(PR_LOG_ERR, "mod_ldap: pr_ldap_connect(): ldap_init() to %s failed: %s", ldap_server, strerror(errno)); + return -1; + } + +-#ifdef USE_LDAPV3_TLS +- if (ldap_use_tls == 1) { +- if ((ret = ldap_set_option(ld, LDAP_OPT_PROTOCOL_VERSION, &version)) != LDAP_OPT_SUCCESS) { ++ version = -1; ++ switch (ldap_protocol_version) { ++ case 2: ++ version = LDAP_VERSION2; ++ break; ++ case 3: ++ default: ++ version = LDAP_VERSION3; ++ break; ++ } ++ ++ if (version != -1) { ++ if ((ret = ldap_set_option(*conn_ld, LDAP_OPT_PROTOCOL_VERSION, &version)) != LDAP_OPT_SUCCESS) { + pr_log_pri(PR_LOG_ERR, "mod_ldap: pr_ldap_connect(): Setting LDAP version option failed: %s", ldap_err2string(ret)); + pr_ldap_unbind(); + return -1; + } ++ } + ++#ifdef USE_LDAP_TLS ++ if (ldap_use_tls == 1) { + pr_log_debug(DEBUG2, "mod_ldap: Starting TLS for this connection."); +- if ((ret = ldap_start_tls_s(ld, NULL, NULL)) != LDAP_SUCCESS) { ++ if ((ret = ldap_start_tls_s(*conn_ld, NULL, NULL)) != LDAP_SUCCESS) { + pr_log_pri(PR_LOG_ERR, "mod_ldap: pr_ldap_connect(): Starting TLS failed: %s", ldap_err2string(ret)); + pr_ldap_unbind(); + return -1; + } + } +-#endif /* USE_LDAPV3_TLS */ ++#endif /* USE_LDAP_TLS */ + +- if ((ret = ldap_simple_bind_s(ld, ldap_dn, ldap_dnpass) != LDAP_SUCCESS)) { +- pr_log_pri(PR_LOG_ERR, "mod_ldap: pr_ldap_connect(): ldap_simple_bind() as %s failed: %s", ldap_dn, ldap_err2string(ret)); +- return -1; ++ if (bind == TRUE) { ++ if ((ret = ldap_simple_bind_s(*conn_ld, ldap_dn, ldap_dnpass)) != LDAP_SUCCESS) { ++ pr_log_pri(PR_LOG_ERR, "mod_ldap: pr_ldap_connect(): ldap_simple_bind() as %s failed: %s", ldap_dn, ldap_err2string(ret)); ++ return -1; ++ } + } + +- pr_ldap_set_sizelimit(2); ++ pr_ldap_set_sizelimit(*conn_ld, 2); + + ldap_querytimeout_tp.tv_sec = (ldap_querytimeout > 0 ? ldap_querytimeout : 5); + ldap_querytimeout_tp.tv_usec = 0; +@@ -275,124 +258,6 @@ + return 1; + } + +-static void +-pr_ldap_mkdir(char *dir, mode_t mode, uid_t uid, gid_t gid) +-{ +- int ret; +- mode_t old_umask; +- struct stat st; +- +- ret = pr_fsio_stat(dir, &st); +- +- /* If the directory already exists, just return. */ +- if (ret == 0) +- return; +- else if (errno != ENOENT) { +- pr_log_pri(PR_LOG_WARNING, "mod_ldap: pr_ldap_mkdir(): unable to create directory %s: pr_fsio_stat() failed: %s", dir, strerror(errno)); +- return; +- } +- +- /* These permissions are absolute; we don't want them to be subject +- * to ProFTPD's Umask. +- */ +- old_umask = umask(0); +- +- PRIVS_ROOT; +- if (pr_fsio_mkdir(dir, mode) != 0) { +- PRIVS_RELINQUISH; +- pr_log_pri(PR_LOG_WARNING, "mod_ldap: pr_ldap_mkdir(): unable to create directory %s: %s", dir, strerror(errno)); +- return; +- } +- if (pr_fsio_chmod(dir, mode) == -1) { +- PRIVS_RELINQUISH; +- pr_log_pri(PR_LOG_WARNING, "mod_ldap: pr_ldap_chmod(): unable to chmod directory %s: %s", dir, strerror(errno)); +- return; +- } +- if (pr_fsio_chown(dir, uid, gid) == -1) { +- PRIVS_RELINQUISH; +- pr_log_pri(PR_LOG_WARNING, "mod_ldap: pr_ldap_mkdir(): unable to chown directory %s: %s", dir, strerror(errno)); +- return; +- } +- PRIVS_RELINQUISH; +- +- umask(old_umask); +-} +- +-static int +-pr_ldap_mkpath(pool *p, const char *path, mode_t mode) +-{ +- char *curpath, *currdir, *buf; +- struct stat st; +- +- /* If the full path already exists, just return without bothering to +- * stat() its individual components. +- */ +- if (pr_fsio_stat(path, &st) != -1) +- return 0; +- +- buf = pstrdup(p, path); +- +- /* Move past the leading / in an absolute path. */ +- if (buf && *buf == '/') +- ++buf; +- +- curpath = ""; +- while (buf && *buf) { +- currdir = strsep(&buf, "/"); +- curpath = pstrcat(p, curpath, "/", currdir, NULL); +- +- /* If buf is NULL, then we're creating the last part of the +- * directory (presumably, the user's home directory itself), so we +- * want to use the mode specified by the configuration and chown it +- * to the user's UID/GID. +- */ +- if ((buf == NULL) || (*buf == '\0')) +- pr_ldap_mkdir(curpath, mode, session.login_uid, session.login_gid); +- else +- pr_ldap_mkdir(curpath, 0755, 0, 0); +- } +- +- return 0; +-} +- +-static void +-create_homedir(pool *p, const char *homedir) +-{ +- int i; +- char *hdod_fulldir, *mode_pos, *suffix; +- mode_t mode; +- +- /* Make sure we were passed a valid directory to create. */ +- if (!homedir || !*homedir) +- return; +- +- if (ldap_hdod) +- if (pr_ldap_mkpath(p, homedir, ldap_hdod_mode) != 0) +- return; +- +- /* Loop through the suffixes and create them. If the mode separator (":") +- * is found, we'll use that mode on the suffix directory; if not, default +- * to ldap_hdod_mode. +- */ +- if (ldap_hdod_suffix) { +- for (i = 0; ldap_hdod_suffix[i] != NULL; ++i) { +- suffix = pstrdup(p, ldap_hdod_suffix[i]); +- if ((mode_pos = strrchr(suffix, ':')) != NULL && +- *(mode_pos + 1) != '\0') +- { +- *mode_pos = '\0'; +- mode_pos++; +- mode = strtol(mode_pos, (char **)NULL, 8); +- } +- else +- mode = ldap_hdod_mode; +- +- hdod_fulldir = pstrcat(p, homedir, "/", suffix, NULL); +- pr_ldap_mkdir(hdod_fulldir, mode, session.login_uid, session.login_gid); +- } +- } +-} +- + static char * + pr_ldap_generate_filter(pool *p, char *template, const char *entity) + { +@@ -407,7 +272,8 @@ + filter = pcalloc(p, strlen(template) - (num_escapes * 2) + (num_escapes * strlen(entity)) + 1); + + while (template[i] != '\0') { +- if (template[i] == '%' && template[i + 1] == 'v') { ++ /* Replace %u or %v with entity. */ ++ if (template[i] == '%' && (template[i + 1] == 'u' || template[i + 1] == 'v')) { + strcat(filter, entity); + j += strlen(entity); + i += 2; +@@ -439,7 +305,7 @@ + */ + if (ld == NULL) { + /* If we _still_ can't connect, give up and return NULL. */ +- if (pr_ldap_connect() == -1) ++ if (pr_ldap_connect(&ld, TRUE) == -1) + return NULL; + } + +@@ -449,7 +315,7 @@ + if (ret == LDAP_SERVER_DOWN) { + pr_log_pri(PR_LOG_ERR, "mod_ldap: pr_ldap_user_lookup(): LDAP server went away, trying to reconnect"); + +- if (pr_ldap_connect() == -1) { ++ if (pr_ldap_connect(&ld, TRUE) == -1) { + pr_log_pri(PR_LOG_ERR, "mod_ldap: pr_ldap_user_lookup(): LDAP server went away, unable to reconnect"); + ld = NULL; + return NULL; +@@ -489,9 +355,9 @@ + + /* If we can't find the [ug]idNumber attrs, just fill the passwd + struct in with default values from the config file. */ +- if (strcasecmp(ldap_attrs[i], UIDNUMBER_ATTR) == 0) { ++ if (strcasecmp(ldap_attrs[i], ldap_attr_uidnumber) == 0) { + if (ldap_defaultuid == -1) { +- pr_log_pri(PR_LOG_ERR, "mod_ldap: pr_ldap_user_lookup(): no " UIDNUMBER_ATTR " attr for DN %s and LDAPDefaultUID was not specified!", (dn = ldap_get_dn(ld, e))); ++ pr_log_pri(PR_LOG_ERR, "mod_ldap: pr_ldap_user_lookup(): no %s attr for DN %s and LDAPDefaultUID was not specified!", (dn = ldap_get_dn(ld, e)), ldap_attr_uidnumber); + free(dn); + return NULL; + } +@@ -500,9 +366,9 @@ + ++i; + continue; + } +- if (strcasecmp(ldap_attrs[i], GIDNUMBER_ATTR) == 0) { ++ if (strcasecmp(ldap_attrs[i], ldap_attr_gidnumber) == 0) { + if (ldap_defaultgid == -1) { +- pr_log_pri(PR_LOG_ERR, "mod_ldap: pr_ldap_user_lookup(): no " GIDNUMBER_ATTR " attr for DN %s and LDAPDefaultGID was not specified!", (dn = ldap_get_dn(ld, e))); ++ pr_log_pri(PR_LOG_ERR, "mod_ldap: pr_ldap_user_lookup(): no %s attr for DN %s and LDAPDefaultGID was not specified!", (dn = ldap_get_dn(ld, e)), ldap_attr_gidnumber); + free(dn); + return NULL; + } +@@ -512,24 +378,24 @@ + continue; + } + +- if (strcasecmp(ldap_attrs[i], HOMEDIRECTORY_ATTR) == 0) { +- if (!ldap_hdod || !ldap_hdod_prefix || !*ldap_hdod_prefix) { +- pr_log_pri(PR_LOG_ERR, "mod_ldap: pr_ldap_user_lookup(): no " HOMEDIRECTORY_ATTR " attr for DN %s and LDAPHomedirOnDemandPrefix was not enabled!", (dn = ldap_get_dn(ld, e))); ++ if (strcasecmp(ldap_attrs[i], ldap_attr_homedirectory) == 0) { ++ if (!ldap_genhdir || !ldap_genhdir_prefix || !*ldap_genhdir_prefix) { ++ pr_log_pri(PR_LOG_ERR, "mod_ldap: pr_ldap_user_lookup(): no %s attr for DN %s and LDAPGenerateHomedirPrefix was not enabled!", (dn = ldap_get_dn(ld, e)), ldap_attr_homedirectory); + free(dn); + return NULL; + } + +- if (ldap_hdod_prefix_nouname) +- pw->pw_dir = pstrcat(session.pool, ldap_hdod_prefix, NULL); ++ if (ldap_genhdir_prefix_nouname) ++ pw->pw_dir = pstrcat(session.pool, ldap_genhdir_prefix, NULL); + else { + char **canon_username; +- if ((canon_username = ldap_get_values(ld, e, UID_ATTR)) == NULL) { +- pr_log_pri(PR_LOG_ERR, "mod_ldap: pr_ldap_user_lookup(): couldn't get " UID_ATTR " attr for canonical username for %s", (dn = ldap_get_dn(ld, e))); ++ if ((canon_username = ldap_get_values(ld, e, ldap_attr_uid)) == NULL) { ++ pr_log_pri(PR_LOG_ERR, "mod_ldap: pr_ldap_user_lookup(): couldn't get %s attr for canonical username for %s", (dn = ldap_get_dn(ld, e)), ldap_attr_uid); + free(dn); + return NULL; + } + +- pw->pw_dir = pstrcat(session.pool, ldap_hdod_prefix, "/", canon_username[0], NULL); ++ pw->pw_dir = pstrcat(session.pool, ldap_genhdir_prefix, "/", canon_username[0], NULL); + ldap_value_free(canon_username); + } + +@@ -538,7 +404,7 @@ + } + + /* Don't worry if we don't have a loginShell attr. */ +- if (strcasecmp(ldap_attrs[i], LOGINSHELL_ATTR) == 0) { ++ if (strcasecmp(ldap_attrs[i], ldap_attr_loginshell) == 0) { + /* Prevent a segfault if no loginShell attr && RequireValidShell on. */ + pw->pw_shell = pstrdup(session.pool, ""); + ++i; +@@ -562,47 +428,47 @@ + * branches below for nonexistant attrs will just never be called. + */ + +- if (strcasecmp(ldap_attrs[i], UID_ATTR) == 0) ++ if (strcasecmp(ldap_attrs[i], ldap_attr_uid) == 0) + pw->pw_name = pstrdup(session.pool, values[0]); +- else if (strcasecmp(ldap_attrs[i], USERPASSWORD_ATTR) == 0) ++ else if (strcasecmp(ldap_attrs[i], ldap_attr_userpassword) == 0) + pw->pw_passwd = pstrdup(session.pool, values[0]); +- else if (strcasecmp(ldap_attrs[i], UIDNUMBER_ATTR) == 0) { ++ else if (strcasecmp(ldap_attrs[i], ldap_attr_uidnumber) == 0) { + if (ldap_forcedefaultuid && ldap_defaultuid != -1) + pw->pw_uid = ldap_defaultuid; + else + pw->pw_uid = (uid_t) strtoul(values[0], (char **)NULL, 10); + } +- else if (strcasecmp(ldap_attrs[i], GIDNUMBER_ATTR) == 0) { ++ else if (strcasecmp(ldap_attrs[i], ldap_attr_gidnumber) == 0) { + if (ldap_forcedefaultgid && ldap_defaultgid != -1) + pw->pw_gid = ldap_defaultgid; + else + pw->pw_gid = (gid_t) strtoul(values[0], (char **)NULL, 10); + } +- else if (strcasecmp(ldap_attrs[i], HOMEDIRECTORY_ATTR) == 0) { +- if (ldap_forcehdod) { +- if (!ldap_hdod || !ldap_hdod_prefix || !*ldap_hdod_prefix) { +- pr_log_pri(PR_LOG_ERR, "mod_ldap: pr_ldap_user_lookup(): LDAPForceHomedirOnDemand is enabled, but LDAPHomedirOnDemand is not."); ++ else if (strcasecmp(ldap_attrs[i], ldap_attr_homedirectory) == 0) { ++ if (ldap_forcegenhdir) { ++ if (!ldap_genhdir || !ldap_genhdir_prefix || !*ldap_genhdir_prefix) { ++ pr_log_pri(PR_LOG_ERR, "mod_ldap: pr_ldap_user_lookup(): LDAPForceGeneratedHomedir is enabled, but LDAPGenerateHomedir is not."); + return NULL; + } + +- if (ldap_hdod_prefix_nouname) +- pw->pw_dir = pstrcat(session.pool, ldap_hdod_prefix, NULL); ++ if (ldap_genhdir_prefix_nouname) ++ pw->pw_dir = pstrcat(session.pool, ldap_genhdir_prefix, NULL); + else { + char **canon_username; +- if ((canon_username = ldap_get_values(ld, e, UID_ATTR)) == NULL) { +- pr_log_pri(PR_LOG_ERR, "mod_ldap: pr_ldap_user_lookup(): couldn't get " UID_ATTR " attr for canonical username for %s", (dn = ldap_get_dn(ld, e))); ++ if ((canon_username = ldap_get_values(ld, e, ldap_attr_uid)) == NULL) { ++ pr_log_pri(PR_LOG_ERR, "mod_ldap: pr_ldap_user_lookup(): couldn't get %s attr for canonical username for %s", (dn = ldap_get_dn(ld, e)), ldap_attr_uid); + free(dn); + return NULL; + } + +- pw->pw_dir = pstrcat(session.pool, ldap_hdod_prefix, "/", canon_username[0], NULL); ++ pw->pw_dir = pstrcat(session.pool, ldap_genhdir_prefix, "/", canon_username[0], NULL); + ldap_value_free(canon_username); + } + } + else + pw->pw_dir = pstrdup(session.pool, values[0]); + } +- else if (strcasecmp(ldap_attrs[i], LOGINSHELL_ATTR) == 0) ++ else if (strcasecmp(ldap_attrs[i], ldap_attr_loginshell) == 0) + pw->pw_shell = pstrdup(session.pool, values[0]); + else + pr_log_pri(PR_LOG_WARNING, "mod_ldap: pr_ldap_user_lookup(): ldap_get_values() loop found unknown attr %s", ldap_attrs[i]); +@@ -641,7 +507,7 @@ + */ + if (ld == NULL) { + /* If we _still_ can't connect, give up and return NULL. */ +- if (pr_ldap_connect() == -1) ++ if (pr_ldap_connect(&ld, TRUE) == -1) + return NULL; + } + +@@ -651,7 +517,7 @@ + if (ret == LDAP_SERVER_DOWN) { + pr_log_pri(PR_LOG_ERR, "mod_ldap: pr_ldap_group_lookup(): LDAP server went away, trying to reconnect"); + +- if (pr_ldap_connect() != -1) { ++ if (pr_ldap_connect(&ld, TRUE) != -1) { + if ((ret = ldap_search_st(ld, ldap_gid_basedn, ldap_search_scope, filter, ldap_attrs, 0, &ldap_querytimeout_tp, &result)) != LDAP_SUCCESS) { + pr_log_pri(PR_LOG_ERR, "mod_ldap: pr_ldap_group_lookup(): ldap_search_st() failed: %s", ldap_err2string(ret)); + return NULL; +@@ -680,7 +546,7 @@ + + while (ldap_attrs[i] != NULL) { + if ((values = ldap_get_values(ld, e, ldap_attrs[i])) == NULL) { +- if (strcasecmp(ldap_attrs[i], MEMBERUID_ATTR) == 0) { ++ if (strcasecmp(ldap_attrs[i], ldap_attr_memberuid) == 0) { + gr->gr_mem = palloc(session.pool, 2 * sizeof(char *)); + gr->gr_mem[0] = pstrdup(session.pool, ""); + gr->gr_mem[1] = NULL; +@@ -695,11 +561,11 @@ + return NULL; + } + +- if (strcasecmp(ldap_attrs[i], CN_ATTR) == 0) ++ if (strcasecmp(ldap_attrs[i], ldap_attr_cn) == 0) + gr->gr_name = pstrdup(session.pool, values[0]); +- else if (strcasecmp(ldap_attrs[i], GIDNUMBER_ATTR) == 0) ++ else if (strcasecmp(ldap_attrs[i], ldap_attr_gidnumber) == 0) + gr->gr_gid = strtoul(values[0], (char **)NULL, 10); +- else if (strcasecmp(ldap_attrs[i], MEMBERUID_ATTR) == 0) { ++ else if (strcasecmp(ldap_attrs[i], ldap_attr_memberuid) == 0) { + value_count = ldap_count_values(values); + gr->gr_mem = (char **) palloc(session.pool, value_count * sizeof(char *)); + +@@ -737,7 +603,7 @@ + pr_ldap_quota_lookup(pool *p, char *filter_template, const char *replace, + char *basedn) + { +- char *filter, **values, *attrs[] = {QUOTA_ATTR, NULL}; ++ char *filter, **values, *attrs[] = {ldap_attr_ftpquota, NULL}; + int ret; + LDAPMessage *result, *e; + +@@ -751,7 +617,7 @@ + */ + if (ld == NULL) { + /* If we _still_ can't connect, give up and return NULL. */ +- if (pr_ldap_connect() == -1) ++ if (pr_ldap_connect(&ld, TRUE) == -1) + return FALSE; + } + +@@ -761,7 +627,7 @@ + if (ret == LDAP_SERVER_DOWN) { + pr_log_pri(PR_LOG_ERR, "mod_ldap: pr_ldap_quota_lookup(): LDAP server went away, trying to reconnect"); + +- if (pr_ldap_connect() == -1) { ++ if (pr_ldap_connect(&ld, TRUE) == -1) { + pr_log_pri(PR_LOG_ERR, "mod_ldap: pr_ldap_quota_lookup(): LDAP server went away, unable to reconnect"); + ld = NULL; + return FALSE; +@@ -817,7 +683,7 @@ + static struct group * + pr_ldap_getgrnam(pool *p, const char *group_name) + { +- char *group_attrs[] = {CN_ATTR, GIDNUMBER_ATTR, MEMBERUID_ATTR, NULL}; ++ char *group_attrs[] = {ldap_attr_cn, ldap_attr_gidnumber, ldap_attr_memberuid, NULL}; + + return pr_ldap_group_lookup(p, ldap_group_name_filter, group_name, group_attrs); + } +@@ -826,9 +692,9 @@ + pr_ldap_getgrgid(pool *p, gid_t gid) + { + char gidstr[PR_TUNABLE_BUFFER_SIZE] = {'\0'}, +- *group_attrs[] = {CN_ATTR, GIDNUMBER_ATTR, MEMBERUID_ATTR, NULL}; ++ *group_attrs[] = {ldap_attr_cn, ldap_attr_gidnumber, ldap_attr_memberuid, NULL}; + +- snprintf(gidstr, sizeof(gidstr), "%d", gid); ++ snprintf(gidstr, sizeof(gidstr), "%u", (unsigned)gid); + + return pr_ldap_group_lookup(p, ldap_group_gid_filter, (const char *)gidstr, group_attrs); + } +@@ -836,8 +702,8 @@ + static struct passwd * + pr_ldap_getpwnam(pool *p, const char *username) + { +- char *name_attrs[] = {USERPASSWORD_ATTR, UID_ATTR, UIDNUMBER_ATTR, +- GIDNUMBER_ATTR, HOMEDIRECTORY_ATTR, LOGINSHELL_ATTR, ++ char *name_attrs[] = {ldap_attr_userpassword, ldap_attr_uid, ldap_attr_uidnumber, ++ ldap_attr_gidnumber, ldap_attr_homedirectory, ldap_attr_loginshell, + NULL}; + + /* pr_ldap_user_lookup() returns NULL if it doesn't find an entry or +@@ -849,6 +715,16 @@ + * that you don't have access to, SDS totally ignores any entries with + * that attribute. Thank you, Sun; how very smart of you. So if we're + * doing auth binds, we don't request the userPassword attr. ++ * ++ * NOTE: if the UserPassword directive is configured, mod_auth will pass ++ * a crypted password to handle_ldap_check(), which will NOT do auth binds ++ * in order to support UserPassword. (Otherwise, it would try binding to ++ * the directory and would ignore UserPassword.) ++ * ++ * We're reasonably safe in making that assumption as long as we never ++ * fetch userPassword from the directory if auth binds are enabled. If we ++ * fetched userPassword, auth binds would never be done because ++ * handle_ldap_check() would always get a crypted password. + */ + return pr_ldap_user_lookup(p, ldap_auth_filter, username, + pr_ldap_generate_filter(p, ldap_auth_basedn, username), +@@ -860,10 +736,10 @@ + pr_ldap_getpwuid(pool *p, uid_t uid) + { + char uidstr[PR_TUNABLE_BUFFER_SIZE] = {'\0'}, +- *uid_attrs[] = {UID_ATTR, UIDNUMBER_ATTR, GIDNUMBER_ATTR, +- HOMEDIRECTORY_ATTR, LOGINSHELL_ATTR, NULL}; ++ *uid_attrs[] = {ldap_attr_uid, ldap_attr_uidnumber, ldap_attr_gidnumber, ++ ldap_attr_homedirectory, ldap_attr_loginshell, NULL}; + +- snprintf(uidstr, sizeof(uidstr), "%d", uid); ++ snprintf(uidstr, sizeof(uidstr), "%u", (unsigned)uid); + + /* pr_ldap_user_lookup() returns NULL if it doesn't find an entry or + * encounters an error. If everything goes all right, it returns a +@@ -964,7 +840,7 @@ + { + if (ldap_doauth || ldap_douid || ldap_dogid) { + if (ld == NULL) +- (void) pr_ldap_connect(); ++ (void) pr_ldap_connect(&ld, TRUE); + return HANDLED(cmd); + } + +@@ -1045,7 +921,7 @@ + handle_ldap_getgroups(cmd_rec *cmd) + { + char *filter, **gidNumber, **cn, +- *w[] = {GIDNUMBER_ATTR, CN_ATTR, NULL}; ++ *w[] = {ldap_attr_gidnumber, ldap_attr_cn, NULL}; + int ret; + struct passwd *pw; + struct group *gr; +@@ -1076,18 +952,19 @@ + */ + if (ld == NULL) { + /* If we _still_ can't connect, give up and decline. */ +- if (pr_ldap_connect() == -1) ++ if (pr_ldap_connect(&ld, TRUE) == -1) + goto return_groups; + } + + filter = pr_ldap_generate_filter(cmd->tmp_pool, ldap_group_member_filter, cmd->argv[0]); + +- pr_ldap_set_sizelimit(-1); ++ /* Unlimited. */ ++ pr_ldap_set_sizelimit(ld, 0); + if ((ret = ldap_search_st(ld, ldap_gid_basedn, ldap_search_scope, filter, w, 0, &ldap_querytimeout_tp, &result)) != LDAP_SUCCESS) { + if (ret == LDAP_SERVER_DOWN) { + pr_log_pri(PR_LOG_ERR, "mod_ldap: ldap_handle_getgroups(): LDAP server went away, trying to reconnect"); + +- if (pr_ldap_connect() != -1) { ++ if (pr_ldap_connect(&ld, TRUE) != -1) { + if ((ret = ldap_search_st(ld, ldap_gid_basedn, ldap_search_scope, filter, w, 0, &ldap_querytimeout_tp, &result)) != LDAP_SUCCESS) { + pr_log_pri(PR_LOG_ERR, "mod_ldap: ldap_handle_getgroups(): ldap_search_st() failed: %s", ldap_err2string(ret)); + goto return_groups; +@@ -1103,22 +980,22 @@ + goto return_groups; + } + } +- pr_ldap_set_sizelimit(2); ++ pr_ldap_set_sizelimit(ld, 2); + + if (ldap_count_entries(ld, result) == 0) + goto return_groups; + + for (e = ldap_first_entry(ld, result); e; e = ldap_next_entry(ld, e)) { + if (! (gidNumber = ldap_get_values(ld, e, w[0]))) { +- pr_log_pri(PR_LOG_ERR, "mod_ldap: ldap_handle_getgroups(): ldap_get_values() on " GIDNUMBER_ATTR " attr failed, skipping current group: %s", ldap_err2string(ret)); ++ pr_log_pri(PR_LOG_ERR, "mod_ldap: ldap_handle_getgroups(): ldap_get_values() on %s attr failed, skipping current group: %s", ldap_err2string(ret), ldap_attr_gidnumber); + continue; + } + if (! (cn = ldap_get_values(ld, e, w[1]))) { +- pr_log_pri(PR_LOG_ERR, "mod_ldap: ldap_handle_getgroups(): ldap_get_values() on " CN_ATTR " attr failed, skipping current group: %s", ldap_err2string(ret)); ++ pr_log_pri(PR_LOG_ERR, "mod_ldap: ldap_handle_getgroups(): ldap_get_values() on %s attr failed, skipping current group: %s", ldap_err2string(ret), ldap_attr_cn); + continue; + } + +- if (strtoul(gidNumber[0], (char **)NULL, 10) != pw->pw_gid) { ++ if (!pw || strtoul(gidNumber[0], (char **)NULL, 10) != pw->pw_gid) { + *((gid_t *) push_array(gids)) = strtoul(gidNumber[0], (char **)NULL, 10); + *((char **) push_array(groups)) = pstrdup(session.pool, cn[0]); + } +@@ -1132,7 +1009,7 @@ + ldap_msgfree(result); + + if (gids->nelts > 0) +- return mod_create_data(cmd, (void *)gids->nelts); ++ return mod_create_data(cmd, (void *) &gids->nelts); + return DECLINED(cmd); + } + +@@ -1149,7 +1026,7 @@ + handle_ldap_is_auth(cmd_rec *cmd) + { + const char *username = cmd->argv[0]; +- char *pass_attrs[] = {USERPASSWORD_ATTR, HOMEDIRECTORY_ATTR, NULL}; ++ char *pass_attrs[] = {ldap_attr_userpassword, ldap_attr_homedirectory, NULL}; + + if (! ldap_doauth) + return DECLINED(cmd); +@@ -1176,12 +1053,12 @@ + return ERROR_INT(cmd, PR_AUTH_NOPWD); + + /* FIXME: If we pass a "" or NULL "crypted password" argument to +- * auth_check, the mod_unixpw auth handler gets called before the mod_ldap +- * auth handler, so mod_unixpw will allow in any LDAP auth-bind user with +- * an incorrect password. Can we kludge around this by setting the +- * directive to not allow empty passwords? (its name escapes me right now) +- * For now, we'll kludge around this by passing "*", which mod_unixpw will +- * happily deny auth to. ++ * auth_check, the mod_auth_unix auth handler gets called before the ++ * mod_ldap auth handler, so mod_auth_unix will allow in any LDAP ++ * auth-bind user with an incorrect password. Can we kludge around this by ++ * setting the directive to not allow empty passwords? (its name escapes ++ * me right now) For now, we'll kludge around this by passing "*", which ++ * mod_auth_unix will happily deny auth to. + */ + if (auth_check(cmd->tmp_pool, ldap_authbinds ? "*" : pw->pw_passwd, + username, cmd->argv[1])) +@@ -1189,7 +1066,6 @@ + return ERROR_INT(cmd, PR_AUTH_BADPWD); + } + +- create_homedir(cmd->tmp_pool, pw->pw_dir); + return HANDLED(cmd); + } + +@@ -1202,11 +1078,8 @@ + handle_ldap_check(cmd_rec *cmd) + { + char *pass, *cryptpass, *hash_method; +- int encname_len; ++ int encname_len, ret; + LDAP *ld_auth; +-#ifdef USE_LDAPV3_TLS +- int ret, version = LDAP_VERSION3; +-#endif + + #ifdef HAVE_OPENSSL + EVP_MD_CTX EVP_Context; +@@ -1225,40 +1098,42 @@ + + + if (ldap_authbinds) { +- /* Don't try to do auth binds with a NULL DN or password. */ ++ /* Don't try to do auth binds with a NULL DN or password. ++ * ++ * We also need to support the UserPassword directive, so don't do auth ++ * binds if we received a crypted password, which seems to indicate the ++ * use of that directive. See also the comments in pr_ldap_getpwnam(). ++ * ++ * Note that handle_ldap_is_auth() will pass us "*" for a crypted ++ * password to prevent mod_auth_unix from successfully authenticating ++ * the user with an "empty" password. If we receive "*" for a crypted ++ * password, we will still check authentication. This isn't dangerous, ++ * since we bail first if we don't have a DN to authbind with. ++ */ + if ( (pass == NULL) || (strlen(pass) == 0) || +- (ldap_authbind_dn == NULL) || (strlen(ldap_authbind_dn) == 0) ) +- return DECLINED(cmd); +- +- if ((ld_auth = ldap_init(ldap_server, LDAP_PORT)) == NULL) { +- pr_log_pri(PR_LOG_ERR, "mod_ldap: ldap_is_auth(): ldap_init() to %s failed", ldap_server); ++ (ldap_authbind_dn == NULL) || (strlen(ldap_authbind_dn) == 0)) ++ { + return DECLINED(cmd); + } +- +-#ifdef USE_LDAPV3_TLS +- if (ldap_use_tls == 1) { +- if ((ret = ldap_set_option(ld_auth, LDAP_OPT_PROTOCOL_VERSION, &version)) != LDAP_OPT_SUCCESS) { +- pr_log_pri(PR_LOG_ERR, "mod_ldap: pr_ldap_connect(): Setting LDAP version option on rebind failed: %s", ldap_err2string(ret)); +- pr_ldap_unbind(); +- return ERROR(cmd); ++ if (cryptpass != NULL && strlen(cryptpass) > 0 && ++ strcmp(cryptpass, "*") != 0) ++ { ++ return DECLINED(cmd); + } + +- pr_log_debug(DEBUG2, "mod_ldap: Starting TLS for rebind connection."); +- if ((ret = ldap_start_tls_s(ld_auth, NULL, NULL)) != LDAP_SUCCESS) { +- pr_log_pri(PR_LOG_ERR, "mod_ldap: pr_ldap_connect(): Starting TLS for rebind failed: %s", ldap_err2string(ret)); +- pr_ldap_unbind(); +- return ERROR(cmd); ++ if (pr_ldap_connect(&ld_auth, FALSE) == -1) { ++ pr_log_pri(PR_LOG_ERR, "mod_ldap: handle_ldap_check(): pr_ldap_connect() failed"); ++ return DECLINED(cmd); + } +- } +-#endif /* USE_LDAPV3_TLS */ + +- if (ldap_simple_bind_s(ld_auth, ldap_authbind_dn, cmd->argv[2]) != LDAP_SUCCESS) { ++ if ((ret = ldap_simple_bind_s(ld_auth, ldap_authbind_dn, cmd->argv[2])) != LDAP_SUCCESS) { ++ if (ret != LDAP_INVALID_CREDENTIALS) ++ pr_log_pri(PR_LOG_ERR, "mod_ldap: handle_ldap_check(): pr_ldap_connect() failed: %s", ldap_err2string(ret)); + ldap_unbind(ld_auth); + return ERROR(cmd); + } + + ldap_unbind(ld_auth); +- + return HANDLED(cmd); + } + +@@ -1340,7 +1215,7 @@ + if (! ldap_douid) + return DECLINED(cmd); + +- id.uid = (uid_t)cmd->argv[0]; ++ id.uid = *((uid_t *) cmd->argv[0]); + m = _auth_lookup_id(uid_table, id); + + if (! m->name) { +@@ -1375,7 +1250,7 @@ + if (! ldap_dogid) + return DECLINED(cmd); + +- id.gid = (gid_t)cmd->argv[0]; ++ id.gid = *((gid_t *) cmd->argv[0]); + m = _auth_lookup_id(gid_table, id); + + if (! m->name) { +@@ -1408,10 +1283,10 @@ + return DECLINED(cmd); + + if (pw && pw->pw_name && strcasecmp(pw->pw_name, cmd->argv[0]) == 0) +- return mod_create_data(cmd, (void *)pw->pw_uid); ++ return mod_create_data(cmd, (void *) &pw->pw_uid); + + if ((pw = pr_ldap_getpwnam(cmd->tmp_pool, cmd->argv[0]))) +- return mod_create_data(cmd, (void *)pw->pw_uid); ++ return mod_create_data(cmd, (void *) &pw->pw_uid); + + return DECLINED(cmd); + } +@@ -1423,10 +1298,10 @@ + return DECLINED(cmd); + + if (gr && strcasecmp(gr->gr_name, cmd->argv[0]) == 0) +- return mod_create_data(cmd, (void *)gr->gr_gid); ++ return mod_create_data(cmd, (void *) &gr->gr_gid); + + if ((gr = pr_ldap_getgrnam(cmd->tmp_pool, cmd->argv[0]))) +- return mod_create_data(cmd, (void *)gr->gr_gid); ++ return mod_create_data(cmd, (void *) &gr->gr_gid); + + return DECLINED(cmd); + } +@@ -1663,7 +1538,7 @@ + } + + MODRET +-set_ldap_hdod(cmd_rec *cmd) ++set_ldap_genhdir(cmd_rec *cmd) + { + int b; + config_rec *c; +@@ -1672,40 +1547,38 @@ + CHECK_CONF(cmd, CONF_ROOT|CONF_VIRTUAL|CONF_GLOBAL); + + if ((b = get_boolean(cmd, 1)) == -1) +- CONF_ERROR(cmd, "LDAPHomedirOnDemand: expected a boolean value for first argument."); +- +- c = add_config_param("LDAPHomedirOnDemand", 2, (void *)b); +- c->argv[1] = pstrdup(c->pool, cmd->argv[2]); ++ CONF_ERROR(cmd, "LDAPGenerateHomedir: expected a boolean value for first argument."); + ++ c = add_config_param("LDAPGenerateHomedir", 1, (void *)b); + return HANDLED(cmd); + + } + +-MODRET set_ldap_forcehdod(cmd_rec *cmd) ++MODRET set_ldap_forcegenhdir(cmd_rec *cmd) + { + int b; + + CHECK_CONF(cmd,CONF_ROOT|CONF_VIRTUAL|CONF_GLOBAL); + + if ((b = get_boolean(cmd, 1)) == -1) +- CONF_ERROR(cmd, "LDAPForceHomeDirOnDemand: expected boolean argument for first argument."); ++ CONF_ERROR(cmd, "LDAPForceGeneratedHomedir: expected boolean argument for first argument."); + +- add_config_param("LDAPForceHomeDirOnDemand", 1, (void *)b); ++ add_config_param("LDAPForceGeneratedHomedir", 1, (void *)b); + return HANDLED(cmd); + } + + MODRET +-set_ldap_hdodprefix(cmd_rec *cmd) ++set_ldap_genhdirprefix(cmd_rec *cmd) + { + CHECK_ARGS(cmd, 1); + CHECK_CONF(cmd, CONF_ROOT|CONF_VIRTUAL|CONF_GLOBAL); + +- add_config_param_str("LDAPHomedirOnDemandPrefix", 1, cmd->argv[1]); ++ add_config_param_str("LDAPGenerateHomedirPrefix", 1, cmd->argv[1]); + return HANDLED(cmd); + } + + MODRET +-set_ldap_hdodprefixnouname(cmd_rec *cmd) ++set_ldap_genhdirprefixnouname(cmd_rec *cmd) + { + int b; + +@@ -1713,61 +1586,85 @@ + CHECK_CONF(cmd, CONF_ROOT|CONF_VIRTUAL|CONF_GLOBAL); + + if ((b = get_boolean(cmd, 1)) == -1) +- CONF_ERROR(cmd, "LDAPHomedirOnDemandPrefixNoUsername: expected a boolean value for first argument."); ++ CONF_ERROR(cmd, "LDAPGenerateHomedirPrefixNoUsername: expected a boolean value for first argument."); + +- add_config_param("LDAPHomedirOnDemandPrefixNoUsername", 1, (void *)b); ++ add_config_param("LDAPGenerateHomedirPrefixNoUsername", 1, (void *)b); + return HANDLED(cmd); + } + + MODRET +-set_ldap_hdodsuffix(cmd_rec *cmd) ++set_ldap_defaultauthscheme(cmd_rec *cmd) + { +- int i; +- config_rec *c; +- + CHECK_ARGS(cmd, 1); + CHECK_CONF(cmd, CONF_ROOT|CONF_VIRTUAL|CONF_GLOBAL); + +- c = add_config_param_str("LDAPHomedirOnDemandSuffix", cmd->argc - 1, cmd->argv[1]); +- for (i = 1; i < cmd->argc - 1; ++i) +- c->argv[i] = pstrdup(c->pool, cmd->argv[1 + i]); +- ++ add_config_param_str("LDAPDefaultAuthScheme", 1, cmd->argv[1]); + return HANDLED(cmd); + } + + MODRET +-set_ldap_defaultauthscheme(cmd_rec *cmd) ++set_ldap_usetls(cmd_rec *cmd) + { ++#ifndef USE_LDAP_TLS ++ CONF_ERROR(cmd, "LDAPUseTLS: You must edit mod_ldap.c and recompile with USE_LDAP_TLS enabled in order to use TLS."); ++#else /* USE_LDAP_TLS */ ++ int b; ++ + CHECK_ARGS(cmd, 1); + CHECK_CONF(cmd, CONF_ROOT|CONF_VIRTUAL|CONF_GLOBAL); + +- add_config_param_str("LDAPDefaultAuthScheme", 1, cmd->argv[1]); ++ if ((b = get_boolean(cmd, 1)) == -1) ++ CONF_ERROR(cmd, "LDAPUseTLS: expected a boolean value for first argument."); ++ ++ add_config_param("LDAPUseTLS", 1, (void *)b); + return HANDLED(cmd); ++#endif /* USE_LDAP_TLS */ + } + + MODRET +-set_ldap_usetls(cmd_rec *cmd) ++set_ldap_protoversion(cmd_rec *cmd) + { +-#ifndef USE_LDAPV3_TLS +- CONF_ERROR(cmd, "LDAPUseTLS: You must edit mod_ldap.c and recompile with USE_LDAPV3_TLS enabled in order to use TLS."); +-#else /* USE_LDAPV3_TLS */ +- int b; ++ int i = 0; + + CHECK_ARGS(cmd, 1); + CHECK_CONF(cmd, CONF_ROOT|CONF_VIRTUAL|CONF_GLOBAL); + +- if ((b = get_boolean(cmd, 1)) == -1) +- CONF_ERROR(cmd, "LDAPUseTLS: expected a boolean value for first argument."); ++ while (cmd->argv[1][i]) { ++ if (! isdigit((int) cmd->argv[1][i])) ++ CONF_ERROR(cmd, "LDAPProtocolVersion: argument must be numeric!"); ++ ++i; ++ } + +- add_config_param("LDAPUseTLS", 1, (void *)b); ++ add_config_param("LDAPProtocolVersion", 1, strtoul(cmd->argv[1], (char **)NULL, 10)); ++ return HANDLED(cmd); ++} ++ ++MODRET ++set_ldap_attr(cmd_rec *cmd) ++{ ++ CHECK_ARGS(cmd, 2); ++ CHECK_CONF(cmd, CONF_ROOT|CONF_VIRTUAL|CONF_GLOBAL); ++ ++ if (strcasecmp(cmd->argv[1], "uid") != 0 && ++ strcasecmp(cmd->argv[1], "uidNumber") != 0 && ++ strcasecmp(cmd->argv[1], "gidNumber") != 0 && ++ strcasecmp(cmd->argv[1], "homeDirectory") != 0 && ++ strcasecmp(cmd->argv[1], "userPassword") != 0 && ++ strcasecmp(cmd->argv[1], "loginShell") != 0 && ++ strcasecmp(cmd->argv[1], "cn") != 0 && ++ strcasecmp(cmd->argv[1], "memberUid") != 0 && ++ strcasecmp(cmd->argv[1], "ftpQuota") != 0) ++ { ++ CONF_ERROR(cmd, "LDAPAttr: unknown attribute name."); ++ } ++ ++ add_config_param_str("LDAPAttr", 2, cmd->argv[1], cmd->argv[2]); + return HANDLED(cmd); +-#endif /* USE_LDAPV3_TLS */ + } + + static int + ldap_getconf(void) + { +- int i = 0; + char *scope; + config_rec *c; + +@@ -1799,7 +1696,7 @@ + if (c->argv[2]) + ldap_auth_filter = pstrdup(session.pool, c->argv[2]); + else +- ldap_auth_filter = "(&(" UID_ATTR "=%v)(objectclass=posixAccount))"; ++ ldap_auth_filter = pstrcat(session.pool, "(&(", ldap_attr_uid, "=%v)(objectclass=posixAccount))", NULL); + } + } + +@@ -1811,7 +1708,7 @@ + if (c->argv[2]) + ldap_uid_filter = pstrdup(session.pool, c->argv[2]); + else +- ldap_uid_filter = "(&(" UIDNUMBER_ATTR "=%v)(objectclass=posixAccount))"; ++ ldap_uid_filter = pstrcat(session.pool, "(&(", ldap_attr_uidnumber, "=%v)(objectclass=posixAccount))", NULL); + } + } + +@@ -1823,17 +1720,17 @@ + if (c->argc > 2) + ldap_group_name_filter = pstrdup(session.pool, c->argv[2]); + else +- ldap_group_name_filter = "(&(" CN_ATTR " =%v)(objectclass=posixGroup))"; ++ ldap_group_name_filter = pstrcat(session.pool, "(&(", ldap_attr_cn, "=%v)(objectclass=posixGroup))", NULL); + + if (c->argc > 3) + ldap_group_gid_filter = pstrdup(session.pool, c->argv[3]); + else +- ldap_group_gid_filter = "(&(" GIDNUMBER_ATTR "=%v)(objectclass=posixGroup))"; ++ ldap_group_gid_filter = pstrcat(session.pool, "(&(", ldap_attr_gidnumber, "=%v)(objectclass=posixGroup))", NULL); + + if (c->argc > 4) +- ldap_group_member_filter = pstrdup(session.pool, c->argv[3]); ++ ldap_group_member_filter = pstrdup(session.pool, c->argv[4]); + else +- ldap_group_member_filter = "(&(" MEMBERUID_ATTR "=%v)(objectclass=posixGroup))"; ++ ldap_group_member_filter = pstrcat(session.pool, "(&(", ldap_attr_memberuid, "=%v)(objectclass=posixGroup))", NULL); + } + } + +@@ -1845,7 +1742,7 @@ + if (c->argc > 2) + ldap_quota_filter = pstrdup(session.pool, c->argv[2]); + else +- ldap_quota_filter = "(&(" UIDNUMBER_ATTR "=%v)(objectclass=posixAccount))"; ++ ldap_quota_filter = pstrcat(session.pool, "(&(", ldap_attr_uid, "=%v)(objectclass=posixAccount))", NULL); + + if (c->argc > 3) + ldap_default_quota = pstrdup(session.pool, c->argv[3]); +@@ -1863,73 +1760,83 @@ + if ( (int)c->argv[0] > 0) + ldap_forcedefaultgid = 1; + +- if ((c = find_config(main_server->conf, CONF_PARAM, "LDAPForceHomeDirOnDemand", FALSE)) != NULL) ++ if ((c = find_config(main_server->conf, CONF_PARAM, "LDAPForceGeneratedHomedir", FALSE)) != NULL) + if ( (int)c->argv[0] > 0) +- ldap_forcehdod = 1; ++ ldap_forcegenhdir = 1; + + if (get_param_int(main_server->conf, "LDAPNegativeCache", FALSE) > 0) + ldap_negcache = 1; + +- if ((c = find_config(main_server->conf, CONF_PARAM, "LDAPHomedirOnDemand", FALSE)) != NULL) { +- if ( (int)c->argv[0] > 0) { +- ldap_hdod = 1; +- +- /* Use strtol() instead of atoi() here becuase we need to pass an +- * octal mode to mkdir(). +- */ +- if (c->argv[1]) +- ldap_hdod_mode = strtol(c->argv[1], (char **)NULL, 8); +- } +- } +- +- ldap_hdod_prefix = (char *)get_param_ptr(main_server->conf, "LDAPHomedirOnDemandPrefix", FALSE); +- if (get_param_int(main_server->conf, "LDAPHomedirOnDemandPrefixNoUsername", FALSE) == 1) +- ldap_hdod_prefix_nouname = 1; ++ if ((c = find_config(main_server->conf, CONF_PARAM, "LDAPGenerateHomedir", FALSE)) != NULL) ++ if ( (int)c->argv[0] > 0) ++ ldap_genhdir = 1; + +- if ((c = find_config(main_server->conf, CONF_PARAM, "LDAPHomedirOnDemandSuffix", FALSE)) != NULL) { +- ldap_hdod_suffix = (char **) palloc(session.pool, ( (c->argc + 1) * sizeof(char *)) ); +- for (i = 0; i < c->argc; ++i) +- ldap_hdod_suffix[i] = pstrdup(session.pool, c->argv[i]); +- ldap_hdod_suffix[i] = NULL; +- } ++ ldap_genhdir_prefix = (char *)get_param_ptr(main_server->conf, "LDAPGenerateHomedirPrefix", FALSE); ++ if (get_param_int(main_server->conf, "LDAPGenerateHomedirPrefixNoUsername", FALSE) == 1) ++ ldap_genhdir_prefix_nouname = 1; + + /* If ldap_defaultauthscheme is NULL, ldap_check() will assume crypt. */ + ldap_defaultauthscheme = (char *)get_param_ptr(main_server->conf, "LDAPDefaultAuthScheme", FALSE); + +-#ifdef USE_LDAPV3_TLS ++ ldap_protocol_version = (int)get_param_int(main_server->conf, "LDAPProtocolVersion", TRUE); ++#ifdef USE_LDAP_TLS + ldap_use_tls = (int)get_param_int(main_server->conf, "LDAPUseTLS", FALSE); + #endif + ++ if ((c = find_config(main_server->conf, CONF_PARAM, "LDAPAttr", FALSE)) != NULL) { ++ do { ++ if (strcasecmp(c->argv[0], "uid") == 0) ++ ldap_attr_uid = pstrdup(session.pool, c->argv[1]); ++ else if (strcasecmp(c->argv[0], "uidNumber") == 0) ++ ldap_attr_uidnumber = pstrdup(session.pool, c->argv[1]); ++ else if (strcasecmp(c->argv[0], "gidNumber") == 0) ++ ldap_attr_gidnumber = pstrdup(session.pool, c->argv[1]); ++ else if (strcasecmp(c->argv[0], "homeDirectory") == 0) ++ ldap_attr_homedirectory = pstrdup(session.pool, c->argv[1]); ++ else if (strcasecmp(c->argv[0], "userPassword") == 0) ++ ldap_attr_userpassword = pstrdup(session.pool, c->argv[1]); ++ else if (strcasecmp(c->argv[0], "loginShell") == 0) ++ ldap_attr_loginshell = pstrdup(session.pool, c->argv[1]); ++ else if (strcasecmp(c->argv[0], "cn") == 0) ++ ldap_attr_cn = pstrdup(session.pool, c->argv[1]); ++ else if (strcasecmp(c->argv[0], "memberUid") == 0) ++ ldap_attr_memberuid = pstrdup(session.pool, c->argv[1]); ++ else if (strcasecmp(c->argv[0], "ftpQuota") == 0) ++ ldap_attr_ftpquota = pstrdup(session.pool, c->argv[1]); ++ } while ((c = find_config_next(c, c->next, CONF_PARAM, "LDAPAttr", FALSE))); ++ } ++ + return 0; + } + + static conftable ldap_config[] = { +- { "LDAPServer", set_ldap_server, NULL }, +- { "LDAPDNInfo", set_ldap_dninfo, NULL }, +- { "LDAPAuthBinds", set_ldap_authbinds, NULL }, +- { "LDAPQueryTimeout", set_ldap_querytimeout, NULL }, +- { "LDAPSearchScope", set_ldap_searchscope, NULL }, +- { "LDAPNegativeCache", set_ldap_negcache, NULL }, +- { "LDAPDoAuth", set_ldap_doauth, NULL }, +- { "LDAPDoUIDLookups", set_ldap_douid, NULL }, +- { "LDAPDoGIDLookups", set_ldap_dogid, NULL }, +- { "LDAPDoQuotaLookups", set_ldap_doquota, NULL }, +- { "LDAPDefaultUID", set_ldap_defaultuid, NULL }, +- { "LDAPDefaultGID", set_ldap_defaultgid, NULL }, +- { "LDAPForceDefaultUID", set_ldap_forcedefaultuid, NULL }, +- { "LDAPForceDefaultGID", set_ldap_forcedefaultgid, NULL }, +- { "LDAPHomedirOnDemand", set_ldap_hdod, NULL }, +- { "LDAPHomedirOnDemandPrefix", set_ldap_hdodprefix, NULL }, +- { "LDAPHomedirOnDemandPrefixNoUsername", set_ldap_hdodprefixnouname, NULL }, +- { "LDAPHomedirOnDemandSuffix", set_ldap_hdodsuffix, NULL }, +- { "LDAPForceHomedirOnDemand", set_ldap_forcehdod, NULL }, +- { "LDAPDefaultAuthScheme", set_ldap_defaultauthscheme, NULL }, +- { "LDAPUseTLS", set_ldap_usetls, NULL }, +- { NULL, NULL, NULL } ++ { "LDAPServer", set_ldap_server, NULL }, ++ { "LDAPDNInfo", set_ldap_dninfo, NULL }, ++ { "LDAPAuthBinds", set_ldap_authbinds, NULL }, ++ { "LDAPQueryTimeout", set_ldap_querytimeout, NULL }, ++ { "LDAPSearchScope", set_ldap_searchscope, NULL }, ++ { "LDAPNegativeCache", set_ldap_negcache, NULL }, ++ { "LDAPDoAuth", set_ldap_doauth, NULL }, ++ { "LDAPDoUIDLookups", set_ldap_douid, NULL }, ++ { "LDAPDoGIDLookups", set_ldap_dogid, NULL }, ++ { "LDAPDoQuotaLookups", set_ldap_doquota, NULL }, ++ { "LDAPDefaultUID", set_ldap_defaultuid, NULL }, ++ { "LDAPDefaultGID", set_ldap_defaultgid, NULL }, ++ { "LDAPForceDefaultUID", set_ldap_forcedefaultuid, NULL }, ++ { "LDAPForceDefaultGID", set_ldap_forcedefaultgid, NULL }, ++ { "LDAPGenerateHomedir", set_ldap_genhdir, NULL }, ++ { "LDAPGenerateHomedirPrefix", set_ldap_genhdirprefix, NULL }, ++ { "LDAPGenerateHomedirPrefixNoUsername", set_ldap_genhdirprefixnouname, NULL }, ++ { "LDAPForceGeneratedHomedir", set_ldap_forcegenhdir, NULL }, ++ { "LDAPDefaultAuthScheme", set_ldap_defaultauthscheme, NULL }, ++ { "LDAPUseTLS", set_ldap_usetls, NULL }, ++ { "LDAPProtocolVersion", set_ldap_protoversion, NULL }, ++ { "LDAPAttr", set_ldap_attr, NULL }, ++ { NULL, NULL, NULL } + }; + + static cmdtable ldap_cmdtab[] = { +- {CMD, "ldap_quota_lookup", G_NONE, handle_ldap_quota_lookup, FALSE, FALSE}, ++ {HOOK, "ldap_quota_lookup", G_NONE, handle_ldap_quota_lookup, FALSE, FALSE}, + {0, NULL} + }; + +@@ -1953,11 +1860,12 @@ + }; + + module ldap_module = { +- NULL, NULL, /* Always NULL */ +- 0x20, /* API Version 2.0 */ ++ NULL, NULL, /* Always NULL */ ++ 0x20, /* API Version 2.0 */ + "ldap", +- ldap_config, /* Configuration directive table */ +- ldap_cmdtab, /* Command handlers */ +- ldap_auth, /* Authentication handlers */ +- pr_ldap_module_init, ldap_getconf /* Initialization functions */ ++ ldap_config, /* Configuration directive table */ ++ ldap_cmdtab, /* Command handlers */ ++ ldap_auth, /* Authentication handlers */ ++ pr_ldap_module_init, ldap_getconf, /* Initialization functions */ ++ MOD_LDAP_VERSION + }; --- proftpd-1.2.10.orig/debian/copyright +++ proftpd-1.2.10/debian/copyright @@ -0,0 +1,104 @@ +This package was debianized by Johnie Ingram (johnie@debian.org) +Mon, 2 Jun 1997 12:43:52 -0400, two minutes after its first public release. + +The canonical location is: + http://proftpd.org/download.html + +Copyright: + +The core code is made available under the terms of the GPL: + + * ProFTPD - FTP server daemon + * Copyright (c) 1997, 1998 Public Flood Software + * + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + * + * As a special exemption, Public Flood Software/MacGyver aka Habeeb J. Dihu + * and other respective copyright holders give permission to link this program + * with OpenSSL, and distribute the resulting executable, without including + * the source code for OpenSSL in the source distribution. + +On Debian GNU/Linux systems, the text of the GPL can be found in +/usr/share/common-licenses/GPL. + + +This package includes xferlog.5 and the xferstats program from +wu-ftpd-academ, as modified by Holger Preiss (TU Dresden): + + Copyright (c) 1994 Washington University in Saint Louis. + All rights reserved. + + This product includes software developed by Washington University + in Saint Louis and its contributors. + + Copyright (c) 1980, 1985, 1988, 1989, 1990 The Regents of the + University of California. All rights reserved. + + This product includes software developed by the University of + California, Berkeley and its contributors. + + THIS SOFTWARE IS PROVIDED BY WASHINGTON UNIVERSITY 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 WASHINGTON + UNIVERSITY 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. + + +Modifications for Debian are copyright (C) 1997-2000 Johnie Ingram, +and also released under the terms of the GPL -- version 2, or any +later version. + +On Debian GNU/Linux systems, the text of the GPL can be found in +/usr/share/common-licenses/GPL. + + +mod_tls.c is distributed under the following terms (BSD license): + + * AUTH/TLS module for ProFTPD, based on the mod_sample.c file. + * + * Copyright (c) 2000 - 2002 Peter 'Luna' Runestig + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modifi- + * cation, are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright no- + * tice, this list of conditions and the following disclaimer in the do- + * cumentation and/or other materials provided with the distribution. + * + * o The names of the contributors may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LI- + * ABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUEN- + * TIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEV- + * ER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABI- + * LITY, 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. --- proftpd-1.2.10.orig/debian/welcome.msg +++ proftpd-1.2.10/debian/welcome.msg @@ -0,0 +1,7 @@ +Welcome, archive user %U@%R ! + +The local time is: %T + +This is an experimental FTP server. If have any unusual problems, +please report them via e-mail to . + --- proftpd-1.2.10.orig/debian/TODO.texi +++ proftpd-1.2.10/debian/TODO.texi @@ -0,0 +1,17 @@ +@subheading @anchor{MySQLRatios} MySQLRatios + +@format +Syntax: MySQLRatios on +Syntax: MySQLRatios frate-field fcred-field brate-field bcred-field +Default: off, or (@samp{frate fcred brate bcred}) if fields unspecified. +Context: server config +Compatibility: only available with the Debian package. +@end format + +Activates support for retrieving per-user ratios from the database. To +use this feature, @samp{SQLUserTable} (mod_sql) and @samp{Ratios on} +(mod_ratios) directives are needed. + +For this to work you need to compile with -DMOD_MYSQL_RATIOS, and use +mod_ratio version 2.0 or better. The latest version is not included +with stock ProFTPD, but the Debian package has it compiled in. --- proftpd-1.2.10.orig/debian/examples +++ proftpd-1.2.10/debian/examples @@ -0,0 +1,4 @@ +sample-configurations/anonymous.conf +sample-configurations/basic.conf +sample-configurations/virtual.conf +debian/welcome.msg --- proftpd-1.2.10.orig/debian/ftpasswd.8 +++ proftpd-1.2.10/debian/ftpasswd.8 @@ -0,0 +1,173 @@ +.\" Copyright (C) 2002 Francesco P. Lovergine +.\" +.\" This manual page is free software. It is distributed 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 manual page 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 manual page; if not, write to the Free Software +.\" Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +.\" USA +.\" +.TH FTPASSWD 8 "October 19, 2002" "1.1.2" "Debian GNU/Linux" +.SH NAME +ftpasswd \- manipulates ProFTPD authentication files +.SH SYNOPSIS +.TP 8 +\fBftpasswd\fR \fB--help\fR|\fB-h\fR|\fB--version\fR +.TP 8 +\fBftpasswd\fR \fB--hash\fR [ \fB--des\fR|\fB--md5\fR ] [ \fB--stdin\fR ] [ \fB--use-cracklib\fR[=path] ] +.TP 8 +\fBftpasswd\fR \fB--passwd\fR [ \fB-F\fR|\fB--force\fR ] [ \fB--file=\fRfilename ] [\fB--gecos=\fRstring ] +.br +[ \fB--gid=\fRgid ] [ \fB--des\fR | \fB--md5\fR ] [ \fB--not-system-password\fR ] +.br +[ \fB--stdin\fR ] [ \fB--use-cracklib\fR[=path] ] \fB--home=\fRpath +.br \fB--name=\fRusername \fB--shell=\fRshellpath \fB--uid=\fRuid +.TP 8 +\fBftpasswd\fR \fB--group\fR [ \fB-F\fR|\fB--force\fR ] [ \fB--enable-group-passwd\fR ] +.br +[ \fB--file=\fRfilename ] [ \fB-m\fR|\fB--member\fR ] [ \fB--des\fR|\fB--md5\fR ] +.br +[ \fB--stdin\fR ] [ \fB--use-cracklib\fR[=path] ] \fB--gid=\fRgid +.br \fB--name=\fRgroupname +.TP 8 +\fBftpasswd\fR \fB--passwd\fR \fB--change-password\fR \fB--name\fR=username +.br +.PP +.SH DESCRIPTION +.P +ftpasswd is a Perl script which can be used to manipulate +the password and group files suitable for use with +ProFTPD AuthUserFile and AuthGroupFile configuration directives. +The idea is somewhat similar to Apache's htpasswd program. +.P +Required options are --passwd, --group, or --hash. +These specify whether ftpasswd is to +operate on a passwd(5) format file, on a group(5) format file, or simply +to generate a password hash, respectively. +.P +If used with --passwd, ftpasswd creates a file in the passwd(5) format, +suitable for use with proftpd's AuthUserFile configuration directive. +You will be prompted for the password to use of the user, which will be +encrypted, and written out as the encrypted string. +By default, using --passwd will write output to "./ftpd.passwd", +.P +If used with --hash, ftpasswd generates a hash of a password, as would +appear in an AuthUserFile. The hash is written to standard out. +This hash is suitable for use with proftpd's UserPassword directive. +.P +If used with --group, ftpasswd creates a file in the group(5) format, +suitable for use with proftpd's AuthGroupFile configuration directive. +By default, using --group will write output to "./ftpd.group". + +.SH OPTIONS +.P +.TP +.B \-F, \-\-force +If the password or group file be used already exists, delete it and write a new one. +.TP +.BR \-\-file= filename +Write output to specified file (password or group files), +rather than default one. +.TP +.BR \-\-gecos= string +Descriptive string for the given user (usually the user's full name). +.TP +.BR \-\-gid= gid +Set primary group ID for this user (optional, will default to +given +.BR --uid +value if absent) when +.BR +--passwd +is specified. +.TP +.BR \-\-uid= uid +numerical group ID. +.TP +.B \-h,\ \-\-help,\ \-\-version +Show usage and version of the program. +.TP +.BR \-\-home= path +Set the home directory for the user (required). +.TP +.B \-\-des,\ \-\-md5 +Use the DES or MD5 algorithm for encrypting passwords. +The latter is the default. +.TP +.BR \-\-name= username ,\ \-\-name= groupname +Name of the user account or group (required). +If the name does not exist in the specified output-file, an entry will be created +for it. Otherwise, the given fields will be updated. +.TP +.BR \-\-shell= path +Shell for the user (required). Recommended: +.I /bin/false +.TP +.BR \-\-change-password +Update only the password field for a user. This option +requires that the +.BR --name +option be used, but no others. +This also double-checks the given password against the +user's current password in the existing passwd file, and +requests that a new password be given if the entered password +is the same as the current password. +.TP +.BR --not-system-password +Double-checks the given password against the system password +for the user, and requests that a new password be given if +the entered password is the same as the system password. This +helps to enforce different passwords for different types of +access. +.TP +.BR --stdin +Read the password directly from standard in rather than +prompting for it. This is useful for writing scripts that +automate use of ftpasswd. +.TP +.BR --use-cracklib\fR[ =path \fR] +Causes ftpasswd to use Alec Muffet's cracklib routines in +order to determine and prevent the use of bad or weak +passwords. The optional path to this option specifies +the path to the dictionary files to use -- default path +is +.IR /usr/lib/cracklib_dict . +This requires the Perl Crypt::Cracklib module to be installed on your system. +.TP +.BR --enable-group-passwd +Prompt for a group password. This is disabled by default, +as group passwords are not usually a good idea at all. +.TP +.BR \-m \ username ,\ \-\-member= username +user to be a member of the group. This argument may be used +This argument may be used multiple times to specify the full list +of users to be members of this group. + +.SH BUGS +No known bugs at this time. +If you discover any bugs, please contact the author. + +.SH AUTHOR +This program has been written by TJ Saunders +as a contributed software for ProFTPD. +.P +.SH "SEE ALSO" +.BR proftpd (8), +.BR passwd (5), +.BR group (5), +.BR ftpusers (8), +.BR ftpstats (8), +.BR proftpd.conf (5) + +.SH CREDITS +This manual page was written by +Francesco Paolo Lovergine +for the Debian GNU/Linux system (but may be used by others). --- proftpd-1.2.10.orig/debian/mod_pgsql.texi +++ proftpd-1.2.10/debian/mod_pgsql.texi @@ -0,0 +1,30 @@ +This module is contained in the mod_pgsql.c file, and is not compiled in +by default. It provides the backend support to connect to Postgresql +databases. + +@heading Postgres Database Directives + +@subheading @anchor{PostgresInfo} PostgresInfo + +@format +Syntax: PostgresInfo host user pass dbname +Syntax: PostgresInfo host dbname +Default: none +Context: server config, virtual host +@end format + +Configures the Posgresql database driver (the database may be remote). +A connection isn't made until use of a SQL feature requires it, after +which it may be held open for the lifetime of the FTP session depending +on the directives in use. + +@subheading @anchor{PostgresPort} PostgresPort + +@format +Syntax: PostgresPort [num] +Default: 5432 +Context: server config, virtual host +@end format + +Specifies which TCP/IP port to use for connecting. Default is 5432, or +UNIX socket for localhost. --- proftpd-1.2.10.orig/debian/proftpd.init +++ proftpd-1.2.10/debian/proftpd.init @@ -0,0 +1,222 @@ +#!/bin/sh + +# Start the proftpd FTP daemon. + +PATH=/bin:/usr/bin:/sbin:/usr/sbin + +# Defaults +RUN="no" +OPTIONS="" +CONF=/etc/proftpd.conf + +test -f $DAEMON || exit 0 + +# Read config (will override defaults) +[ -r /etc/default/proftpd ] && . /etc/default/proftpd + +if [ ! -r $CONF ]; then + echo "Missing configuration file $CONF" + exit 0 +fi + +NAME=proftpd +DAEMON=/usr/sbin/$NAME + +PIDFILE=$(grep -i 'pidfile' $CONF | sed -e 's/pidfile[\t ]\+//i') +if [ "x$PIDFILE" = "x" ]; +then + PIDFILE=/var/run/$NAME.pid +fi + +trap "" 1 +trap "" 15 + + +# +# Test if configuration file provided is ok +# +$DAEMON -t -c $CONF >/dev/null 2>&1 +if [ $? -ne 0 ]; then + ISOK="$NAME"$($DAEMON -t 2>&1|grep ' - ') +else + ISOK="yes" +fi + +# +# Servertype could be inetd|standalone|none. +# In all cases check against inetd and xinetd support. +# +ENABLED=$RUN +if ! egrep -qi "^[[:space:]]*ServerType.*standalone" $CONF +then + if [ $(dpkg-divert --list xinetd|wc -l) -eq 1 ] + then + if egrep -qi "server[[:space:]]*=[[:space:]]*$DAEMON" /etc/xinetd.conf 2>/dev/null || \ + egrep -qi "server[[:space:]]*=[[:space:]]*$DAEMON" /etc/xinetd.d/* 2>/dev/null + then + RUN="no" + INETD="yes" + else + if ! egrep -qi "^[[:space:]]*ServerType.*inetd" $CONF + then + RUN="yes" + INETD="no" + else + RUN="no" + INETD="no" + fi + fi + else + if egrep -qi "^ftp.*$NAME" /etc/inetd.conf 2>/dev/null + then + RUN="no" + INETD="yes" + else + if ! egrep -qi "^[[:space:]]*ServerType.*inetd" $CONF + then + RUN="yes" + INETD="no" + else + RUN="no" + INETD="no" + fi + fi + fi +fi + +# /var/run could be on a tmpfs +[ ! -d /var/run/proftpd ] && mkdir /var/run/proftpd + +start() +{ + if [ "$ISOK" != "yes" ]; then + echo "$ISOK" + else + if start-stop-daemon --start --quiet --pidfile "$PIDFILE" --exec $DAEMON -- $OPTIONS -c $CONF; then + echo "$NAME" + else + echo "failed" + fi + fi +} + +signal() +{ + if [ "$1" = "stop" ]; then + SIGNAL="TERM" + else + if [ "$1" = "reload" ]; then + SIGNAL="HUP" + else + echo "ERR: wrong parameter given to signal()" + fi + fi + if start-stop-daemon --stop --signal $SIGNAL --quiet --pidfile "$PIDFILE"; then + echo "$NAME" + else + SIGNAL="KILL" + if start-stop-daemon --stop --signal $SIGNAL --quiet --pidfile "$PIDFILE"; then + echo "$NAME" + else + echo "failed" + fi + fi + if [ "$SIGNAL" = "KILL" ]; then + rm -f "$PIDFILE" + fi +} + +case "$1" in + start) + if [ "x$RUN" = "xyes" ] ; then + echo -n "Starting ProFTPD ftp daemon: " + start + else + if [ "x$INETD" = "xyes" ] ; then + echo "ProFTPd is started from inetd/xinetd." + else + if [ "x$ENABLED" = "xyes" ]; then + echo "ProFTPd warning: not start neither in standalone nor in inetd/xinetd mode, apparently. Check your configuration." + else + echo "ProFTPd disabled by admin. See /etc/default/proftpd." + fi + fi + fi + ;; + + force-start) + if [ "x$INETD" = "xyes" ] ; then + echo "Warning: ProFTPd is started from inetd/xinetd (trying to start anyway)." + fi + echo -n "Starting ProFTPD ftp daemon: " + start + ;; + + stop) + if [ "x$RUN" = "xyes" ] ; then + echo -n "Stopping ProFTPD ftp daemon: " + signal stop + else + if [ "x$INETD" = "xyes" ] ; then + echo "ProFTPd is started from inetd/xinetd." + else + if [ "x$ENABLED" = "xyes" ]; then + echo "ProFTPd warning: not started neither in standalone nor in inetd/xinetd mode, apparently. Check your configuration." + else + echo "ProFTPd disabled by admin. See /etc/default/proftpd." + fi + fi + fi + ;; + + force-stop) + if [ "x$INETD" = "xyes" ] ; then + echo "Warning: ProFTPd is started from inetd/xinetd (trying to kill anyway)." + fi + echo -n "Stopping ProFTPD ftp daemon: " + signal stop + ;; + + reload) + if [ "$ISOK" != "yes" ]; then + echo "$ISOK" + else + echo -n "Reloading $NAME configuration..." + signal reload + echo " done." + fi + ;; + + force-reload|restart) + if [ "x$RUN" = "xyes" ] ; then + if [ "$ISOK" != "yes" ]; then + echo "$ISOK" + else + echo -n "Restarting ProFTPD ftp daemon." + signal stop + echo -n "." + sleep 2 + echo -n "." + start + echo " done" + fi + else + if [ "x$INETD" = "xyes" ] ; then + echo "ProFTPd is started from inetd." + else + if [ "x$ENABLED" = "xyes" ]; then + echo "ProFTPd warning: not started neithr in standalone nor in inetd/xinetd mode, apparently. Check your configuration." + else + echo "ProFTPd disabled by admin. See /etc/default/proftpd." + fi + fi + fi + ;; + + *) + echo "Usage: /etc/init.d/$NAME {start|force-start|stop|force-stop|reload|restart|force-reload}" + exit 1 + ;; +esac + +exit 0 --- proftpd-1.2.10.orig/debian/changelog +++ proftpd-1.2.10/debian/changelog @@ -0,0 +1,1817 @@ +proftpd (1.2.10-27ubuntu3) dapper; urgency=low + + * Argh, stop overriding MySQL's shlibs manually in debian/control. + + -- Adam Conrad Fri, 7 Apr 2006 00:17:22 +1000 + +proftpd (1.2.10-27ubuntu2) dapper; urgency=low + + * Rebuild against the new libmysqlclient15off with correct symbols. + + -- Adam Conrad Thu, 6 Apr 2006 15:11:54 +1000 + +proftpd (1.2.10-27ubuntu1) dapper; urgency=low + + * Modified init script to create /var/run/proftpd if it doesn't exist (if + /var/run is a tmpfs for instance). (Closes: Malone #34255, #34122) + + -- Jeremie Corbier Sat, 18 Mar 2006 16:31:05 +0100 + +proftpd (1.2.10-27) unstable; urgency=low + + * Transition libmysqlclient12 -> libmysqlclient15, retaining back-compatibility + for backporters, just in case. + (closes: #343799) + * Updated invalid de.po. + (closes: #326799) + * Now latest mod_ldap is backported to 1.2.10 API correctly. Thanks Stephan Jaeger. + (closes: #321937) + * Depends changed in Recommends in proftpd-common in respect with + other proftpd-* packages. + This will not remove proftpd-common when ever proftpd is removed, which is + not a good thing IMHO. The whole issue will be obsoleted in the new 1.3.0 + packaging anyway, because it will remove the both proftpd-common and proftpd-* + in upgrading. Note that proftpd-common installs a few common scripts. + (closes: #341008) + * Added 33.documentation.diff patch for a couple of minor doc issues: + (closes: #309251,#306339) + * Removed Paul Martin as proftpd uploader, he is not active since years about that. + * Moved to level 4 compatibility for debhelper (no changes). + + -- Francesco Paolo Lovergine Wed, 11 Jan 2006 13:54:17 +0100 + +proftpd (1.2.10-26) unstable; urgency=low + + * Changed /dev/tty into /dev/null to manage crappy update-inetd in batch processing. + That's definitively not required by policy, but useful... + (closes: #340262) + * Updated download location into copyright file. + (closes: #340240) + * Updated danish template + (closes: #340130) + + -- Francesco Paolo Lovergine Tue, 22 Nov 2005 11:37:51 +0100 + +proftpd (1.2.10-25) unstable; urgency=high + + * Added patch 32.mod_tls.c.diff to manage a change in openssl (0.9.8a), + this is superfluous in incoming 1.3.0, needed in 1.2.10. + (closes: #334979) + * Added debconf2.0 alternative to dependencies. + (closes: #332076) + * Updated templates + (closes: #335357,#328054,#334370) + + -- Francesco Paolo Lovergine Wed, 16 Nov 2005 11:36:42 +0100 + +proftpd (1.2.10-24) unstable; urgency=low + + * Sigh. Reintroduced /dev/tty redirection for update-inetd in maintainer scripts. + See #236595. It seems current netbase does not solve the problem when + there is a non controlling terminal indeed. Try to do an upgrade/install + via dsh for test. + + -- Francesco Paolo Lovergine Fri, 23 Sep 2005 11:08:59 +0200 + +proftpd (1.2.10-23) unstable; urgency=low + + * Managing nicely bad configs now, and other minor changes to init script now done. + (closes: #41089, #326943) + * Updated de.po template. + (closes: #326799) + + -- Francesco Paolo Lovergine Sun, 11 Sep 2005 11:13:39 +0200 + +proftpd (1.2.10-22) unstable; urgency=low + + * Updated patch 29.misc-sql.diff to manage a signal 11 error. + See http://bugs.proftpd.org/attachment.cgi?id=2344 patch for report + http://bugs.proftpd.org/show_bug.cgi?id=2485#c19. Thanks Greg. + * Typo in rules files introduced prevented config.guess update. + Thanks Ryo Kato. + * Missed diskuse contrib tool added. + Thanks Ryo Kato. + * Added diskuse.8 man page. + * Little change to ftpquota.8 man page contents. + * proftpd.init corrected to use || instead of -o in xinetd tests. + Thanks Christoph Bussenius. + + -- Francesco Paolo Lovergine Fri, 2 Sep 2005 20:36:41 +0200 + +proftpd (1.2.10-21) unstable; urgency=low + + * Added ftpquota.8 man page + * Typo corrected in template file + (closes: #317620) + * Added vietnamese template + (closes: #317608) + * Little modification to template statement + (closes: #274414) + * Removed automatic creation of proftpd.conf.5 file which is broken. + A brief version of the page is now provided manually to refer the HTML page. + Sorry guys, upstream is not so keen on man pages... + (closes: #313146) + + -- Francesco Paolo Lovergine Sun, 28 Aug 2005 13:10:47 +0200 + +proftpd (1.2.10-20) unstable; urgency=high + + * SECURITY: Managing SQLShowInfo format string vulnerability. + See http://bugs.proftpd.org/show_bug.cgi?id=2645 for information. + Related patch is 31.mod_sql.c.diff. + * Policy bumped to 3.6.2, no changes. + * New modification to mod_delay to avoid other problem with that module + which could cause memory corruption/leakage. The never end saga continues. + + -- Francesco Paolo Lovergine Thu, 30 Jun 2005 10:18:13 +0200 + +proftpd (1.2.10-19) unstable; urgency=high + + * SECURITY: Managing ftpshut format string vulnerability. + See http://bugs.proftpd.org/show_bug.cgi?id=2646 for information. + Related patch is 30.response.c.diff. + * A couple of finds had wrong position in args lists, due to recent changes. + So missed a few documents. + + -- Francesco Paolo Lovergine Wed, 29 Jun 2005 11:54:32 +0200 + +proftpd (1.2.10-18) unstable; urgency=high + + * Sigh! I left around development settings in rules file to test the damn signal 11 + thingy. That disabled capabilities. + (closes: #315687) + + -- Francesco Paolo Lovergine Sat, 25 Jun 2005 09:31:37 +0200 + +proftpd (1.2.10-17) unstable; urgency=low + + Last (?) upload for 1.2.10 series awaiting for the first amazing 1.3.0 + + * Added a libpq-dev build-dep to be both compatible with incoming postgresql 8 and maintain sarge compatibility. + Now using pg_config in rules file to work with both pgsql 7 and 8. Removed + patch 04.mod_sql_postgres.c.diff. + (closes: #313481) + * mod_delay locks and unlocks the table now, this should prevent random signal 11 + See http://bugs.proftpd.org/show_bug.cgi?id=2630 for information. + Updated again 22.mod_delay.c.diff for that. Probable follow up for #308313 and #301275. + * Reordered find options to avoid warning in current version. + + -- Francesco Paolo Lovergine Wed, 22 Jun 2005 10:22:38 +0200 + +proftpd (1.2.10-16) unstable; urgency=low + + "The very first Etch Era version" release. + + * New patch: 29.misc-sql.diff: + Adds "sql_exit" internal mod_sql command, and removes 'core.exit' handlers from backend modules + (closes: #294077) + * Added a note in README.News about new mod_ldap directives which obsolete old ones. That + change should also be considered possibly for a sarge doc-only update. + (closes: #287357) + + -- Francesco Paolo Lovergine Mon, 6 Jun 2005 15:50:09 +0200 + +proftpd (1.2.10-15) unstable; urgency=high + + * Sigh, castaglia changed the patch for mod_delay again: one of the boundary did not have + sense indeed. + See http://bugs.proftpd.org/show_bug.cgi?id=2622 and #308313 again. + + -- Francesco Paolo Lovergine Thu, 2 Jun 2005 11:18:08 +0200 + +proftpd (1.2.10-14) unstable; urgency=high + + * Finally solved the random segfault in mod_delay. + See http://bugs.proftpd.org/show_bug.cgi?id=2622. + (closes: #308313) + + -- Francesco Paolo Lovergine Wed, 1 Jun 2005 10:49:19 +0200 + +proftpd (1.2.10-13) unstable; urgency=high + + * Added a -DUSE_LDAP_TLS to CFLAGS in rules for mod_ldap, else it does not work + with TLS. This is now (2.8.15) required along with the yet present SSL flag. + (closes: #308861) + + -- Francesco Paolo Lovergine Wed, 18 May 2005 13:30:30 +0200 + +proftpd (1.2.10-12) unstable; urgency=high + + * Added a patch 28.mod_ls.c to manage incorrect symlink following in + recursive listing. That breaks old versions behavior and create problem + to mirroring software. + See http://bugs.proftpd.org/show_bug.cgi?id=2551 for information + (closes: #308578) + * Revised again 22.mod_delay.c.diff patch to manage long delays: + http://bugs.proftpd.org/show_bug.cgi?id=2601 + + -- Francesco Paolo Lovergine Fri, 13 May 2005 09:51:43 +0200 + +proftpd (1.2.10-11) unstable; urgency=high + + The "Welcome back to my digital life, just after freezing" release. + + * Added copy of the missed ftpquota command in debian/rules. + And yes, its man page is missing yet, it needs to be written from scratch :-/ + http://forums.proftpd.org/phpBB2/viewtopic.php?t=421 + * Updated patch 22.mod_delay.c.diff to manage an important mod_delay problem + which causes a segfault and DOS. + See http://bugs.proftpd.org/show_bug.cgi?id=2554 for related upstream thread. + * Another important issue, off BTS. + sendfile() fails with large files on some archs (x86_64 for instance) again. + See http://bugs.proftpd.org/show_bug.cgi?id=2509 for upstream thread. + Previous patch needs revision. Incidentally this solves also the automake + cache inclusion. + (closes: #307136) + * Updated mod_ldap to 1.3.0rc1 version (2.8.15). + (closes: #306763) + + -- Francesco Paolo Lovergine Wed, 4 May 2005 14:34:52 +0200 + +proftpd (1.2.10-10) unstable; urgency=low + + * mod_quotatab_sql.c needed revision to remove another lvalue casting. + New patch 27.mod_quotatab_sql.c.diff for that. + (closes: #287966) + * Revised proftpd-doc to add missing new documentation, howtos and examples. + (thanks TJ who pointed me to that). + * New FLOSS License Exception for MySQL Server and client libraries now includes + OpenSSL. See manual (appendix I) or http://dev.mysql.com/doc/mysql/en/mysql-floss-license-exception.html + So, now linking with libmysqlclient12 is allowed, debian/control changed. + + -- Francesco Paolo Lovergine Fri, 11 Feb 2005 14:13:39 +0100 + +proftpd (1.2.10-9) unstable; urgency=high + + * Syncing quotatab files from CVS to be coherent with new mod_ldap.c + module. That's a new patch for that: 25.mod_quotatab.c.diff + See http://sourceforge.net/mailarchive/forum.php?thread_id=6255251&forum_id=2637 + This justify urgency. + * Changed a bit 01.contrib.mod_ldap.c.diff to not declare version variable + after instructions. See also CVS committment as shown in + http://cvs.sourceforge.net/viewcvs.py/*checkout*/proftp/proftpd/contrib/mod_ldap.c?rev=1.37 + (closes: #288327) + * New patch 26.mod_radius.c.diff to solve compiling problems on recent GCC and AMD64 + (closes: #287966) + + -- Francesco Paolo Lovergine Sun, 2 Jan 2005 21:21:22 +0100 + +proftpd (1.2.10-8) unstable; urgency=medium + + * Updated patch 22.mod_delay.c.diff to not check for DelayTable if DelayEngine is off. + See http://bugs.proftpd.org/show_bug.cgi?id=2540 for information. + (closes: #283811) + * Typo in rules, now removing README.cygwin, not README.cgywin :-/ + + -- Francesco Paolo Lovergine Wed, 29 Dec 2004 22:51:30 +0100 + +proftpd (1.2.10-7) unstable; urgency=medium + + * New mod_ldap from cvs (2.8.14 instead of 2.8.12). It adds the new LDAPProtocolVersion + directive and other fixes. 01.contrib.mod_ldap.c.diff changed to reflect this. + Therefore, mod_ldap now works with protocols 2 or 3 and defaults to 3. + This partially fixes #279530. + * Patch 03.mod_ldap.c.diff removed (integrated upstream) + * Added libpam-rutime versioned dependency in proftpd-common due to /etc/pam.d/common-* use + which is not a woody feature. This does facilitate use in mixed environment, if + not proper upgrades. Thanks Marc Moeller who pointed a problem due to that. + * Added a patch to correcly merge all directives when mod_ifsession is used. + See http://bugs.proftpd.org/show_bug.cgi?id=2536 for details. + + -- Francesco Paolo Lovergine Sat, 18 Dec 2004 09:32:15 +0100 + +proftpd (1.2.10-6) unstable; urgency=medium + + * Updated mod_delay again from CVS. + * Added new patch for TimeoutLogin connection problem: 23.timeout.diff. + See http://bugs.proftpd.org/show_bug.cgi?id=2516 for details. + (closes: #282214) + * Now uses common modules for PAM. + (closes: #283131) + * Updated german template + (closes: #282497) + * Removed README files for other platforms. + * Removed superfluous perl-base dependency. + + -- Francesco Paolo Lovergine Mon, 29 Nov 2004 14:46:28 +0100 + +proftpd (1.2.10-5) unstable; urgency=low + + * Sigh, now includes a more recent mod_delay/0.4 instead of mod_delay/0.3 + (closes: #282045) + * Changed xinetd section in rules file to manage better cases with/without a + possible empty /etc/xinetd.d directory. + Corrected typo in init script. + Corrected xinetd documentation xref in postinst. + (closes: #282064) + + -- Francesco Paolo Lovergine Sat, 20 Nov 2004 09:09:21 +0100 + +proftpd (1.2.10-4) unstable; urgency=low + + * First upload into unstable. Here we go! + (closes: #278309) + * Fixes problems probably due to a backported patch from 1.2.10 into 1.2.9-19 + (closes: #281528) + * Fixed a bit default proftpd.conf. + (closes: #279580) + * Added mod_delay contributed module to manage the so-called "Timing attack". + + -- Francesco Paolo Lovergine Wed, 17 Nov 2004 23:12:30 +0100 + +proftpd (1.2.10-3) experimental; urgency=low + + * Revised patch 21.sendfile_with_large_files due to type mismatch in a function call :-( + + -- Francesco Paolo Lovergine Fri, 5 Nov 2004 13:38:11 +0100 + +proftpd (1.2.10-2) experimental; urgency=low + + * Merging changes from 1.2.9-19: + - new debconf templates: cs.po, da.po, de.po + - built with --enable-sendfile which should reduce average CPU load. + - added patch for >2GB files with sendfile(): 21.sendfile_with_large_files. + See See http://bugs.proftpd.org/show_bug.cgi?id=2509 for original patch. + Hint: run autoconf2.50 after applying cvs patch to the original tree. + + -- Francesco Paolo Lovergine Fri, 5 Nov 2004 11:04:43 +0100 + +proftpd (1.2.10-1) experimental; urgency=low + + * New upstream release. + Removed all patches integrated upstream: + 13.mod_sql_mysql.c.diff + 15.mod_quotatab_sql.c.diff + 16.dirtree.c.diff + 17.netio.c.diff + 18.mod_auth_file.c.diff + 19.main.c.ipv6.diff + * Changed 01.mod_ldap.diff patch: removed Ivo's old patch which was also not + documented anywhere. See NEWS.Debian for information. Thanks TJ. + * Changed NEWS.Debian file to document the above thing. + * Added 20.core.create-home.diff patch from CVS to support script exec on + home creation. + + -- Francesco Paolo Lovergine Mon, 11 Oct 2004 23:19:46 +0200 + +proftpd (1.2.9-16) unstable; urgency=low + + * Added /etc/xinetd.conf to the file checked in init script to verify + if proftpd call is configured in xinetd. + (closes: #271163) + * Added a versioned dependency from libmysqlclient10, compatible with that + distributed in sarge. + (closes: #269454) + + -- Francesco Paolo Lovergine Sat, 11 Sep 2004 20:45:04 +0200 + +proftpd (1.2.9-15) unstable; urgency=high + + * Just a better warning message into proftpd.init. + * Revised this changelog for typos. + * Updated pt_BR translation. + (closes: #264252) + * Severity set to high to enter sarge within time slot for freeze. + + -- Francesco Paolo Lovergine Tue, 17 Aug 2004 13:20:57 +0200 + +proftpd (1.2.9-14) unstable; urgency=high + + * Added a better management of inetd/xinetd in proftpd.init script. Now + inet/standalone/none servertype are considered. It tries to startup + in daemon mode only if inetd/xinetd support is truly missing. + This is not optimal, but works in the most cases. The greatest problem is the + same pointed below: configuration status could not reflect the effective + daemon status. + (closes: #263247) + * Renamed 16.dirtree,c.diff into 16.dirtree.c.diff: typo in patch name. + * Added ipv6 related patch, again related to weird IPv6 message into + #263247: 19.main.c.ipv6.diff. It is present in 1.2.10rc1. + + -- Francesco Paolo Lovergine Tue, 3 Aug 2004 22:38:08 +0200 + +proftpd (1.2.9-13) unstable; urgency=low + + * New patch: 18.mod_auth_file.c.diff + See: http://bugs.proftpd.org/show_bug.cgi?id=2445 + If one uses the AuthUserFile or AuthGroupFile directive within a + context, that directive overrides any AuthUserFile or AuthGroupFile + directives within the "main server" or contexts. This patch + solves that bug. + (closes: #262697) + * Revised proftpd.conf comments. + (closes: #256520) + * Added a -DHAVE_OPENSSL to CFLAGS in rules file. Apparently mysql configure + check for SSL support but does not #define properly for mod_sql.c, which + is anyway in contrib section. Maybe mod_sql.c needs patching. + This hack solves the issue for what concerns Debian anyway. + (closes: #233031) + * Now double check for inetd/standalone mode. Daemon starts if ServerType is + standalone or is absent _and_ ftp service is absent (or commented out) in + inetd.conf. That's not so great, because inetd.conf could not reflect + the current inetd status, but it's better than nothing. + (closes: #256525) + + -- Francesco Paolo Lovergine Mon, 2 Aug 2004 16:01:14 +0200 + +proftpd (1.2.9-12) unstable; urgency=high + + * Removed all autoconf-related rules within Makefile.in, so patch 07.autoconf.diff + has changed. Previous patch tried to force the use of a recent autoconf + instead. This freezes configure in the form issued by upstream. + (closes: #248612) + * Autotools file config.(guess|sub) moved into the build-tree. + + -- Francesco Paolo Lovergine Wed, 12 May 2004 15:00:07 +0200 + +proftpd (1.2.9-11) unstable; urgency=low + + * Removed a duplicated build-dep (libwrap0-dev) + * Using autotools-dev build-dep instead of autoconf + + -- Francesco Paolo Lovergine Mon, 10 May 2004 21:12:30 +0200 + +proftpd (1.2.9-10) unstable; urgency=low + + * Deletion of /etc/proftpd.conf on purge has been moved into + proftpd-common.postrm. The same for all other no-return actions. + Ratio: proftpd-common is the only package which is purged after + removing of all bin-dep packages, not just on transitions from a bin + package to another. Therefore that's the right place to purge things. + (closes: #247860) + + -- Francesco Paolo Lovergine Fri, 7 May 2004 23:28:47 +0200 + +proftpd (1.2.9-9) unstable; urgency=low + + * Added mod_ifsession compilation (rules), as asked by users. + + -- Francesco Paolo Lovergine Sat, 17 Apr 2004 20:17:30 +0200 + +proftpd (1.2.9-8) unstable; urgency=high + + * netbase versioning uniformed to 4.13 for each package. + * The no-end saga of ucf, again. Version -7 missed modifications done in -6 for + #239528, due to cvs repository outdated status. + (closes: #244020) + + -- Francesco Paolo Lovergine Tue, 13 Apr 2004 13:51:47 +0200 + +proftpd (1.2.9-7) unstable; urgency=high + + * Removed a double check for inetd update (proftpd.postinst) + (closes: #242013) + * Added an '|| true' into install_ftp (proftpd.postinst) + * Integrating a patch to avoid an infinite loop. + See http://bugs.proftpd.org/show_bug.cgi?id=2300 for patch. + Fixed by 17.netio.c.diff + (closes: #243071,#243277) + + -- Francesco Paolo Lovergine Mon, 12 Apr 2004 09:41:52 +0200 + +proftpd (1.2.9-6) unstable; urgency=high + + * Umpf. Previuous upload did not solve the issue. It seems definitively a + problem with ucf (Thanks Paul Slootman): --debconf-ok should be used + only before a db_stop. Also reverted again with redirection for + update-inetd. + For some reason the whole problem was not so easily evident. + (closes: #239528) + * Previous upload missed patch 16.dirtree.c.diff due to outdated cvs + repository on alioth. + * Cosmetic changes into basic anon section (DirFake*). + Other issues are secondary/outdated. + (closes: #240209) + + -- Francesco Paolo Lovergine Mon, 29 Mar 2004 23:31:52 +0200 + +proftpd (1.2.9-5) unstable; urgency=high + + * Reverted redirection of stdin and stdout for update-inetd. Also reverted + netbase versioning dependency. Apparently workaround in current + update-inetd does not work as it should. + (closes: #239528) + + -- Francesco Paolo Lovergine Wed, 24 Mar 2004 20:14:55 +0100 + +proftpd (1.2.9-4) unstable; urgency=high + + * Typo introduced in postrm (closes: #236963) + * Removed redirection workaround for update-inetd (already builtin in netbase >=4.13). + Changed version dependency for netbase as consequence. + (closes: #236595) + * Security problem (although conf dependent) fixed in patch 16.dirtree.c.diff. (Thanks iSteve) + See http://bugs.proftpd.org/show_bug.cgi?id=2267 for hint and patch. + * Typo in ftpstats.8 corrected (Thanks iSteve) + + -- Francesco Paolo Lovergine Tue, 9 Mar 2004 11:50:36 +0100 + +proftpd (1.2.9-3) unstable; urgency=low + + * New patch 15.mod_quotatab_sql.c.diff. (Thanks Jerome Walters) + Bug found by Christian Schulte : delta values are signed, + and can be negative. + * Now use --debconf-ok for ucf, but needs versioning depends on ucf >= 0.30 + + -- Francesco Paolo Lovergine Thu, 26 Feb 2004 00:11:09 +0100 + +proftpd (1.2.9-2) unstable; urgency=low + + * Using basic.conf from 1.2.8 series, instead of the old one with prefixed + anonymous section. + * Added libncurses5-dev build-dep for ftptop. + * Policy bumped to 3.6.1 (no changes). + + -- Francesco Paolo Lovergine Mon, 17 Nov 2003 13:59:24 +0100 + +proftpd (1.2.9-1) unstable; urgency=low + + * The first post-Halloween release now moving to sid. + Now using upstream tarball. + * CVS repository enabled: tagging appropriately. + * Removed patch 14.manpages.diff: manpages are integrated in upstream + tarballs, even if not present in CVS. + * New patch: 14.mod_quotatab.diff: mod_quotatab 1.2.11 contributed module + now replaces the old 1.2.7. + * Removed 13.manpages.diff patch which is not due in off-cvs releases. + * Tries to manage upgrades from pre-1.2.9 series in a soft way: + - The scoreboard file format changed, so all inetd sessions need to be killed + and file moved before restarting the service. The file needs to be + moved for a standalone configuration, anyway. + - SocketOptions directive replaces and deprecates the following + directives: tcpReceiveWindow, and tcpSendWindow. + + -- Francesco Paolo Lovergine Mon, 3 Nov 2003 14:14:00 +0100 + +proftpd (1.2.8+cvs20031020-1) experimental; urgency=low + + * A new CVS snapshot (post 1.2.9rc3). + * Merged stuff from unstable branch + - New russian template. + - Added a versioned dependency from debianutils to proftpd-common + - Removed RFCs + - Changed order in module loading for dependencies + + -- Francesco Paolo Lovergine Mon, 20 Oct 2003 23:36:58 +0200 + +proftpd (1.2.8+cvs20030927-1) experimental; urgency=high + + * A new CVS snapshot (post 2003-9-24 exploit). + * Merged stuff from unstable branch (>= -9): + - Now using case insensitive egrep in init files + - Patches renumbered sequentially + - Removing anonymous access enabling/disabling. A well commented basic + configuration, to be modified by hand is much more effective and secure. + Also that code is completely failing if admin changed configuration on his + own, as generally done by everyone. So, debconf configuration is much less + intrusive, and it's performed anyway. User 'ftp' is also added by + default if not present, being a considered a 'system' one. + + Added a NEWS.Debian file to explain the new policy. + Changed templates as consequence. + - International templates revised. + - Added strict version source dependency for proftpd-common. + - Use proftpd.org instead of .net in control file descriptions. + - Added NEWS.Debian as kept in unstable branch. + - Removed 05.ftpstats.diff (unuseful). + - Postinst revised to manage welcome.msg nicely. + * Bugs fixed at this time (see below): + (closes: #192590,#204157,#192590,#203230,#186074,#212416) + (closes: #145669 see http://www.castaglia.org/proftpd/patches/README.require-valid-user) + + -- Francesco Paolo Lovergine Sun, 28 Sep 2003 17:52:31 +0200 + +proftpd (1.2.8+cvs20030818-1) experimental; urgency=low + + * A new CVS snapshot. IPV6 is now integrated. + * Removed previous patches 01.ipv6_rollback.diff and 00.ipv6.diff all IPv6 + related. + * Changed patch 20.contrib.mod_ldap.c.diff to reflect modifications in + inet.h + + -- Francesco Paolo Lovergine Tue, 19 Aug 2003 09:19:19 +0200 + +proftpd (1.2.8+cvs20030805-1) experimental; urgency=low + + * A new CVS snapshot. See NEWS file for a list of bugs solved. + All Debian patches applies but some hacks on the first one. + * Policy updated to 3.6.0 + * Bugs closed at this time: #204157,#192590,#203230 + * Added IPV6 support. + + -- Francesco Paolo Lovergine Tue, 5 Aug 2003 20:57:31 +0200 + +proftpd (1.2.8+cvs20030620-1) experimental; urgency=low + + * This is based on cvs tree at the date. It's not prime time ready. + * Removed duplicated tarball: fixes #192590 + * Removed patches already in CVS: + AB.fixes_handling_of_contexts_to_use_proper_pool.diff + B2.mod_sql_postgres.c.diff + 10.mod_cap.c.diff + * Added patches: + 91.autoconf.diff - move configure.in to configure.ac to force use of autoconf2.50 + B2.mod_sql_mysql.c.diff - use instead of + B3.manpages.diff - add man pages that are missing in the cvs tree + * Added autoconf build-dep. + * Policy updated to 3.5.10. + * Minor changes in rules file in order to build correctly. + + -- Francesco Paolo Lovergine Sat, 21 Jun 2003 17:31:36 +0200 + +proftpd (1.2.8-8) unstable; urgency=high + + * Added a set +e before testing proftpd configuration. + Proftpd could crash in some cases when testing. + (closes: #197585) + * Added AB.fixes_handling_of_contexts_to_use_proper_pool.diff: + fixes handling of contexts to use properpool, by patching src/dirtree.c and src/sets.c. + This is from current CVS tree. + (closes: #197586) + * Security: added B2.mod_sql_postgres.c.diff: + See http://bugs.proftpd.org/show_bug.cgi?id=2087 for information. This + has been created using diff among mod_sql_postgres.c-1.16 and mod_sql_postgres.c-1.10. + This is from current CVS tree. + (closes: #197984) + + -- Francesco Paolo Lovergine Thu, 19 Jun 2003 13:50:29 +0200 + +proftpd (1.2.8-7) unstable; urgency=high + + * Added an input ( Tue, 27 May 2003 12:49:50 +0200 + +proftpd (1.2.8-6) unstable; urgency=low + + * Added missing HTML documentation to proftpd-doc. This also clarify misbehaving for mod_tls. + (closes: #150694) + * Added mod_rewrite, mod_radius, mod_wrap to all packages. So added + libwrap0-dev among build-deps. + (closes: #158305) + * Added more README files and removed a couple of obsoleted ones. + * debconf template and it.po revised as suggested. + (closes: #190821) + * New fr.po integrated. + (closes: #191227) + + -- Francesco Paolo Lovergine Tue, 6 May 2003 20:56:06 +0200 + +proftpd (1.2.8-5) unstable; urgency=high + + * Explicitly depends on libmysqlclient10-dev, which is the last LGPL licensed. + Also, current sql module is not tested with mysql4, so the conservative + approach is the safest one. + * Introduced Replaces in control/proftpd-common against old packages. + (closes: #188114) + * Policy updated. + * Maintainer script totally revised. Wow! Some more hints in basic.conf + added too. Also a new warning note is displayed when upgrading. + (closes: #168305, #145662, #187695, #186646, #187695) + Debconf IS NOT a configuration tool. Now I use it only for minimal + config interactions. We absolutely needed a more powerful config editor + for proftpd.conf, but I seriously doubt it can be really written. + * Introduced -q for savelog instead of stdout/stderr redirect, in + cron.monthly. + (closes: #188722) + * Now truly install ftpasswd.8 among proftpd-common man pages :-/ + + -- Francesco Paolo Lovergine Thu, 24 Apr 2003 12:31:26 +0200 + +proftpd (1.2.8-4) unstable; urgency=medium + + * Init file revised to use current default pidfile or PidFile directive. + Scoreboard file name no more has the daemon pid bundled. + (closes: #186312) + * Now postinst changes obsolete LsDefaultOptions in ListOptions directive. + That's needed in moving from 1.2.6 basic.conf. Added a list_options() + function for this. + + -- Francesco Paolo Lovergine Thu, 27 Mar 2003 11:09:00 +0100 + +proftpd (1.2.8-3) unstable; urgency=high + + * Removed dh_undocumented which is no more used. + * Added a new patch: + 10.mod_cap.c.diff - solves a double free in mod_cap which caused #185030. + * Re-added mod_cap thanks to previous patch. So readded libcap-dev. + * Patch 20.contrib.mod_ldap.c.diff revised. + (closes: #185125, #175581,#185567) + + -- Francesco Paolo Lovergine Sat, 22 Mar 2003 11:56:53 +0100 + +proftpd (1.2.8-2) unstable; urgency=high + + * Removed mod_cap. It needs more investigation. + + -- Francesco Paolo Lovergine Tue, 18 Mar 2003 13:27:24 +0100 + +proftpd (1.2.8-1) unstable; urgency=high + + * New upstream release, merging with my experimental 1.2.7 pkg... + (closes: #185084) + This also solve a potential seriuous license bug as stated + in http://lists.debian.org/debian-legal/2003/debian-legal-200303/msg00287.html + and http://lists.debian.org/debian-legal/2003/debian-legal-200301/msg00287.html. + * IPv6 removed. It will be available in 1.2.9 anyway. It was also disabled in all + releases before 1.2.6-5, so I guess it's not a high-requested feature :) + * configure updated to 2.57. + * added config.(sub|guess) cleaning. + * Paul asked to become co-maintainer. + * Removed patches: + 30.libcap.change.build.dir.diff + 32.libcap.compilation.fix.diff.uue + 50.proftpd-1.2.6rc1-tls.2002.07.11.patch + AE.mod_tls.c.no.certificates.found.diff + 91.mod_tls.diff + AF.ipv6.diff + B0.mod_ls.c.fsmatch.diff + * Added patches: + 90.man.diff + * Changed fr.po: now truly closes: #182889. + * Policy update. + * Added dep/build-dep from libcap2(-dev). It does not work with stable libcap. + (closes: #185030, hopefully #185125) + + -- Francesco Paolo Lovergine Tue, 18 Mar 2003 12:34:58 +0100 + +proftpd (1.2.6-5) unstable; urgency=low + + * Only restart the daemon if runlevels allow, in accordance with + policy section 10.3.3.2. (Closes: #166907) + * Revised contents of ftpstats.8 (frankie) + * Added ftpasswd.8 (frankie) + * Removed obsolete proftpd libcap building. Now uses standard one. (frankie) + (Closes: #168953) + * fr.po updated (frankie) (Closes: #182889) + * pt_BR.po updated (frankie) (Closes: #177226) + + -- Francesco Paolo Lovergine Mon, 3 Mar 2003 10:39:59 +0100 + +proftpd (1.2.6-4) unstable; urgency=low + + * debian/control: put proftpd-doc in section "doc". + * Now uses po-debconf templates (frankie). + * Added Italian template (frankie). + * debian/control: added frankie@debian.org as co-maintainer. + * debian/control: added build-depend on sharutils, as we now need + uudecode because of... + * debian/patches: two of the patches contain RCS Id tags in their + context, which got mangled by CVS, so they're now uuencoded, which + required changes to... + * debian/scripts/file2cat: now uudecodes files with .uue extension + * debian/scripts/dbs-build.mk: ignore CVS directories when applying + patches. + * debian/rules: use $$m instead of $m for loop variable. + (Closes: #166205) + * debian/patches/AC.mod_unixpw.c.ldap.fix.diff: if getpwnam/getpwuid + return NULL, revert to original method of getting pw entries. + (Closes: #165188) + * debian/rules: remove incorrect logic for detecting kernel version + which was causing linuxprivs never to be compiled in. Thanks to + frankie for tracing this one. (Closes: #166215) + + -- Paul Martin Mon, 28 Oct 2002 14:24:28 +0000 + +proftpd (1.2.6-3) unstable; urgency=low + + * debian/proftpd.config: unfortunately Ivo's patch had a bug in it. + Fixed this and another problematic conditional pointed out by Andrew + Suffield. (Closes: #164556,#164556) + * debian/proftpd.config: more compare-versions fixes. (Closes: #165677) + + -- Paul Martin Mon, 21 Oct 2002 12:27:08 +0100 + +proftpd (1.2.6-2) unstable; urgency=low + + * New maintainer. (Closes: #163632) + * debian/proftpd.config: fix version test (Closes: #164556) + * debian/patches/B0.mod_ls.c.fsmatch.diff: Fixes the "virtual + filesystem" abstraction. Only contrib/mod_test.c would be + affected, if we built it. + * debian/rules: added undocumented.7 link to ftpasswd.8. + (Bug: #150101) Bug left open until proper manpage is written. + * debian/patches/B1.ftpasswd.cracklib.location.diff: Change the + default location of the cracklib dictionaries to match their + Debian location. (Closes: #159365) + + -- Paul Martin Fri, 18 Oct 2002 18:12:59 +0100 + +proftpd (1.2.6-1) unstable; urgency=low + + * New upstream release. + * debian/patches/20.contrib.mod_ldap.c.diff: Updated. + * debian/patches/AF.ipv6.diff: Updated. + * debian/patches/AG.mod_ratio.c.3.3.diff: Removed. + * debian/patches/AH.mod_ldap.c.HEAD.diff: Removed. + + -- Ivo Timmermans Sat, 7 Sep 2002 14:49:52 +0200 + +proftpd (1.2.5+1.2.6rc2-1) unstable; urgency=low + + * New upstream version. + * debian/control: Change section from non-US to net. + * debian/copyright: Change licenses for mod_ldap.c and mod_ratio.c. + * Take advantage of the required new source upload to create an + .orig.tar.gz and a .diff.gz. + * debian/proftpd.postinst: Call db_stop before replace_file. + * debian/patches/33.mod_quota.c.exemption.fix.diff: Removed (upstream + has removed mod_quota.c). + * debian/rules: Don't include mod_quota.c in compilation. + * debian/patches/50proftpd-1.2.5-tls.2002.05.30.patch: Replaced by + 50.proftpd-1.2.6rc1-tls.2002.07.11.patch. + * debian/patches/AB.mod_ls.c.large.files.support.diff: Removed (upstream + has included LFS). + * debian/patches/AF.ipv6.diff: Updated. + * debian/patches/AG.mod_ratio.c.3.3.diff: Update mod_ratio.c to version + 3.3. + * debian/patches/AH.mod_ldap.c.HEAD.diff: Update mod_ldap.c to CVS HEAD. + + -- Ivo Timmermans Sun, 1 Sep 2002 17:06:41 +0200 + +proftpd (1.2.5-3) unstable; urgency=low + + * debian/proftpd.init: + - Remove bashism; + - signal(): remove superfluous "proftpd" in the find statement; + (Closes: #156878) + - Added new option "force-stop", which will try to kill proftpd even + though the config file says it is started from inetd (like + force-start). (Closes: #153922) + * debian/proftpd.config: Stop any running proftpd when the old setting + was to be run standalone, and the new setting to run from inetd. + (Closes: #144882, #151362) + * debian/proftpd.postrm: Remove debconf calls. + (Closes: #148727, #156464) + * debian/copyright: + - Include the license exception the ProFTPd team has given (long + ago) to allow binaries linked against OpenSSL to be distributed. + - Include licenses for contributed modules. + + -- Ivo Timmermans Sun, 18 Aug 2002 20:25:11 +0200 + +proftpd (1.2.5-2) unstable; urgency=low + + * debian/proftpd.init: Let the init script get the location of the + scoreboard from the config. (Closes: #150162) + * debian/patches/AE.mod_tls.c.no.certificates.found.diff: Don't try to + check certificate files on startup. (Closes: #153992, #154238) + * debian/patches/20.contrib.mod_ldap.diff: Fix segfault in uid-lookup in + proftpd-ldap. (Closes: #150525) + * debian/control: Changed sections from non-US/main to non-US. + * debian/patches/AF.ipv6.diff: IPv6 patch from Jan Rekorajski, Amand + TIHON and others. + + -- Ivo Timmermans Tue, 13 Aug 2002 23:23:54 +0200 + +proftpd (1.2.5-1) unstable; urgency=low + + * New upstream version. (Closes: #146839) + * Updated TLS patch. + * Upstream now includes ftpasswd, deleted it from 99.misc.diff. + * Deleted the patch to delete doc/rfc/draft-murray-auth-ftp-ssl-08.txt, + which has been deleted upstream. + * Updated AB.mod_ls.c.large.files.support.diff. + * Removed one "ShowSymlinks on" from basic.conf. (Closes: #148358) + + -- Ivo Timmermans Thu, 13 Jun 2002 17:16:10 +0200 + +proftpd (1.2.4+1.2.5rc1-6) unstable; urgency=high + + * One more try... + * /etc/proftpd.conf is no longer marked as a conffile. Instead, we + verify its existence every time postinst is ran, possibly copying it + over from our default version in + /usr/share/doc//examples/proftpd.conf. If we need to change + it, ucf is called to let the user merge in any changes he + made. (Closes: #143351) + * Rephrased the shared/proftpd/replace_file_install debconf question. + (Closes: #144715) + * Removed mention of obsolete proftpd-sql in package description. + (Closes: #144365) + + -- Ivo Timmermans Sun, 28 Apr 2002 10:22:42 +0200 + +proftpd (1.2.4+1.2.5rc1-5) unstable; urgency=high + + * Reworked postinst to handle configuration files better; allow the user + to review the changes before committing them. Thanks to Roland Mas + for the help. (Closes: #143351) + * Stop proftpd from prerm. (Closes: #143376) + + -- Ivo Timmermans Mon, 22 Apr 2002 13:50:50 +0200 + +proftpd (1.2.4+1.2.5rc1-4) unstable; urgency=high + + * Configuring proftpd-ldap, proftpd-*sql with debconf was broken, now + uses shared debconf templates. This fixes a release critical bug + nobody reported. + * Properly mention that support for mysql or postgresql is included in + proftpd-{my,pg}sql package descriptions. + + -- Ivo Timmermans Wed, 17 Apr 2002 12:07:20 +0200 + +proftpd (1.2.4+1.2.5rc1-3) unstable; urgency=medium + + * Use CFLAGS when running configure. + * Large file support (partially by Petr Cech, thank you). + (Closes: #139325) + * Fix typo in postinst. (Closes: #140498) + * Correct == to = in init script. (Closes: #140896) + * Apply fix for proftpd-ldap by Steve Langasek, which makes mod_unixpw + use getpwnam if pwdfname isn't /etc/passwd. (Closes: #141275) + * Fix crash of proftpd-*sql when user shell field is NULL. + (Closes: #140141) + * Updated debconf template for Brazilian Portugese. (Closes: #141690) + + -- Ivo Timmermans Thu, 11 Apr 2002 19:25:53 +0200 + +proftpd (1.2.4+1.2.5rc1-2) unstable; urgency=low + + * Changelog entry for 1.2.4-2 got lost, readded. + * Changed build dependency for postgresql-dev to 7.2 or higher. + * Added build dependency on bzip2. + * Patch, probably from Ignacy Gawedzki, to prevent server crash when + using REST+GET on unaccessible source. (Closes: #136696) + + -- Ivo Timmermans Mon, 4 Mar 2002 19:37:21 +0100 + +proftpd (1.2.4+1.2.5rc1-1) unstable; urgency=low + + * New upstream version. (Closes: #125829) + * Switch to dbs. + * Updated TLS patch. (Closes: #118804) + * Fix ftpstats (see bugreport for details). (Closes: #133647) + * Updated init.d script, use /etc/defaults. Thanks to Marc Haber for + the patch. (Closes: #120324, #128805) + * Fixed a typo in postinst which might have caused problems when + upgrading. + * Renamed the English debconf template, added French translation. + (Closes: #136104) + * Redirect stderr to /dev/null in cron.monthly. (Closes: #136309) + + -- Ivo Timmermans Sun, 3 Mar 2002 18:37:41 +0100 + +proftpd (1.2.4-2) unstable; urgency=high + + * Fix segfault on ls /////////// (Closes: 125829) + + -- Ivo Timmermans Sun, 23 Dec 2001 23:00:43 +0100 + +proftpd (1.2.4-1) unstable; urgency=low + + * New upstream release + * Added Russian debconf templates. + (Closes: #114953, #114954, #114955, #114957) + * Fixed small error in build script that prevented the German debconf + templates from being installed. + * Updated standards version. + * Make proftpd suggest proftpd-doc instead of recommend. + (Closes: #113673) + * Allow two extra digits for total number of bytes sent in the xferstat + script. (Closes: #107387) + * Link in mod_wrap. (Closes: #111454) + + -- Ivo Timmermans Mon, 22 Oct 2001 01:45:19 +0200 + +proftpd (1.2.2-1) unstable; urgency=high + + * New upstream release (Closes: #109070): + - Doesn't use ifdef's inside a printf call. + (Closes: #104402, #104948) + * Don't log `No certificates found' message for each connection, only + print it on startup. (Closes: #103318) + * Change documentation for HideGroup. (Closes: #106548) + * Add new directives for proftpd-ldap: LDAPCheckAllow, LDAPCheckDeny, + LDAPHomedirOnDemandScript + + -- Ivo Timmermans Sat, 18 Aug 2001 17:29:31 +0200 + +proftpd (1.2.1+1.2.2rc3-3) unstable; urgency=low + + * Depend on adduser. (Closes: #102944) + * Updated the Spanish debconf template. (Closes: #102135) + * Include genuser.pl and ftpasswd in the proftpd-common package. + (Closes: #102489) + + -- Ivo Timmermans Tue, 3 Jul 2001 01:01:44 +0200 + +proftpd (1.2.1+1.2.2rc3-2) unstable; urgency=low + + * Added -r to rm -f /var/run/proftpd in postrm. + + -- Ivo Timmermans Mon, 2 Jul 2001 00:48:16 +0200 + +proftpd (1.2.1+1.2.2rc3-1) unstable; urgency=low + + * New upstream release. + * Applied the TLS patch by Peter Runestig. + * Included new config.sub and config.guess. (Closes: #99862) + * Fixed regexp in proftpd.init. (Closes: #98078) + + -- Ivo Timmermans Thu, 28 Jun 2001 11:57:49 +0200 + +proftpd (1.2.1-9) unstable; urgency=low + + * Changed sections now that postgresql is in non-US. (Closes: #97124) + * Kill any references to /usr/doc and /usr/man from debian/rules. + + -- Ivo Timmermans Fri, 11 May 2001 11:16:51 +0200 + +proftpd (1.2.1-8) unstable; urgency=low + + * Fixed the logic that determines how to handle + /etc/proftpd.conf. (Closes: #96593) + + -- Ivo Timmermans Wed, 9 May 2001 10:57:32 +0200 + +proftpd (1.2.1-7) unstable; urgency=low + + * Check that /etc/proftpd.conf exists before calculating the md5sum + (doh). + + -- Ivo Timmermans Sun, 6 May 2001 14:06:32 +0200 + +proftpd (1.2.1-6) unstable; urgency=low + + * Make proftpd-doc suggest proftpd-common. (Closes: #95724) + * Added tests to see if /etc/proftpd.conf exists. (Closes: #95650) + + -- Ivo Timmermans Wed, 2 May 2001 15:09:40 +0200 + +proftpd (1.2.1-5) unstable; urgency=low + + * Include German debconf templates. (Closes: #93770, #93989) + * Redirect update-inetd stdout and stdin to /dev/tty. + (Closes: #93152) + * Include ftpusers(5) manual page, originally from the ftpd package. + (Closes: #94348) + * Automatically generate a proftpd.conf(5) manual page from the file + doc/Configuration.html; add perl-base to build dependencies. + (Closes: #65354) + + -- Ivo Timmermans Thu, 19 Apr 2001 03:13:02 +0200 + +proftpd (1.2.1-4) unstable; urgency=low + + * Make proftpd-common and -doc replace proftpd. (Closes: #93230) + * Don't edit /etc/init.d/proftpd from postinst, as this is already + handled correctly with a grep. (Closes: #93331) + * Split proftpd-sql into proftpd-mysql and proftpd-pgsql. This is ugly, + but necessary. (Closes: #72347, #93150) + * proftpd-ldap no longer conflicts with itself. + * All the configure scripts use the same config.cache file. + + -- Ivo Timmermans Mon, 9 Apr 2001 02:34:26 +0200 + +proftpd (1.2.1-3) unstable; urgency=low + + * `Let's split up' -- Created a separate package for SQL authentication, + drop mod_sql from the standard package. + * Created a separate package with mod_ldap for LDAP authentication + (untested!). (Closes: #60458) + * Check md5sum of /etc/proftpd.conf or ask user before asking questions + that mean we have to edit the file. (Closes: #90673) + * Needs debhelper 3.0 or later. + * Include Brazilian, Dutch and Spanish debconf templates. + (Closes: #92143, #92318) + * Move all debconf related stuff out of postinst into config. This + makes update-inetd work correctly if it needs to ask something. + (Closes: #91931, #91987; addresses #90676) + * Also edit the ServerType directive in /etc/proftpd.conf when switching + to/from inetd mode. (Closes: #91931, #91987) + * Use /etc/pam.d/proftpd (fix typo). (Closes: #91745) + * Drop manual.uue from the source, delete sharutils from build depends. + * Remove the contents from /var/run/proftpd in postrm and postinst. + (Closes: #90675, #91262) + + -- Ivo Timmermans Sat, 24 Mar 2001 23:32:58 +0100 + +proftpd (1.2.1-2) unstable; urgency=low + + * Added postgresql-dev and sharutils to the build dependencies. + (Closes: #90650) + * Run proftpd as root from inetd. proftpd switches to the user/group + that is given in the configuration file after startup anyway. + (Closes: #90643, #90645) + * Set priority to optional. + * In cron.monthly, test for ftpstats in the right directory + (/usr/sbin). (Closes: #90669) + + -- Ivo Timmermans Thu, 22 Mar 2001 18:21:46 +0100 + +proftpd (1.2.1-1) unstable; urgency=low + + * New upstream release. (Closes: #49742, #60188, #62589, #64926, + Closes: #66784, #66785, #68848, #74153, #74545, #74758, #77701, + Closes: #76453, #78922, #80220, #81757, #82921, #83822, #85561, + Closes: #86175, #86855) + * New maintainer. (Closes: #66783, #67343, #68356, #72841, #75487, + Closes: #76258, #85259, #85589, #85710, #85724, #85940, #86011, + Closes: #86519, #87194, #90299) + * Send savelog output from cron.monthly to /dev/null. + (Closes: #72894, #88150) + * Applied a patch submitted by me that fixes segfaults due to using + a nonexistant postgres connection. (Closes: #76710) + * Fixed a small error. (Closes: #77701) + * Check for the presence of any SQL* directives in proftpd.conf on + upgrade, refer to README.mod_sql. (Closes: #77701) + * Added /etc/ftpusers file. (Closes: #79062, #87568) + * Changed modules/mod_pam.c to use /etc/pam.d/proftpd by default. + * Replace pam_unix_password by pam_unix and remove the shadow option + from /etc/pam.d/proftpd. (Closes: #81753) + * Ask whether proftpd should start from inetd or standalone. + (Closes: #67720) + * Test if ftpstats exists on the system before executing it in + cron.monthly. (Closes: #86773) + * postinst: Call cp in a separate shell to prevent ~ftp caching trouble. + (Closes: #44530) + * Made changes to contrib/mod_sql*.c to allow both mysql and postgres + modules to be linked in. + * Fixed small but obvious mistake in mod_sqlpw.c. (Closes: #76723) + * Apply fix from ftp://ftp.urbanrage.com/pub/c/mod_quota.c (by Dmitry + Alyabyev) for QuotaExempt. + * Added a line with PersistentPasswd to basic.conf, to please NIS and + LDAP users bugging about proftpd not finding their dynamic + users. (Closes: #62197) + * Set DenyFilter in basic.conf to prevent a DoS posted to bugtraq + (proftpd bug id 1066). (Closes: #89871) + * Move Umask to the blocks. + + -- Ivo Timmermans Wed, 7 Mar 2001 02:52:26 +0100 + +proftpd (1.2.0pre10-2.1) unstable; urgency=high + + * Non-Maintainer upload. + * Applied patch against string format buffer attack. + * Removed extra User/Group pair from basic.conf, server now runs as + user/group nobody by default. + * Added build dependencies on libmysqlclient-dev (instead of + mysql-dev), zlib1g-dev, debhelper and libpam-dev. + * In contrib/libcap/libcap.h: moved the capability.h include to just + below sys/types.h to fix horrible build errors. + + -- Ivo Timmermans Sat, 24 Feb 2001 02:32:02 +0100 + +proftpd (1.2.0pre10-2) frozen unstable; urgency=high + + * Use setproctitle(%s,foo) in main.c, lamagra@DIGIBEL.ORG advisory. + + -- Johnie Ingram Wed, 5 Jul 2000 18:50:07 -0500 + +proftpd (1.2.0pre10-1) unstable; urgency=low + + * New upstream version (CVS), closes: #59851, #58043, #58149, #41090. + * Included lines in default config which make files overwritable, + closes: #58258. + * Added patch from Gerhard Poul to create xferreport in cron.daily, + closes: #57935. + * Added patch from Christian Hammers so the init.d script reliably kills + the daemon even in inetd mode, and without using killall, closes: + #48487, #45853. + * Added directory umask to default config, closes: #42279. + * Included more documentation and READMEs. + * Disabled mod_pgsql and statically linked to library for mod_mysql, + closes: #51120, #50342. + * Enabled new module mod_quota. + + -- Johnie Ingram Tue, 7 Mar 2000 14:54:10 -0600 + +proftpd (1.2.0pre9-7) unstable; urgency=low + + * New upstream version (CVS), fixes TYPE L, closes: #58043. + + -- Johnie Ingram Wed, 16 Feb 2000 16:17:00 -0600 + +proftpd (1.2.0pre9-6) unstable; urgency=low + + * Uploaded for the correct dist (unstable). + + -- Johnie Ingram Mon, 20 Dec 1999 05:19:47 -0600 + +proftpd (1.2.0pre9-5) unstable; urgency=low + + * Included ftpstats manpage by Darren Benham (gecko), closes: #51867, + #39508. + * Changed xferstats to ftpstats in example crontab, closes: #50027. + * Slink version updated as of 2.1r4, closes: #33193, #36829, #34564. + * No longer asks debconf questions in the postinst, closes: #48353, + #46695. + * Included compile fixes from slink version, closes: #49170. + + -- Johnie Ingram Fri, 17 Dec 1999 21:01:02 -0600 + +proftpd (1.2.0pre9-4) stable; urgency=low + + * Included compile fixes from slink version. + * Changed xferstats to ftpstats in example crontab, closes: #50027. + + -- Johnie Ingram Mon, 8 Nov 1999 22:12:13 -0600 + +proftpd (1.2.0pre9-3) stable; urgency=high + + * Really really important security upload for slink. + + -- Johnie Ingram Mon, 8 Nov 1999 19:35:58 -0600 + +proftpd (1.2.0pre9-2) unstable; urgency=low + + * New upstream version, closes: #49170 (have_sendfile on m68k). + + -- Johnie Ingram Sat, 30 Oct 1999 20:51:00 -0500 + +proftpd (1.2.0pre9-1) unstable; urgency=low + + * New upstream version, closes: #43842, #38203, #48274, #46407, #40085, #33206. + * Included patch from Madarasz Gergely so it works on 2.0 kernels again + (adopted upstream), closes: #47138. + * Database client libraries are linked dynamically, closes: #47147. + * Split of netbase ends inetd.conf problems, closes: #17514. + * Starting in standalone mode removes ftp from inetd.conf, closes: #29734. + * Changed PAM service class to 'ftp'. + + -- Johnie Ingram Sat, 30 Oct 1999 20:44:31 -0500 + +proftpd (1.2.0pre7-3) unstable; urgency=low + + * New upstream version (pre8 beta). + * Added detection of slink (ancient non-FHS) system during build. + * Changed awkward name xferstats.proftpd to ftpstats. + * Debconfified install question. + * Updated SQL support. + + -- Johnie Ingram Mon, 4 Oct 1999 13:32:59 -0500 + +proftpd (1.2.0pre7-2) unstable; urgency=low + + * Turned off debugging feature, closes: #46309. + + -- Johnie Ingram Thu, 30 Sep 1999 09:49:00 -0500 + +proftpd (1.2.0pre7-1) unstable; urgency=low + + * New upstream version. + * Fixed pam configuration error, closes: #45775, #45769 + * Split mod_sql out of mod_mysql; added mod_pgsql. + + -- Johnie Ingram Mon, 27 Sep 1999 00:51:11 -0500 + +proftpd (1.2.0pre6-3) unstable; urgency=low + + * Updated mod_mysql module, updated CVS, added docs. + * Closing old bugs: + * Authentication (PAM) works, closes: #38229, #22894, #10360. + * Kills on upgrade, closes: #44531. + * Restarts on upgrade, closes: #38560, #33540, #33205. + * But only if ServerType standalone, closes: #32950. + * No killall to fail, closes: #38260. + + -- Johnie Ingram Sat, 18 Sep 1999 01:48:47 -0500 + +proftpd (1.2.0pre6-2) unstable; urgency=high + + * New upstream security update. + + -- Johnie Ingram Thu, 16 Sep 1999 13:14:32 -0500 + +proftpd (1.2.0pre6-1) unstable; urgency=low + + * New upstream version. + * Separate PAM configuration file; PersistentPasswd defaults to off to + allow NIS and PAM auth to work. + * Reactivated linuxprivs module, fixed upstream. + + -- Johnie Ingram Mon, 13 Sep 1999 02:50:19 -0500 + +proftpd (1.2.0pre5-1) unstable; urgency=low + + * New upstream version. + * ARM support (1.1.7r3-4 NMU, #29805), mod_mysql, and all debian patches + are now included upstream. + + -- Johnie Ingram Fri, 10 Sep 1999 03:58:40 -0500 + +proftpd (1.2.0pre4-3) unstable; urgency=low + + * Updated to Standards-Version 3.0.1.1 (FHS). + * Purging proftpd will stop the daemon, closes: #44531. + + -- Johnie Ingram Sun, 5 Sep 1999 09:50:48 -0500 + +proftpd (1.2.0pre4-2) unstable; urgency=high + + * More security fixes. + + -- Johnie Ingram Sun, 5 Sep 1999 09:38:01 -0500 + +proftpd (1.2.0pre4-1) unstable; urgency=high + + * New upstream version, fixing remote root exploit. + * Prepared with the PAM of glibc 2.1, closes: #36742, #38562. + * Note: the README.Solaris2.5x is included as humor, illustrating how + bad non-free OSes can be, closes: #36540. + * Fixed segfault possibility in mysql module. + * Updated to Standards-Version 3.0.1.0. + * Conflicts with and provides ftp-server, closes: #42407. + * Added dependency on libpam-modules. + + -- Johnie Ingram Mon, 30 Aug 1999 11:52:18 -0500 + +proftpd (1.2.0pre2-7) unstable; urgency=low + + * Added useful undocumented features to mod_ratio and mod_mysql. + + -- Johnie Ingram Mon, 3 May 1999 12:23:18 -0400 + +proftpd (1.2.0pre2-6) unstable; urgency=low + + * Activated PAM support, closes: #24115, #24524. + * Also closes: #35292, fixed in 1.20pre2-4. + + -- Johnie Ingram Fri, 23 Apr 1999 11:04:57 -0400 + +proftpd (1.2.0pre2-5) unstable; urgency=low + + * Changed default (undocumented) TimeoutStalled from 0 to 300. + + -- Johnie Ingram Sat, 10 Apr 1999 17:53:29 -0400 + +proftpd (1.2.0pre2-4) unstable; urgency=low + + * Conflicts with wu-ftpd-academ, closes: #35036. + * The postrm no longer dies if proftpd is not currently running, closes: + #35292. + * Updated mod_ratio to 2.0beta, added experimental and utterly + undocumented mod_mysql 0.1. + * Updated to Standards-Version 2.5.0.0. + + -- Johnie Ingram Thu, 8 Apr 1999 12:01:42 -0400 + +proftpd (1.2.0pre2-3) unstable; urgency=low (high for glibc 2.1) + + * New upstream version (1.2.0pre2) + * Fixes root priv problem with glibc 2.1 (mod_linuxprivs disabled), + closes: #34604. + * Fixes ls -lR again, closes: #34521, #33671, #33494 + * Returns 550 instead of 553 when retrieving dir, closes: #29498. + + -- Johnie Ingram Fri, 19 Mar 1999 10:29:43 -0500 + +proftpd (1.2.0pre2-2) frozen unstable; urgency=medium + + * Uploaded for frozen. Fixes ls -alR looping bug discovered by Jim + Pick, closes: #33494. + + -- Johnie Ingram Thu, 4 Mar 1999 08:11:14 -0500 + +proftpd (1.2.0pre2-1) unstable; urgency=medium + + * New upstream version, closes: #33494 (ls -alR looping bug discovered + by Jim Pick). + * Debugging turned off by default, closes: #33396. + + -- Johnie Ingram Wed, 17 Feb 1999 12:46:15 -0500 + +proftpd (1.2.0pre1-2) stable frozen unstable; urgency=high + + * Uploaded for stable by request of Wichert Akkerman. This fixes the + Palmetto bug discovered by netect.com. Upgrade. Now. + * Bug also fixed in slink and potato on Feb 4, closes: #32686, #33173. + + -- Johnie Ingram Wed, 10 Feb 1999 09:26:18 -0500 + +proftpd (1.2.0pre1-1) frozen unstable; urgency=medium + + * Include path exploit fix (closes: #32686, important). + * Rehashing (-HUP) now properly discards old LogFormat logs, and + recreates from the conf file, closes: #28641. + * Fixed division by 0 in xferstats.proftp, closes: #26946. + * No longer complains to stderr when capababilities (a 2.2.x feature) + aren't supported by the kernel, closes: #27861. + * Includes ARM support (1.1.7r3-4 NMU), closes: #29805. + * Module mod_ls fixed so ncftp -R works, closes: #29520. + * Removing package kills proftpd, closes: #30157, #32331, #32607. + * No longer slow (846.68 kB/s over ethernet), closes: #29396. + * Tweaked regex in /etc/init.d/proftpd. + * Daemon is not pointlessly stopped during upgrade: #28900. + * Updated documentation from upstream website. + + -- Johnie Ingram Thu, 4 Feb 1999 13:37:17 -0500 + +proftpd (1.1.7r3-4) unstable; urgency=low + + * Only queries about installing anonymous ftp once (#27873 and #25432). + + -- Johnie Ingram Mon, 12 Oct 1998 18:24:59 -0400 + +proftpd (1.1.7r3-3) unstable; urgency=low + + * Merged fix from Alpha release by Paul Slootman (#27823). + * Bugs fixed prior to this release, or non-bugs: #20130, #24675, #25158, + #25162. + + -- Johnie Ingram Mon, 12 Oct 1998 17:16:53 -0400 + +proftpd (1.1.7r3-2) unstable; urgency=low + + * New upstream version (CVS). + + -- Johnie Ingram Mon, 12 Oct 1998 12:53:14 -0400 + +proftpd (1.1.7r3-1.1) unstable; urgency=low + + * non-maintainer (binary-only) upload for Alpha + * invoke "make install" with some modified parameters, else it tries to + create directories outside the source directory. + + -- Paul Slootman Mon, 12 Oct 1998 21:07:12 +0200 + +proftpd (1.1.7r3-1) unstable; urgency=low + + * New upstream version (pristine). + + -- Johnie Ingram Sat, 10 Oct 1998 13:11:38 -0400 + +proftpd (1.1.7r2-2) unstable; urgency=low + + * New upstream version (CVS). + * Module linuxprivs is now compiled in for better security, on + architectures with kernel source newer than 2.1.103. + + -- Johnie Ingram Wed, 7 Oct 1998 10:55:38 -0400 + +proftpd (1.1.7r2-1) unstable; urgency=low, closes=26839 + + * New upstream version (pristine). + * Removal will not run init.d script if script doesn't exist (#26839). + + -- Johnie Ingram Tue, 6 Oct 1998 14:17:08 -0400 + +proftpd (1.1.7r1-1) unstable; urgency=low + + * New upstream version 1.1.7pl1 (CVS). + + -- Johnie Ingram Wed, 23 Sep 1998 11:29:21 -0400 + +proftpd (1.1.7pre1-1) unstable; urgency=low, closes=25168 16502 20868 26638 23485 25272 + + * New upstream version (CVS) includes ability to diable wtmp logging + (#16502) and a correct implementation of %L (#20868). + * Fixed xferstats conflict with hylafax-server (#26638). + * Removing proftpd now stops the running daemon (#25272). + * Bugs fixed prior to this release, by other packages, or non-bugs: + #25168, #23485. + * Updated to Standards-Version 2.4.1.4. + + -- Johnie Ingram Sat, 12 Sep 1998 17:16:53 -0400 + +proftpd (1.1.6r2-3) unstable; urgency=low + + * Ratio support is accepted by upstream author as a "contrib" module, + and now fully documented. + + -- Johnie Ingram Tue, 8 Sep 1998 22:30:45 -0400 + +proftpd (1.1.6r2-2) unstable; urgency=low, closes=26089 25133 + + * New upstream version (CVS), fixing symlink Bug (#26089) and general + slowness when used with 2.1.x kernels (#25133). + + -- Johnie Ingram Tue, 8 Sep 1998 14:54:59 -0400 + +proftpd (1.1.6r2-1) unstable; urgency=low, closes=26167 26305 23156 17488 + + * New upstream version (CVS). + * Modified for new debhelper behavior (#26167, #26305). + * Closes #17488, as ls -lat is now supported. + * Added xferstats manpage and program wu-ftpd-academ, as modified by + Holger Preiss (TU Dresden) (#23156). + + -- Johnie Ingram Tue, 8 Sep 1998 12:29:25 -0400 + +proftpd (1.1.6r-1.1) unstable; urgency=low + + * non-maintainer upload for Alpha + * don't use wildcards in debian/examples, as that fails with debhelper_1.1.9 + + -- Paul Slootman <paul@debian.org> Wed, 26 Aug 1998 22:37:29 +0200 + +proftpd (1.1.6r-1) unstable; urgency=low + + * New upstream version (CVS). + + -- Johnie Ingram Thu, 20 Aug 1998 10:51:04 -0400 + +proftpd (1.1.6pre4-1) unstable; urgency=low + + * New upstream version. + + -- Johnie Ingram Tue, 4 Aug 1998 12:25:14 -0400 + +proftpd (1.1.6pre2-1) unstable; urgency=low + + * New upstream version (fixes ident timeouts). + + -- Johnie Ingram Fri, 31 Jul 1998 11:51:32 -0400 + +proftpd (1.1.6pre1-1) unstable; urgency=low + + * New upstream version. + + -- Johnie Ingram Thu, 30 Jul 1998 14:29:27 -0400 + +proftpd (1.1.5r-3) unstable; urgency=low + + * New upstream version (1.1.5pl3). + + -- Johnie Ingram Mon, 20 Jul 1998 23:04:08 -0400 + +proftpd (1.1.5r-2) unstable; urgency=low + + * Tweaked syslog logging: CWD command, initial connect, etc. + * Added HostRatio directive. + + -- Johnie Ingram Tue, 14 Jul 1998 12:09:35 -0400 + +proftpd (1.1.5r-1) unstable; urgency=low + + * New upstream version. + * Removed extraneous debugging output from mod_ratio. + + -- Johnie Ingram Tue, 14 Jul 1998 11:00:58 -0400 + +proftpd (1.1.5pre3-2) unstable; urgency=low + + * Added custom-written ratio module. + + -- Johnie Ingram Tue, 14 Jul 1998 01:23:00 -0400 + +proftpd (1.1.5pre3-1) unstable; urgency=low + + * New upstream version. + + -- Johnie Ingram Sun, 12 Jul 1998 22:11:05 -0400 + +proftpd (1.1.5pre1-1) unstable; urgency=low, closes=23568 17765 18589 + + * New upstream version. + * Source code uses correct FSF address (#23568). + * Recursive directory listings (ls -lR) now supported (#17765). + * No longer possible to crash/spin server with huge dirs (#18589). + * Probably fixes 10360, 16502, 18855, 20130, 22894, 23485, and 23875, + but more testing is needed. + + -- Johnie Ingram Sun, 5 Jul 1998 18:24:45 -0400 + +proftpd (1.0.3-1) unstable; urgency=low, closes=22207 22437 14447 21808 + + * New upstream version. + * ProFTPD now uses port 20 for outgoing data instead of "wierd ports" + (#14447). + * Pre-install script will not fail if init.d script is missing (#22207). + * Closes Bug #22437 against ncftp, incorrect handling of multiline + responses, actually due to proftpd's incorrect multiline response. + * Includes example configurations (#21808). + + -- Johnie Ingram Fri, 22 May 1998 17:17:20 -0400 + +proftpd (1.0.2-1) unstable; urgency=low + + * New upstream version. + + -- Johnie Ingram Thu, 21 May 1998 15:21:06 -0400 + +proftpd (1.0.1-1) unstable; urgency=low + + * New (somewhat unreleased) upstrem version, fixing potential segfault + problem. + + -- Johnie Ingram Tue, 19 May 1998 13:48:26 -0400 + +proftpd (1.0.0unoff1-2) unstable; urgency=low + + * Real-time ratio levels are now logged for each user, at the higher + debugging levels (>= 3). + * Ratios are calculated at session start in addition to during chdir + commands. + + -- Johnie Ingram Sun, 19 Apr 1998 20:06:01 -0400 + +proftpd (1.0.0unoff1-1) unstable; urgency=low + + * Now includes current directories in status output. + * The ftpwho command now shows the entire command being executed. + * Remoted commands logged separate from malloc debugging: most at level + 3, STOR, RETR and CWD at level 2. + * Now logs the rough bandwidth of each transfer to syslog. + * Disabled NEED_PERSISTENT_PASSWORD so NIS works (#18144, #14916). + * Converted from debmake to debhelper packaging technology. + * Undocumented support for upload/download ratios added. + + -- Johnie Ingram Sat, 18 Apr 1998 23:24:15 -0400 + +proftpd (1.0.0-8) unstable; urgency=low + + * Priority is now extra. + + -- Johnie Ingram Wed, 18 Mar 1998 17:01:21 -0500 + +proftpd (1.0.0-7) unstable; urgency=low + + * Corrected spelling of proftpd in init.d message output. + + -- Johnie Ingram Sat, 14 Mar 1998 19:47:23 -0500 + +proftpd (1.0.0-6) unstable; urgency=low + + * Included force-reload target in help text returned by init.d script, + and switched to the unofficial official downcase style. + + -- Johnie Ingram Fri, 6 Feb 1998 23:43:19 -0500 + +proftpd (1.0.0-5) unstable; urgency=low + + * Corrected year and URL info in copyright file. + * Added reload and force-reload targets to init.d script. + * Updated to Standards-Version 2.4.0.0. + + -- Johnie Ingram Tue, 3 Feb 1998 15:05:51 -0500 + +proftpd (1.0.0-4) unstable; urgency=low, closes=17489 + + * Applied proftpd-1.0.0-chmod.patch, fixing behavior of the SITE CHMOD + command when octal numbers do not begin with 0. + * Default config now shows symlinks as symlinks (#17489). + + -- Johnie Ingram Tue, 3 Feb 1998 13:14:10 -0500 + +proftpd (1.0.0-3) unstable; urgency=low + + * Built with new version of debmake to correct md5sum error. + + -- Johnie Ingram Wed, 21 Jan 1998 13:33:39 -0500 + +proftpd (1.0.0-2) unstable; urgency=low, closes=14234 + + * Setting up anonymous FTP now sets up an example welcome.msg (#14234). + + -- Johnie Ingram Thu, 1 Jan 1998 14:02:50 -0500 + +proftpd (1.0.0-1) unstable; urgency=low, closes=12753 + + * New upstream version, fixes MDTM and NOOP commands. + * Closed #12753, as install now asks to set up anonymous FTP. + * Init script modified for better compliance with policy 2.3.0.1 section + 3.6. + + -- Johnie Ingram Wed, 31 Dec 1997 23:43:20 -0500 + +proftpd (0.99.0pl11-2) unstable; urgency=low + + * Fixed bug in preinst discovered on powerpc architecture -- the preinst + script could fail with some versions of bash. + + -- Johnie Ingram Tue, 9 Dec 1997 20:11:07 -0500 + +proftpd (0.99.0pl11-1) unstable; urgency=low + + * New upstream version. + + -- Johnie Ingram Tue, 11 Nov 1997 13:53:58 -0500 + +proftpd (0.99.0pl10-1) unstable; urgency=low, closes=14725 + + * New upstream version, supporting md5 passwords (#14725). + * Fixed bug where proftpd would not start automatically after upgrade if + anonymous FTP was enabled. + + -- Johnie Ingram Tue, 11 Nov 1997 12:36:52 -0500 + +proftpd (0.99.0pl9-2) unstable; urgency=low + + * Fixed errors in default proftpd.conf pointed out by Scott K. Ellis. + * Configuration script no longer asks if anonymous FTP should be + enabled, if anonymous FTP is enabled. + * Closed #10360, as proftpd now works correctly on both shadow and + non-shadow systems. + + -- Johnie Ingram Wed, 29 Oct 1997 14:54:31 -0500 + +proftpd (0.99.0pl9-1) unstable; urgency=low + + * New upstream version. + * Features support for the SIZE command (#13963). + + -- Johnie Ingram Wed, 29 Oct 1997 14:05:12 -0500 + +proftpd (0.99.0pl8-1) unstable; urgency=low + + * New upstream version. + * Includes support for the MDTM command used by the ftp method of dpkg + (#13959). + * Added code from Christoph Lameter to set up anonymous ftp (#13334). + * Removed patch to fix non-shadow support, as this feature has been + added to the configuration script. + * Added SHELL=/bin/bash to debian rules. + * Updated to Standards-Version 2.3.0.0 and debmake 3.4.2.. + + -- Johnie Ingram Mon, 20 Oct 1997 16:11:05 -0400 + +proftpd (0.99.0pl7-1) unstable; urgency=medium + + * New upstream version. + * Fixes wtmp corruption program (#12013, #12483). + * Added patch to fix non-shadow support. + + -- Johnie Ingram Wed, 24 Sep 1997 14:10:51 -0400 + +proftpd (0.99.0pl6-5) unstable; urgency=low + + * Tweaked packaging for better multi-architecture support. + + -- Johnie Ingram Sun, 31 Aug 1997 00:38:31 -0400 + +proftpd (0.99.0pl6-4) unstable; urgency=low + + * Updated to Standards-Version 2.2.0.0 and debmake 3.3.11. + * Removed "Evil" code to auto-fetch HTML manual during package build + reported by James Troup (#11598). + * Switched to pristine upstream tar archive. + + -- Johnie Ingram Sat, 9 Aug 1997 14:59:24 -0400 + +proftpd (0.99.0pl6-3) unstable; urgency=low + + * Linked against libc6 again on Intel architecture. + * Fixed errors in default proftpd.conf pointed out by Rob Browning. + + -- Johnie Ingram Mon, 28 Jul 1997 04:26:05 -0400 + +proftpd (0.99.0pl6-2) unstable; urgency=low + + * Updated HTML manual, modifed build script to mirror automatically. + + -- Johnie Ingram Thu, 10 Jul 1997 11:14:33 -0400 + +proftpd (0.99.0pl6-1) unstable; urgency=low + + * New upstream version. + * Added complete HTML manual and FAQ to package. + * Updated to Standards-Version 2.1.3.3 and debmake 3.3.4. + + -- Johnie Ingram Tue, 8 Jul 1997 23:46:06 -0400 + +proftpd (0.99.0pl5-1) unstable; urgency=low + + * New upstream version. + * No longer unnecessarily edits /etc/inetd.conf during upgrades, + and /etc/init.d/proftpd script now automatically detects when proftpd + is being run out of inetd instead (Bug #10462). + * Closed Bug #10373. + + -- Johnie Ingram Wed, 11 Jun 1997 02:46:55 -0400 + +proftpd (0.99.0pl4-3) unstable; urgency=low + + * Built with libc5 (on i386 systems) in another attempt to fix Bug + #10373 (corruption of utmp and wtmp). + * Some tweaks to debian "clean" target. + + -- Johnie Ingram Sat, 7 Jun 1997 11:47:45 -0400 + +proftpd (0.99.0pl4-2) unstable; urgency=low + + * Added TODO file and upstream changelog to package. + * Temporarily disabled wtmp logging since this corrupts the log on + libc5/libc6 systems (Bug #10373). + + -- Johnie Ingram Thu, 5 Jun 1997 20:14:17 -0400 + +proftpd (0.99.0pl4-1) unstable; urgency=low + + * New upstream version. + + -- Johnie Ingram Thu, 5 Jun 1997 13:28:13 -0400 + +proftpd (0.99.0pl3-2) unstable; urgency=low + + * Added patch from author to fix premature termination of the control + connection during MPUT commands. + + -- Johnie Ingram Tue, 3 Jun 1997 15:59:42 -0400 + +proftpd (0.99.0pl3-1) unstable; urgency=low + + * Initial Release. + * Contains two additional patches from the author to fix compilation on + libc6, and to log the full pathname in the xferlog. + + -- Johnie Ingram Tue, 3 Jun 1997 09:41:41 -0400 + +