{"id":136,"date":"2009-01-27T16:12:12","date_gmt":"2009-01-27T15:12:12","guid":{"rendered":""},"modified":"2017-02-07T10:42:44","modified_gmt":"2017-02-07T09:42:44","slug":"freeradius-server-2-1-3","status":"publish","type":"post","link":"https:\/\/drfugazi.eu.org\/en\/freeradius-server-2-1-3\/","title":{"rendered":"(Polski) freeradius-server-2.1.3"},"content":{"rendered":"<p class=\"qtranxs-available-languages-message qtranxs-available-languages-message-en\">Sorry, this entry is only available in <a href=\"https:\/\/drfugazi.eu.org\/pl\/wp-json\/wp\/v2\/posts\/136\" class=\"qtranxs-available-language-link qtranxs-available-language-link-pl\" title=\"Polski\">Polish<\/a>. For the sake of viewer convenience, the content is shown below in the alternative language. You may click the link to switch the active language.<\/p><p><\/p>\n<p>Og\u00f3lnie rzecz bior\u0105c mo\u017cna napisa\u0107, \u017ce <b><a href=\"http:\/\/freeradius.org\/\" target=\"_blank\">freeradius-server-2.1.3<\/a><\/b>, kt\u00f3ry pono\u0107 jest najpopularniejszym serwerem RADIUS na \u015bwiecie, nie jest zbyt dobrze przystosowany do kompilacji na systemie Solaris 10. Wprawdzie skrypt <i>&#8216;configure&#8217;<\/i> niby sprawdza co trzeba i przechodzi bez wi\u0119kszych bole\u015bci, to jednak na etapie kompilacji\/linkowania pojawiaj\u0105 si\u0119 problemy. Pierwszy kt\u00f3ry napotka\u0142em, to taki, \u017ce Solarisowy <i>&#8216;dmake&#8217;<\/i> (o standardowym <i>\/usr\/ccs\/bin\/make<\/i> nawet nie wspominam) tutaj nie zadzia\u0142a, nale\u017cy wi\u0119c u\u017cy\u0107 GNU make (<i>gmake<\/i>). Nast\u0119pny problem si\u0119 pojawia przy kompilacji modu\u0142u <b>rlm_ldap<\/b> s\u0142u\u017c\u0105cego do uwierzytelniania\/autoryzacji w katalogu LDAP. Nie wiedzie\u0107 czemu, nie bierze on pod uwag\u0119 flag wy\u017cszego poziomu i nie potrafi odnale\u017a\u0107 \u015bcie\u017cek do plik\u00f3w nag\u0142\u00f3wkowych i bibliotek LDAPa, co skutkuje b\u0142\u0119dami w stylu:<\/p>\n<p><!--break--><\/p>\n<pre>\r\nundefined symbol: LDAP_OPT_X_TLS_HARD\r\nundefined symbol: LDAP_OPT_X_TLS\r\n<\/pre>\n<p>itd. Wida\u0107 wi\u0119c, \u017ce brakuje mu bibliotek z LDAPa. Jako, \u017ce u mnie s\u0105 one w <code>\/usr\/local\/openldap\/lib<\/code> to oczywi\u015bcie dopisa\u0142em je do LDFLAGS, oraz do opcji kompilacji:<\/p>\n<pre>\r\n        --with-rlm-ldap-includes=\"\/usr\/local\/openldap\/include\" \\\r\n        --with-rlm-ldap-libraries=\"\/usr\/local\/openldap\/lib\" \\\r\n<\/pre>\n<p>ale jak zajrzymy do <code>src\/modules\/rlm_ldap\/Makefile<\/code> to nie wida\u0107 aby je tam do\u0142o\u017cy\u0142.<br \/>\nPoszukiwanie w google zwr\u00f3ci\u0142o pewien w\u0105tek, gdzie problem jest &#8216;jako\u015b&#8217; rozwi\u0105zany:<br \/>\n<a href=\"http:\/\/osdir.com\/ml\/freeradius.user\/2003-02\/msg00670.html\" target=\"_blank\">http:\/\/osdir.com\/ml\/freeradius.user\/2003-02\/msg00670.html<\/a><br \/>\nale takie rozwi\u0105zanie mnie nie usatysfakcjonowa\u0142o, postanowi\u0142em wi\u0119c zajrze\u0107 do \u017ar\u00f3de\u0142, a konkretnie do pliku <code>src\/modules\/rlm_ldap\/Makefile.in<\/code> i spowodowa\u0107 aby moje flagi zosta\u0142y dopisane do <code>src\/modules\/rlm_ldap\/Makefile<\/code> na etapie konfiguracji. Jako \u017ce \u017cadne studia informatyczne nie nauczy\u0142y mnie konstrukcji tych plik\u00f3w &#8211; nad czym ubolewam w takich momentach &#8211; to musia\u0142em oprze\u0107 si\u0119 na intuicji i do\u015bwiadczeniu i zmodyfikowa\u0107 plik po swojemu. Dopisa\u0142em wi\u0119c zmienne <code>$(CPPFLAGS)<\/code> i <code>$(LDFLAGS)<\/code> do odpowiednich linii.<br \/>\nZatem te linie w pliku <code>src\/modules\/rlm_ldap\/Makefile.in<\/code> przed modyfikacj\u0105 wygl\u0105da\u0142y tak:<\/p>\n<pre>\r\nTARGET     = @targetname@\r\nSRCS       = rlm_ldap.c @edir@\r\nHEADERS    =\r\nRLM_CFLAGS = @ldap_cflags@\r\nRLM_LIBS   = @ldap_ldflags@\r\n<\/pre>\n<p>po modyfikacji:<\/p>\n<pre>\r\nTARGET     = @targetname@\r\nSRCS       = rlm_ldap.c @edir@\r\nHEADERS    =\r\nRLM_CFLAGS = $(CPPFLAGS) @ldap_cflags@\r\nRLM_LIBS   = $(LDFLAGS) @ldap_ldflags@\r\n<\/pre>\n<p>Pewnie mo\u017cna to zrobi\u0107 lepiej i sprytniej, ale generalnie takie rozwi\u0105zanie dzia\u0142a i jest satysfakcjonuj\u0105ce, bo mo\u017cna \u0142atwo wytworzy\u0107 patcha na przysz\u0142o\u015b\u0107 (patrz za\u0142\u0105cznik).<\/p>\n<p>Ale to jeszcze nie koniec przyg\u00f3d z kompilacj\u0105 serwera FreeRADIUS. Nast\u0119pny problem pojawi\u0142 si\u0119 przy libtoolu, gdy\u017c ten ze \u017ar\u00f3de\u0142 freeradiusa wcale nie chce dzia\u0142a\u0107, a m\u00f3j systemowy nie potrafi\u0142 sobie znale\u017a\u0107 wszystkich potrzebnych plik\u00f3w nag\u0142\u00f3wkowych. Spraw\u0119 rozwi\u0105za\u0142o dodanie opcji &#8220;-I\/usr\/local\/include&#8221; do <code>CFLAGS<\/code> (zwykle dodaj\u0119 tylko do <code>CPPFLAGS<\/code>).<\/p>\n<p>No i ju\u017c ostatnia przeszkoda, kt\u00f3r\u0105 napotka\u0142em to niezdefiniowany symbol SUN_LEN, b\u0142\u0105d wygl\u0105da\u0142 mniej wi\u0119cej tak:<\/p>\n<pre>\r\nUndefined                       first referenced\r\n symbol                             in file\r\nSUN_LEN                             .libs\/listen.o\r\n<\/pre>\n<p>ale i na to znalaz\u0142em remedium wykorzystuj\u0105c m.in. google:<br \/>\n<a href=\"http:\/\/lists.cistron.nl\/pipermail\/freeradius-users\/2008-December\/msg00350.html\" target=\"_blank\">http:\/\/lists.cistron.nl\/pipermail\/freeradius-users\/2008-December\/msg00350.html<\/a><br \/>\nzgodnie z zaleceniem zdefiniowa\u0142em wi\u0119c w pliku <code>src\/include\/radiusd.h<\/code><\/p>\n<pre>#define SUN_LEN(su)  (sizeof(*(su)) - sizeof((su)->sun_path) + strlen((su)->sun_path))<\/pre>\n<p>i przekompilowa\u0142em jeszcze raz, tym razem ju\u017c bez b\u0142\u0119d\u00f3w. Zachowa\u0142em wi\u0119c moj\u0105 poprawion\u0105 wersj\u0119 \u017ar\u00f3de\u0142, rozpakowa\u0142em ponownie oryginalne \u017ar\u00f3d\u0142a i wytworzy\u0142em diffa, kt\u00f3ry jest w za\u0142\u0105czniku. Aby go na\u0142o\u017cy\u0107 trzeba by\u0107 w katalogu nadrz\u0119dnym dla \u017ar\u00f3de\u0142 freeradiusa i u\u017cy\u0107 polecenia:<br \/>\n<b><i><code>$ patch -u -p0 < freeradius-server-2.1.3-s10-patch-by-drfugazi.diff<\/code><\/i><\/b><br \/>\nNa przyk\u0142ad:<\/p>\n<pre>\r\nuser@server:\/src\/freeradius $ ls -1\r\nfreeradius-server-2.1.3\r\nfreeradius-server-2.1.3-s10-patch-by-drfugazi.diff\r\nuser@server:\/src\/freeradius $ patch -u -p0 < freeradius-server-2.1.3-s10-patch-by-drfugazi.diff\r\n<\/pre>\n<p>Oczywi\u015bcie polecam u\u017cycie GNU patch (<i>gpatch<\/i>) i najpierw sprawdzenie co zrobi na sucho, czyli do\u0142o\u017cy\u0107 opcje: <code>--dry-run --verbose<\/code>.<br \/>\nDo\u0142\u0105czam r\u00f3wnie\u017c skrypt, kt\u00f3rego u\u017cy\u0142em do kompilacji serwera freeradius (<i>drf_freeradius-2.1.3_conf<\/i>).<br \/>\nPowodzenia !<\/p>\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>Sorry, this entry is only available in Polish. For the sake of viewer convenience, the content is shown below in the alternative language. You may click the link to switch the active language. Og\u00f3lnie&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_newsletter_tier_id":0,"footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[108],"tags":[14,13],"jetpack_publicize_connections":[],"acf":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p7M9Tz-2c","jetpack-related-posts":[{"id":166,"url":"https:\/\/drfugazi.eu.org\/en\/gnarwl-35\/","url_meta":{"origin":136,"position":0},"title":"gnarwl-3.5","author":"drfugazi","date":"Thursday February 19th, 2009","format":false,"excerpt":"GNARWL jest autoresponderem dzia\u0142aj\u0105cym po stronie serwera pocztowego, jest to odpowiednik programu Vacation wzbogacony m. in. o wsp\u00f3\u0142prac\u0119 z katalogiem LDAP. Wi\u0119cej informacji o programie oraz jego zastosowaniu mo\u017cna znale\u017a\u0107 na stronie projektu: http:\/\/www.onyxbits.de\/gnarwl. Ja nie b\u0119d\u0119 si\u0119 nad tym rozwodzi\u0142, skupi\u0119 si\u0119 na kompilacji i instalacji tego oprogramowania pod\u2026","rel":"","context":"In \"Compilation\"","block_context":{"text":"Compilation","link":"https:\/\/drfugazi.eu.org\/en\/tag\/kompilacja\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":249,"url":"https:\/\/drfugazi.eu.org\/en\/","url_meta":{"origin":136,"position":1},"title":"openssl-1.0.0d","author":"drfugazi","date":"Wednesday May 18th, 2011","format":false,"excerpt":"Troch\u0119 o OpenSSL i opis kompilacji wersji 0.9.8 opisywa\u0142em ju\u017c wcze\u015bniej, nie b\u0119d\u0119 wi\u0119c tego powiela\u0142. Tutaj jest opis konfiguracji i kompilacji wersji 1.0.0d, przy u\u017cyciu skryptu, kt\u00f3ry znajduje si\u0119 w za\u0142\u0105czeniu. Nale\u017cy u\u017cy\u0107 GNU Make (gmake), bo pr\u00f3ba kompilacji dmake w tych nowszych wersjach mo\u017ce sko\u0144czy\u0107 si\u0119 b\u0142\u0119dem.","rel":"","context":"In \"Compilation\"","block_context":{"text":"Compilation","link":"https:\/\/drfugazi.eu.org\/en\/tag\/kompilacja\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":243,"url":"https:\/\/drfugazi.eu.org\/en\/","url_meta":{"origin":136,"position":2},"title":"tar-1.26","author":"drfugazi","date":"Monday May 16th, 2011","format":false,"excerpt":"Solarisowy tar ma troch\u0119 brak\u00f3w w stosunku do programu GNU Tar. Na przyk\u0142ad nie rozpoznaje skompresowanych archiw\u00f3w. Warto wi\u0119c zainstalowa\u0107 jego odpowiednika GNU. Ja dla rozr\u00f3\u017cnienia dodaj\u0119 do GNU Tar przedrostek 'g' (opcja --program-prefix=g przy kompilacji). Konfiguracja i kompilacja z u\u017cyciem skryptu (w za\u0142\u0105czeniu):","rel":"","context":"In \"Compilation\"","block_context":{"text":"Compilation","link":"https:\/\/drfugazi.eu.org\/en\/tag\/kompilacja\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":146,"url":"https:\/\/drfugazi.eu.org\/en\/groff-1201\/","url_meta":{"origin":136,"position":3},"title":"groff-1.20.1","author":"drfugazi","date":"Thursday February 19th, 2009","format":false,"excerpt":"Groff jest procesorem, kt\u00f3ry czyta niesformatowany tekst i polecenia formatuj\u0105ce i produkuje z nich sformatowany tekst, kt\u00f3ry wysy\u0142a na urz\u0105dzenie wyj\u015bciowe. Jest to wersja GNU programu troff (groff = GNU Troff). Wi\u0119cej informacji mo\u017cna znale\u017a\u0107 na stronie projektu: http:\/\/directory.fsf.org\/project\/groff\/","rel":"","context":"In \"Compilation\"","block_context":{"text":"Compilation","link":"https:\/\/drfugazi.eu.org\/en\/tag\/kompilacja\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":156,"url":"https:\/\/drfugazi.eu.org\/en\/gdbm-183\/","url_meta":{"origin":136,"position":4},"title":"gdbm-1.8.3","author":"drfugazi","date":"Thursday February 19th, 2009","format":false,"excerpt":"GDBM jest zestawem algorytm\u00f3w bazodanowych, kt\u00f3re u\u017cywaj\u0105 rozszerzalnego haszowania (extensible hashing). Algorytmy dzia\u0142aj\u0105 podobnie jak algorytm UNIX dbm. Wi\u0119cej na stronie projektu: http:\/\/directory.fsf.org\/project\/gdbm\/ \u0179r\u00f3d\u0142a do kompilacji mo\u017cna znale\u017a\u0107 pod adresem: http:\/\/ftp.gnu.org\/gnu\/gdbm\/. Kompilacja pod Solarisem 10 z Sun Studio CC nie sprawia problem\u00f3w. Polecam jednak u\u017cycie GNU make (gmake). M\u00f3j skrypt\u2026","rel":"","context":"In \"GDBM\"","block_context":{"text":"GDBM","link":"https:\/\/drfugazi.eu.org\/en\/tag\/gdbm\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":253,"url":"https:\/\/drfugazi.eu.org\/en\/","url_meta":{"origin":136,"position":5},"title":"gmp-5.0.2","author":"drfugazi","date":"Wednesday May 18th, 2011","format":false,"excerpt":"GNU MP, lub inaczej GMP jest darmow\u0105 bibliotek\u0105 do wykowania arytmetyki precyzyjnej operuj\u0105cej na oznaczonych liczbach ca\u0142kowitych, wymiernych i zmiennoprzecinkowych. Nie ma praktycznego limitu precyzji w zastosowaniu GMP, poza tym narzuconym przez dost\u0119pn\u0105 pami\u0119\u0107 maszyny na kt\u00f3rej jest uruchomiona. GNU MP posiada bogaty zestaw funkcji, kt\u00f3re posiadaj\u0105 usystematyzowany interfejs.","rel":"","context":"In \"Compilation\"","block_context":{"text":"Compilation","link":"https:\/\/drfugazi.eu.org\/en\/tag\/kompilacja\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/drfugazi.eu.org\/en\/wp-json\/wp\/v2\/posts\/136"}],"collection":[{"href":"https:\/\/drfugazi.eu.org\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/drfugazi.eu.org\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/drfugazi.eu.org\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/drfugazi.eu.org\/en\/wp-json\/wp\/v2\/comments?post=136"}],"version-history":[{"count":1,"href":"https:\/\/drfugazi.eu.org\/en\/wp-json\/wp\/v2\/posts\/136\/revisions"}],"predecessor-version":[{"id":697,"href":"https:\/\/drfugazi.eu.org\/en\/wp-json\/wp\/v2\/posts\/136\/revisions\/697"}],"wp:attachment":[{"href":"https:\/\/drfugazi.eu.org\/en\/wp-json\/wp\/v2\/media?parent=136"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/drfugazi.eu.org\/en\/wp-json\/wp\/v2\/categories?post=136"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/drfugazi.eu.org\/en\/wp-json\/wp\/v2\/tags?post=136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}