Summary: Advanced, easy to use, asynchronous-capable DNS client library Summary(pl): Zaawansowana, prosta w u¿yciu, asynchroniczna biblioteka kliencka DNS Summary(ru): ëÌÉÅÎÔÓËÁÑ ÂÉÂÌÉÏÔÅËÁ DNS Ó ×ÏÚÍÏÖÎÏÓÔØÀ ÁÓÉÎÈÒÏÎÎÙÈ ÚÁÐÒÏÓÏ× Summary(uk): ë̦¤ÎÔÓØËÁ ¦Â̦ÏÔÅËÁ DNS Ú ÍÏÖÌÉצÓÔÀ ÁÓÉÎÈÒÏÎÎÉÈ ÚÁÐÉÔ¦× Name: adns Version: 1.1 Release: 4 License: GPL v2+ Group: Libraries Source0: ftp://ftp.chiark.greenend.org.uk/users/ian/adns/%{name}-%{version}.tar.gz # Source0-md5: 891956e305acf5fc83b099333bf3ffd9 Patch0: %{name}-DESTDIR.patch Patch1: %{name}-ac_fix.patch Patch2: %{name}-gcc34.patch URL: http://www.chiark.greenend.org.uk/~ian/adns/ BuildRequires: autoconf BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %description adns is a resolver library for C (and C++) programs. In contrast with the existing interfaces, gethostbyname et al and libresolv, it has the following features: - It is reasonably easy to use for simple programs which just want to translate names to addresses, look up MX records, etc. - It can be used in an asynchronous, non-blocking, manner. Many queries can be handled simultaneously. - Responses are decoded automatically into a natural representation for a C program - there is no need to deal with DNS packet formats. - Sanity checking (eg, name syntax checking, reverse/forward correspondence, CNAME pointing to CNAME) is performed automatically. - Time-to-live, CNAME and other similar information is returned in an easy-to-use form, without getting in the way. - There is no global state in the library; resolver state is an opaque data structure which the client creates explicitly. A program can have several instances of the resolver. - Errors are reported to the application in a way that distinguishes the various causes of failure properly. - Understands conventional resolv.conf, but this can overridden by environment variables. - Flexibility. For example, the application can tell adns to: ignore environment variables (for setuid programs), disable sanity checks eg to return arbitrary data, override or ignore resolv.conf in favour of supplied configuration, etc. - Believed to be correct ! For example, will correctly back off to TCP in case of long replies or queries, or to other nameservers if several are available. It has sensible handling of bad responses etc. %description -l pl adns jest bibliotek± rozwi±zywania nazw dla programów w C (i C++). W przeciwieñstwie do pozosta³ych interfejsów - gethostbyname itd. oraz libresolv, ma nastêpuj±ce mo¿liwo¶ci: - Jest ³atwa w u¿yciu dla prostych programów, które maj± tylko t³umaczyæ nazwy na adresy, szukaæ rekordów MX itp. - Mo¿e byæ u¿ywana w sposób asynchroniczny, nieblokuj±cy; wiele zapytañ mo¿e byæ obs³ugiwanych jednocze¶nie. - Odpowiedzi s± dekodowane automatycznie do reprezentacji naturalnej dla programów w C - nie trzeba obs³ugiwaæ formatów pakietów DNS - Sprawdzanie poprawno¶ci (sk³adni, zgodno¶ci rekordów odwrotnych i prostych, CNAME wskazuj±cych na CNAME) jest automatyczne. - TTL, CNAME i podobne informacje s± zwracane w postaci ³atwej do wykorzystania - Nie ma globalnego stanu w bibliotece; stan resolvera jest struktur± danych tworzon± przez klienta. Program mo¿e trzymaæ wiele instancji resolvera. - B³êdy s± zg³aszane aplikacji w sposób rozró¿niaj±cy przyczyny. - Rozumie konwencjonalny plik resolv.conf, ale to mo¿e byæ zmienione przez zmienne ¶rodowiskowe. - Konfigurowalno¶æ. Na przyk³ad aplikacja mo¿e kazaæ adns: ignorowaæ zmienne ¶rodowiskowe (dla programów setuid), wy³±czyæ sprawdzanie poprawno¶ci, zignorowaæ resolv.conf na rzecz w³asnej konfiguracji. - Podobno jest poprawna! Na przyk³ad, prawid³owo prze³±cza siê na TCP w przypadku d³ugich zapytañ lub odpowiedzi, albo na inne serwery je¶li jest kilka dostêpnych. Ma rozs±dn± obs³ugê z³ych odpowiedzi. %description -l ru adns - ÜÔÏ ÂÉÂÌÉÏÔÅËÁ ÒÅÚÏÌ×ÅÒÁ ÄÌÑ ÐÒÏÇÒÁÍÍ ÎÁ C (É C++). ÷ ÏÔÌÉÞÉÅ ÏÔ ÓÕÝÅÓÔ×ÕÀÝÉÈ ÉÎÔÅÒÆÅÊÓÏ×, gethostbyname Ó ËÏÍÐÁÎÉÅÊ É libresolv. ÏÎÁ ÉÍÅÅÔ ÓÌÅÄÕÀÝÉÅ ×ÏÚÍÏÖÎÏÓÔÉ: - äÏÓÔÁÔÏÞÎÏ ÌÅÇËÁÑ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ × ÐÒÏÓÔÙÈ ÐÒÏÇÒÁÍÍÁÈ, ËÏÔÏÒÙÍ ÎÕÖÎÏ ×ÓÅÇÏ ÌÉÛØ ÔÒÁÎÓÌÉÒÏ×ÁÔØ ÉÍÅÎÁ × ÁÄÒÅÓÁ, ÉÓËÁÔØ MX ÚÁÐÉÓÉ, É Ô.Ð. - íÏÖÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÁÓÉÎÈÒÏÎÎÙÍ, ÎÅÂÌÏËÉÒÕÀÝÉÍ ÓÐÏÓÏÂÏÍ. íÎÏÖÅÓÔ×Ï ÚÁÐÒÏÓÏ× ÍÏÖÅÔ ÏÂÒÁÂÁÔÙ×ÁÔØÓÑ ÏÄÎÏ×ÒÅÍÅÎÎÏ. - ïÔ×ÅÔÙ Á×ÔÏÍÁÔÉÞÅÓËÉ ÄÅËÏÄÉÒÕÀÔÓÑ × ÅÓÔÅÓÔ×ÅÅÎÏÅ ÄÌÑ C ÐÒÏÇÒÁÍÍ ÐÒÅÄÓÔÁ×ÌÅÎÉÅ - ÎÅÔ ÎÅÏÂÈÏÄÉÍÏÓÔÉ ÉÍÅÔØ ÄÅÌÏ Ó ÆÏÒÍÁÔÁÍÉ DNS ÐÁËÅÔÁ. - ðÒÏ×ÅÒËÁ ÎÁ ËÏÒÒÅËÔÎÏÓÔØ (ÎÁÐÒÉÍÅÒ, ÐÒÏ×ÅÒËÁ ÓÉÎÔÁËÓÉÞÅÓËÏÊ ÄÏÐÕÓÔÉÍÏÓÔÉ ÉÍÅÎ, ÓÏÏÔ×ÅÔÓ×ÉÅ ÏÂÒÁÔÎÏÇÏ É ÐÒÑÍÏÇÏ ÒÅÚÏÌ×ÉÎÇÁ, CNAME, ÕËÁÚÙ×ÁÀÝÉÊ ÎÁ CNAME) ×ÙÐÏÌÎÑÅÔÓÑ Á×ÔÏÍÁÔÉÞÅÓËÉ. - ÷ÒÅÍÑ ÖÉÚÎÉ ÚÁÐÉÓÉ (TTL), CNAME É ÄÒÕÇÁÑ ÐÏÄÏÂÎÁÑ ÉÎÆÏÒÍÁÃÉÑ ×ÙÄÁÅÔÓÑ × ÌÅÇËÏÊ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÆÏÒÍÅ. - ïÛÉÂËÉ ÓÏÏÂÝÁÀÔÓÑ ÐÒÉÌÏÖÅÎÉÀ ÔÁËÉÍ ÏÂÒÁÚÏÍ, ÞÔÏ ÒÁÚÎÙÅ ÐÒÉÞÉÎÙ ÉÈ ×ÏÚÎÉËÎÏ×ÅÎÉÑ ÒÁÚÌÉÞÁÀÔÓÑ ÐÒÁ×ÉÌØÎÏ. - ðÏÎÉÍÁÅÔ ÏÂÙÞÎÙÊ resolv.conf, ÎÏ ÜÔÏ ÍÏÖÅÔ ÂÙÔØ ÉÚÍÅÎÅÎÏ ÐÅÒÅÍÅÎÎÙÍÉ ÓÒÅÄÙ. - çÉÂËÏÓÔØ. îÁÐÒÉÍÅÒ, ÐÒÏÇÒÁÍÍÁ ÍÏÖÅÔ ÚÁËÁÚÁÔØ adns: ÉÇÎÏÒÉÒÏ×ÁÔØ ÐÅÒÅÍÅÎÎÙÅ ÓÒÅÄÙ (ÄÌÑ setuid ÐÒÏÇÒÁÍÍ), ÏÔËÌÀÞÉÔØ ÐÒÏ×ÅÒËÉ ËÏÒÒÅËÔÎÏÓÔÉ ÄÌÑ ×ÏÚ×ÒÁÔÁ ÄÁÎÎÙÈ ÔÁËÉÍÉ, ËÁË ÏÎÉ ÅÓÔØ, ÉÇÎÏÒÉÒÏ×ÁÔØ resolv.conf. ÐÏÌØÚÕÀÓØ ÓÏÂÓÔ×ÅÎÎÏÊ ËÏÎÆÉÇÕÒÁÃÉÅÊ É Ô.Ð. - óÞÉÔÁÅÔÓÑ ËÏÒÒÅËÔÎÏÊ! îÁÐÒÉÍÅÒ, ËÏÒÒÅËÔÎÏ ÐÅÒÅËÌÀÞÁÅÔÓÑ ÎÁ TCP × ÓÌÕÞÁÅ ÄÌÉÎÎÙÈ ÏÔ×ÅÔÏ× ÉÌÉ ÚÁÐÒÏÓÏ×, ÉÌÉ ÎÁ ÄÒÕÇÉÅ ÓÅÒ×ÅÒÁ ÉÍÅÎ, ÅÓÌÉ ÄÏÓÔÕÐÎÏ ÎÅÓËÏÌØËÏ. òÁÚÂÉÒÁÅÔÓÑ Ó ÎÅËÏÒÅËÔÎÙÍÉ ÏÔ×ÅÔÁÍÉ É Ô.Ä. %description -l uk adns - ʦÂ̦ÏÔÅËÁ ÒÅÚÏÌ×ÅÒÁ ÄÌÑ ÐÒÏÇÒÁÍ ÎÁ C (ÔÁ C++). îÁ צÄͦÎÕ ×¦Ä ¦ÓÎÕÀÞÉÈ ¦ÎÔÅÒÆÅÊÓ¦×, gethostbyname Ú ËÏÍÐÁΦ¤À ÔÁ libresolv, ×ÏÎÁ ÍÁ¤ ÎÁÓÔÕÐΦ ÍÏÖÌÉ×ÏÓÔ¦: - äÏÓÉÔØ ÌÅÇËÁ ÄÌÑ ×ÉËÏÒÉÓÔÁÎÎÑ × ÐÒÏÓÔÉÈ ÐÒÏÇÒÁÍÁÈ, Ñ˦ ÌÉÛÅ ÔÒÁÎÓÌÀÀÔØ ¦ÍÅÎÁ × ÁÄÒÅÓÉ, ÛÕËÁÀÔØ MX ÚÁÐÉÓÉ, ÔÏÝÏ. - íÏÖÅ ×ÉËÏÒÉÓÔÏ×Õ×ÁÔÉÓØ ÁÓÉÎÈÒÏÎÎÉÍ, ÎÅÂÌÏËÕÀÞÉÍ ÓÐÏÓÏÂÏÍ. âÁÇÁÔÏ ÚÁÐÉÔ¦× ÍÏÖÕÔØ ÏÂÒÏÂÌÑÔÉÓÑ ÏÄÎÏÞÁÓÎÏ. - ÷¦ÄÐÏצĦ Á×ÔÏÍÁÔÉÞÎÏ ÄÅËÏÄÕÀÔØÓÑ × ÐÒÉÒÏÄΤ ÄÌÑ C ÐÒÏÇÒÁÍ ×¦ÄÏÂÒÁÖÅÎÎÑ - ÎÅÍÁ¤ ÎÅÏÂȦÄÎÏÓÔ¦ ÍÁÔÉ ÓÐÒÁ×Õ Ú ÆÏÒÍÁÔÁÍÉ DNS ÐÁËÅÔÕ. - ðÅÒÅצÒËÁ ÎÁ ËÏÒÅËÔΦÓÔØ (ÎÁÐÒÉËÌÁÄ, ÐÅÒÅצÒËÁ ÓÉÎÔÁËÓÉÞÎϧ ÄÏÐÕÓÔÉÍÏÓÔ¦ ¦ÍÅΦ, צÄÐÏצÄΦÓÔØ Ú×ÏÒÏÔÎØÏÇÏ ÔÁ ÐÒÑÍÏÇÏ ÒÅÚÏÌצÎÇÕ, CNAME, ÝÏ ×ËÁÚÕ¤ ÎÁ CNAME) ×ÉËÏÎÕ¤ÔØÓÑ Á×ÔÏÍÁÔÉÞÎÏ. - þÁÓ ÖÉÔÔÑ ÚÁÐÉÓÕ (TTL), CNAME ÔÁ ¦ÎÛÁ ÐÏĦÂÎÁ ¦ÎÆÏÒÍÁÃ¦Ñ ×ÉÄÁ¤ÔØÓÑ × ÌÅÇË¦Ê ÄÌÑ ×ÉËÏÒÉÓÔÁÎÎÑ ÆÏÒͦ. - ðÏÍÉÌËÉ ÐÏצÄÏÍÌÑÀÔØÓÑ ÐÒÉËÌÁÄÎ¦Ê ÐÒÏÇÒÁͦ ÔÁËÉÍ ÞÉÎÏÍ, ÝÏ Ò¦ÚΦ ÐÒÉÞÉÎÉ §È ×ÉÎÉËÎÅÎÎÑ ÒÏÚÒ¦ÚÎÑÀÔØÓÑ ÐÒÁ×ÉÌØÎÏ. - òÏÚÕͦ¤ Ú×ÉÞÎÉÊ resolv.conf, ÁÌÅ ÃÅ ÍÏÖÅ ÂÕÔÉ ×¦ÄͦÎÅÎÏ ÚͦÎÎÉÍÉ ÓÅÒÅÄÏ×ÉÝÁ. - çÎÕÞ˦ÓÔØ. îÁÐÒÉËÌÁÄ, ÐÒÏÇÒÁÍÁ ÍÏÖÅ ÚÁÍÏ×ÉÔÉ adns: ¦ÇÎÏÒÕ×ÁÔÉ ÚͦÎΦ ÓÅÒÅÄÏ×ÉÝÁ (ÄÌÑ setuid ÐÒÏÇÒÁÍ), צÄËÌÀÞÉÔÉ ÐÅÒÅצÒËÉ ËÏÒÅËÔÎÏÓÔ¦ ÄÌÑ ÐÏ×ÅÒÎÅÎÎÑ ÄÁÎÉÈ ÔÁËÉÍÉ ÑË ×ÏÎÉ ¤, ¦ÇÎÏÒÕ×ÁÔÉ resolv.conf, ËÏÒÉÓÔÕÀÞÉÓØ ×ÌÁÓÎÏÀ ËÏÎƦÇÕÒÁæ¤À ÔÁ ¦Î. - ÷×ÁÖÁ¤ÔØÓÑ ËÏÒÅËÔÎÏÀ! îÁÐÒÉËÌÁÄ, ËÏÒÅËÔÎÏ ÐÅÒÅËÌÀÞÁ¤ÔØÓÑ ÎÁ TCP Õ ×ÉÐÁÄËÕ ÄÏ×ÇÉÈ ×¦ÄÐÏצÄÅÊ ÞÉ ÚÁÐÉÔ¦×, ÞÉ ÎÁ ¦ÎÛ¦ ÓÅÒ×ÅÒÉ ¦ÍÅÎ, ËÏÌÉ ÄÏÓÔÕÐÎÏ Ë¦ÌØËÁ. òÏÚÂÉÒÁ¤ÔØÓÑ Ú ÎÅËÏÒÅËÔÎÉÍÉ ×¦ÄÐÏצÄÑÍÉ ÔÁ ¦Î. %package devel Summary: Asynchronous-capable DNS client library - development files Summary(pl): Asynchroniczna biblioteka kliencka DNS - pliki dla programistów Summary(ru): æÁÊÌÙ ÄÌÑ ÒÁÚÒÁÂÏÔËÉ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÂÉÂÌÉÏÔÅËÉ adns Summary(uk): æÁÊÌÉ ÄÌÑ ÒÏÚÒÏÂËÉ Ú ×ÉËÏÒÉÓÔÁÎÎÑÍ Â¦Â̦ÏÔÅËÉ adns Group: Development/Libraries Requires: %{name} = %{version}-%{release} %description devel Asynchronous-capable DNS client library - development files. %description devel -l pl Asynchroniczna biblioteka kliencka DNS - pliki dla programistów. %description devel -l ru adns - ÜÔÏ ÂÉÂÌÉÏÔÅËÁ ÒÅÚÏÌ×ÅÒÁ ÄÌÑ ÐÒÏÇÒÁÍÍ ÎÁ C (É C++). üÔÏÔ ÐÁËÅÔ ÓÏÄÅÒÖÉÔ ÆÁÊÌÙ, ÎÅÏÂÈÏÄÉÍÙÅ ÄÌÑ ÒÁÚÒÁÂÏÔËÉ ÐÒÏÇÒÁÍÍ. %description devel -l uk adns - ʦÂ̦ÏÔÅËÁ ÒÅÚÏÌ×ÅÒÁ ÄÌÑ ÐÒÏÇÒÁÍ ÎÁ C (ÔÁ C++). ãÅÊ ÐÁËÅÔ Í¦ÓÔÉÔØ ÆÁÊÌÉ, ÎÅÏÂȦÄΦ ÄÌÑ ÒÏÚÒÏÂËÉ ÐÒÏÇÒÁÍ. %package static Summary: Asynchronous-capable DNS client library - static library Summary(pl): Asynchroniczna biblioteka kliencka DNS - wersja statyczna Summary(ru): óÔÁÔÉÞÅÓËÉÅ ÂÉÂÌÉÏÔÅËÉ ÄÌÑ ÒÁÚÒÁÂÏÔËÉ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÂÉÂÌÉÏÔÅËÉ adns Summary(uk): óÔÁÔÉÞΦ ¦Â̦ÏÔÅËÉ ÄÌÑ ÒÏÚÒÏÂËÉ Ú ×ÉËÏÒÉÓÔÁÎÎÑÍ Â¦Â̦ÏÔÅËÉ adns Group: Development/Libraries Requires: %{name}-devel = %{version}-%{release} %description static Asynchronous-capable DNS client library - static library. %description static -l pl Asynchroniczna biblioteka kliencka DNS - biblioteka statyczna. %description static -l ru adns - ÜÔÏ ÂÉÂÌÉÏÔÅËÁ ÒÅÚÏÌ×ÅÒÁ ÄÌÑ ÐÒÏÇÒÁÍÍ ÎÁ C (É C++). üÔÏÔ ÐÁËÅÔ ÓÏÄÅÒÖÉÔ ÓÔÁÔÉÞÅÓËÉÅ ÂÉÂÌÉÏÔÅËÉ ÄÌÑ ÒÁÚÒÁÂÏÔËÉ ÐÒÏÇÒÁÍÍ. %description static -l uk adns - ʦÂ̦ÏÔÅËÁ ÒÅÚÏÌ×ÅÒÁ ÄÌÑ ÐÒÏÇÒÁÍ ÎÁ C (ÔÁ C++). ãÅÊ ÐÁËÅÔ Í¦ÓÔÉÔØ ÓÔÁÔÉÞΦ ¦¦̦ÏÔÅËÉ ÄÌÑ ÒÏÚÒÏÂËÉ ÐÒÏÇÒÁÍ. %package progs Summary: Asynchronous-capable DNS client library - utility programs Summary(pl): Asynchroniczna biblioteka kliencka DNS - narzêdzia Group: Development/Libraries Requires: %{name} = %{version}-%{release} %description progs DNS utility programs: adns also comes with a number of utility programs for use from the command line and in scripts: - adnslogres is a much faster version of Apache's logresolv program, - adnsresfilter is a filter which copies its input to its output, replacing IP addresses by the corresponding names, without unduly delaying the output. For example, you can usefully pipe the output of netstat -n, tcpdump -ln, and the like, into it. - adnshost is a general-purpose DNS lookup utility which can be used easily in from the command line and from shell scripts to do simple lookups. In a more advanced mode it can be used as a general-purpose DNS helper program for scripting languages which can invoke and communicate with subprocesses. %description progs -l pl Narzêdzia DNS: adns przychodzi z paroma programami narzêdziowymi do u¿ytku z linii poleceñ lub w skryptach: - adnslogres to o wiele szybsza wersja programu logresolv z Apache - adnsresfilter to filtr kopiuj±cy wej¶cie na wyj¶cie zamieniaj±c adresy IP na nazwy, bez niepotrzebnych opó¼nieñ. Na przyk³ad mo¿esz na wej¶cie wpu¶ciæ wyj¶cie z netstat -n, tcpdump -ln itp. - adnshost to ogólnego przeznaczenia narzêdzie do odpytywania DNS, proste w u¿yciu z linii poleceñ i skryptów pow³oki. %prep %setup -q %patch0 -p1 %patch1 -p1 %patch2 -p1 %build # aclocal.m4 is only local, don't run aclocal %{__autoconf} %configure \ --enable-dynamic %{__make} %install rm -rf $RPM_BUILD_ROOT %{__make} install \ DESTDIR=$RPM_BUILD_ROOT ln -sf libadns.so.1.0 $RPM_BUILD_ROOT%{_libdir}/libadns.so %clean rm -fr $RPM_BUILD_ROOT %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %defattr(644,root,root,755) %doc README TODO changelog %attr(755,root,root) %{_libdir}/lib*.so.*.* %files devel %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/lib*.so %{_includedir}/* %files static %defattr(644,root,root,755) %{_libdir}/*.a %files progs %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/*