+ All Categories
Home > Documents > Linuxove´ noviny - Masaryk...

Linuxove´ noviny - Masaryk...

Date post: 16-Aug-2021
Category:
Upload: others
View: 5 times
Download: 0 times
Share this document with a friend

Click here to load reader

Transcript
Linuxové novinyPavel Jank ml., 12. cervna 1998
Pomalu ale jiste se blz ona doba, kdy skoly zej prazdno- tou, koupaliste jsou naopak nacpana az k prasknut a k to- mu to odporne horko. A navc si jeste Red Hat Software vypust novou verzi distribuce Red Hat. Jak to ma oby- cejny clovek sthat? Mus chodit na zkousky (ja jich mam osm), mus se take nekdy ukazat v praci, mus se take ne- kdy ukazat doma, a to uz nemluvm o tom, ze mus byt take se svoj prtelkyn (a jak rad). A jeste k tomu mus de- lat spoustu jinych vec (psat Linuxove noviny, nainstalovat si novy teTEX s novym pdfTEXem, napsat podporu obraz- ku ve formatu TIFF pro pdfTEX atd.). Ano, mate pravdu, prestanu si vylevat svoji dusi a zacneme hned od zacatku naplno.
V cervnovem csle Linuxovych novin najdete spoustu za- jmavych informac, pocnaje pravidelnymi rubrikami Mesc v comp.os.linux.announce, Co noveho na sunsite.unc.edu?, a konce vysledky souteze z minuleho csla Linuxovych no- vin v clanku Zasmali jsme se!.
Karel Zak a Miroslav Janis nas ve svych clancch seznam s programatorskymi editory Xwpe, Xfte, Grasp a Source Navigator.
Dan Ohnesorg (za spoluprace s Milanem Kerslagerem) vytvorili male HOWTO pro cten posty pomoc programu Pegasus Mail na Linuxu.
Vydavatelstv Computer Press vydalo novou knihu. Jme- nuje se Programovac jazyky GNU, a protoze jsme knihu dostali k dispozici, muzete si precst jej recenzi od Yenyi.
Chcete psat lokalizovane programy a nevte, jak na to? Zkuste si precst clanek autoru Michaela Mraky a Vladi Michla, treba vam pomuze.
Kolektiv redakce Linuxovych novin (nyn v poctu peti osob — Ondrej „Koala“ Vacha, Pavel Juran, Bohumil Cha- lupa, Hanus Adler a ja) Vam preje prjemne pocten a pr- jemne stravenou dovolenou s vasimi blzkymi. Nejen poc- taci ziv je clovek, pamatujte na to a bavte se (a uz se pro- sm nikdy nehadejte v konferencch, ktere ctu. . .).
Mesc v comp.os.linux.announce Pavel Jank ml., 1. cervna 1998
Tak jako kazdy mesc prinesla oznamen v konferenci comp.os.linux.announce spoustu novinek ze sveta operac- nho systemu Linux. Tento mesc byl navc poznamenan vystavou Linux Expo 98, a tak jsme si mohli precst spous- tu vyhodnych nabdek komercnch spolecnost. Naprklad spolecnost Red Hat Software Inc. zde nabzela posledn verzi sve distribuce — RedHat Linux 5.1 (kodove oznacen Manhattan).
Steve Emms ([email protected]) oznamil no- vou adresu pro sluzbu nazvanou Linux Links (1), ktera
Linuxove noviny pripravuje a vydava Ceske sdruzen uz
noviny shromazd’uje odkazy na WWW servery venujc se Linuxu. V soucasne dobe jich ma asi 1500.
Robert S. Maier ([email protected]) vytvoril novou verzi balku GNU plotting utilities (2).
Jean-Luc Fontaine zverejnil dals verzi sveho zajmaveho modularnho spreadsheetu (tabulkoveho procesoru) pod nazvem moodss-3.3. Najdete jej na adrese (3). Na teto adrese naleznete i obrazek spreadsheetu v akci.
Mark Stacey ([email protected]) uvolnil testova- c verzi patche pro podporu protokolu T/TCP pro kernel 2.0.32. Protokol T/TCP je definovan v dokumentu RFC 1644 a umoznuje snzit pocet prenasenych paketu pri malych prenosech dat az o 66 %. Patch naleznete na adrese (4).
Spolecnost ObjectSoftware Inc. vyvinula utilitu Ob- jectManual, ktera slouz ke generovan dokumentace ze zdrojovych textu v jazyce C nebo C++ (podobne jako ja- vadoc z jazyka Java). Program je free pro nekomercn or- ganizace. Je k dispozici na adrese (5) pro Linux a Microsoft Windows NT.
Fabrice Bellard ([email protected]) vytvoril patch pro audio prehravac mpg123, ktery pry umoznuje soubo- ry mp3 prehravat i na pomalych poctacch s procesorem i486. Patch naleznete na adrese (6).
Dennis Payne ([email protected]) oznamil novou verzi programatorskeho prostred Xwpe (7), blizs informace o tomto prostred naleznete take v clanku Programator- ske editory (X)WPE a (X)FTE.
Spolecnost Linux Central (8) oznamila zahajen prodeje nove knihy autoru Michaela K. Johnsona a Erika W. Troa- na s nazvem Linux Application Development. Kdo zna oba autory, jiste si knihu nenecha ujt. Najde se nejake vyda- vatelstv, ktere knihu preloz a vyda? Snad ano, nechejme se prekvapit. . .Dals novou knihou je kniha Linux Network Toolkit autora Paula G. Seryho.
Andries Brouwer ([email protected]) oznamil no- vou verzi balku kbd, tentokrate s cslem 0.96. Balk najdete na adrese (9).
Elmer Joandi (elmer [email protected]) nalezl pomerne za- jmavou chybicku v produktu Source Navigator (viz cla- nek Source Navigator) spolecnosti Cygnus. Source Naviga- tor totiz posloucha na prvnm volnem portu a akceptuje prkazy jako exec cat /etc/passwd.
Thomas Boutell ([email protected]) znamy to autor aplikac pro WWW (vzpomenme treba Count.cgi) ozna- mil novou aplikaci, ktera umoznuje sdlen kalendaru — jed- na se tedy o tzv. Group Scheduling aplikaci, ktera umoznuje skupinam pracovnku lepe organizovat cas.
Pavel Jank ml. (to jsem ja ;-) oznamil presun aplikace Linux Source Driver na novou adresu (10).
John Lindal ([email protected]) oznamil novou verzi balku Code Crusader(11).
Markku Rossi ([email protected]) vytvoril interpreter jazyka JavaScript, ktery je volne siritelny — najdete jej na adre- se (12).
Spolecnost Red Hat Software Inc. (13) oznamila zahajen prodeje distribuce Red Hat Linux 5.1 (Manhattan).
ivatelu operacnho systemu Linux
1 Linux Links http://www.linuxlinks.com/
4 T/TCP patch pro kernel 2.0.32 http://www.csn.ul.ie/~heathclf/fyp
5 ObjectManual http://www.obsoft.com
7 Xwpe http://www.rpi.edu/~payned/xwpe/alpha.html
8 Linux Central http://linuxcentral.com
13 Red Hat Software Inc. http://www.redhat.com
14 Glibc http://huizen.dds.nl/~frodol/glibc
Co noveho na sunsite.unc.edu? Pavel Jank ml., 1. cervna 1998
X11
X11/screensavers/xlockmore-4.10.tgz — screensaver pro X-Window
X11/xutils/kjoy-0.4.tgz — utilitka pro nastaven joysticku pro KDE
X11/xutils/wmnet-1.03.tar.gz — TCP/IP loadmeter
apps/database/www/www-sql-0.5.1.tar.gz — CGI rozhran k mySQL
apps/doctools/man/vmanpg-1.0.tar.gz — prohlzec manualovych stranek pod SVGAlib
apps/editors/X/xwpe-1.5.9a.tgz — klon Borland IDE pro X-Window, ale i pro textovy terminal
apps/editors/X/yudit-1.0.tar.gz — textovy editor podporujc unicode
2
commercial
games
kernel
libs
libs/graphics/t1lib-0.7-beta.tar.gz — rasterizer pro fonty ve formatu Type1
libs/libmmx-980501.tgz — rozhran pro podporu MMX v jazyce C
science
science/visualization/plotting/xFgraphs-1.1.tar.gz — grafy matematickych funkc pod X-Window
system/bbs/rocat-1.07.tar.gz — plnohodnotna BBS pro Linux
system/boot/ethernet/etherboot-4.0.tar.gz — ethernet boot loader
system/emulators/Sim8051 1.0.tgz — simulator 8051
system/network/admin/firewallct-1.0.8.p3.tar.gz — HTML konfigurace firewall
Kvetnove cslo Linux Journalu se zabyva programovanm aplikac prenositelnych na jine systemy (cross platform development). Prvnm z clanku je nastin tvorby widgetu pro Javu od R. J. Celestina.
Prehled prostredku a nastroju pro tvor- bu grafickeho uzivatelskeho rozhran neza- visleho na pouzitem systemu prinas Micha-
el Babcock. Pokud pouzvate PERL, Jeremy Impson vam ukaze, jak
pri laden pouzt PERLovsky debugger. John Kominek pouzva pro programovan prenositelnych
aplikac jazyk Modula-3. Ve svem clanku se venuje prkladu, jak vytvorit distribuovanou databazi.
Carl Nobile prinas ukazku ATD (Abstract Data Type). O sve zkusenosti s vyuzitm Linuxu pri zskavan dat na
nemeckych zeleznicch se del Harald Kirsch. Richard Schwaninger popisuje svuj pohled na vyuzit
Tcl/Tk pro rychlou tvorbu zakaznickych aplikac. Nevte, jak nastavit RAID na Linuxu? Mozna vam porad
Jay Munsterman ve svem clanku o RAID0. Nejen pro uzivatele CDE (Common Desktop Enviroment)
je urcen clanek Georga Krafta o ToolTalku a jeho vyuzit pri programovan vzajemne komunikujcch aplikac.
Pokud potrebujete spojit Python a databaze, a nevte nic o DB-API pro Python, prectete si clanek Andrewa M. Kuchlinga.
Hledate nejpomalejs msto vaseho programu a nemuze- te ho najt? A zkusili jste uz nektery z profileru? Podvejte se na dals clanek ze serie Take Command.
Linux Journal samozrejme jako vzdy obsahuje dals clan- ky, recenze, informace, reklamy apod. Jen heslovite: KDE, Gnome, recenze na knihu A Practical Guide to Linux, ochrana WWW stranek heslem.
Programovac jazyky? GNU! Jan Kasprzak, 11. cervna 1998
Miroslav Dressler: Programovac jazyky GNU Podtitul: Volne siritelna programatorska prostred Computer Press, 1998 ISBN 80-7226-070-7 Cena 275 Kc/303 Sk
Dostal jsem k recenzi zajmavou knihu. Titul tohoto clan- ku je parafraz na jej nazev — „Programovac jazyky GNU“. Autorem je Miroslav Dressler a vydalo ji nakladatelstv Computer Press (1). Kniha popisuje praci s volne dostup- nymi vyvojovymi prostredky z projektu GNU — kompilato- ry gcc (prekladac jazyka C/C++/Objective C), gpc (prekla- dac Pascalu), g77 (prekladac Fortranu 77), program gmake (zajist’uje kompilaci a sestavovan rozsahlejsch programu) a laden programu debuggerem gdb.
Nejvetsm prekvapenm, ktere mi tato kniha zpusobila, byl fakt, ze kniha nen zamerena na vyse zmnene softwaro- ve produkty obecne, ale na jejich verzi pro konkretn pro- stred — OS/2 a DOS extender EMX. V knize je zmnena existence gcc a dalsch produktu pod UN*Xem, existen- ce prostred DJGPP pod DOSem, ale hlavn zameren kni-
3
hy je prostred EMX. Tento fakt me celkem prekvapil — proc vydavat manual k portabilnmu programu pouze pro jedno prostred. Vzdyt’ obecny manual ke GNU C a dalsm programum by se podle meho nazoru mel prodavat lepe.
Na druhe strane je docela mozne, ze u Computer Pressu presne ved, co delaj. Tuto knihu si zcela jiste mohou kou- pit uzivatele DOSu, OS/2 nebo Windows, a naleznou tam pro svuj system detailn instrukce. A uzivatel UN*Xu proste preskoc prvn kapitolu o EMX a dve posledn kapitoly, za- merene na integrovana vyvojova prostred a grafickou kni- hovnu VESA. Uzivatel UN*Xu bude take pravdepodobne natolik inteligentn, ze si GCC, resp. GCC.EXE preloz jako gcc.
Muj nazor na knihu je v podstate kladny a myslm si, ze je dobra jak pro uzivatele UN*Xu, tak pro uzivatele zmi- novanych proprietarnch systemu. Ja osobne jsem si velmi rad precetl kapitolu o gdb (tedy pardon, o GDB :-) a na- sel jsem tam nekolik vlastnost, ktere jsem jeste neznal. Je take dobre, ze se touto knihou dostava informace o dal- sch volne siritelnych programech do povedom uzivatelu proprietarnch systemu.
K nekterym rysum knihy mam take sve vyhrady:
• autor ma zrejme jen velmi mlhavou predstavu o tom, co je GNU, co je Linux a jak tyto pojmy spolu souvis. Cituji z uvodu knihy:
Zakladn myslenkou projektu GNU (GNU’s not UNIX) je bezplatne zprstupnit programove vybaven puvodne urcene pro operacn system UNIX uzivatelum ostatnch operacnch systemu. Tato myslenka byla nejsilneji akcentovana v dobe vytvaren operacnho systemu Linux, se kterym se soucasne vyvjel prekladac programovacho jazyka C.
O tom co je hlavn myslenkou projektu GNU lze samozrej- me diskutovat, ale podle meho nazoru je to spse vyvoj pro- gramoveho vybaven pro UN*X, nikoli (jen) jeho zprstup- nen uzivatelum jinych systemu. A fakt, ze prekladac gcc je o nejakych pet sest let stars nez Linux, je take obecne znamy.
• psmo Garamond povazuji za dost okoukane, ale na druhou stranu je celkem hezke. Ovsem tmto ps- mem by mela byt sazena cela kniha (vzorec na strane 93 je zrejme v necem jako Times — Quark nejsps neum matematiku v jinem fontu). Navc kombinace pomer- ne vyrazneho Garamondu s lehkym Courierem je podle meho nazoru do oc bijc. Ostatne, uz kdyz si v Courie- ru napsete neco jako -fomit-frame-pointer, vypa- da to dost divne.
• v nekterych mstech chyby (sazece?) zaprcinuj i myl- nou interpretaci textu (napr. strana 78, tret radek sho- ra ma byt odsazen — levostranne mezery v Makefile nejsou nevyznamne).
• kniha ma na obalu obrazek kompaktnho disku; mys- lm, ze by daleko prospesnejs bylo, kdyby kniha ob- sahovala skutecne CD s instalac GNU vyvojoveho pro- stred treba pod EMX (i kdyz si myslm, ze na CD by se navc mohlo vejt i DJGPP a zdrojove texty GNU pro- gramu pro UN*X, a mozna i dokumentace, prevedena z info do HTML.
Linuxove noviny 06/98
Vyse uvedene vyhrady povazuji za malo vyznamne a kni- hu doporucuji ke koupi kazdemu, kdo zmnene vyvojove prostredky pouzva nejen pod DOSem (OS/2, Windows, . . .), ale i v nativnm UN*Xovem prostred. Existence teto kni- hy je pro me dukazem, ze Open Source software se i u nas dostava do popred zajmu uzivatelu natolik, ze se naklada- telum vyplat vydavat k tomuto softwaru ceskou dokumen- taci.
1 Computer Press http://www.cpress.cz
Abstract
Editory wpe a fte budou patrne blizs tem, kter prechaze- j na Linux z DO$u a UNIXove editory typu vi nebo ema- cs jsou pro ne zahadou. Oba popisovane editory se vce ci mene uspesne snaz napodobit „standardn“ Borland ovla- dan (ktere podle mne nepatr mezi nejhors). Hned na za- catku bych vsak zmnil i nevyhody techto editoru — fte nema verzi pro terminal a u wpe se mi ji vubec nepodarilo rozchodit. Takze jejich pouzitelnost je zuzena na X-Window System a u fte jeste lze pouzt verzi pro textovou konzoli. (BTW: pokud pouzvate KDE, tak vas mozna potes verze pro tento X desktop (nen ale soucast standardn distri- buce fte).)
Editor XWPE
Temer dokonala kopie Borlandho rozhran; umoznuje vse (velmi nadnesene receno), co si zmlsany programator muze prat.
Stvoril ho pan Fred Kruse a ve verzi 1.4.2 existuje bez zmeny jiz od roku 1993. Teprve v nedavne dobe byly zdroja- ky opraseny a byl zahajen projekt „za leps WPE“ (just kid- ding). Podvejte se na adresu (1). Dals text se bez vyjimek bude vztahovat ke stare verzi 1.4.2.
Podobnou simulac Borlandu je program RHIDE, ktery byl napsan pro djgpp, coz je dosovy port prekladace GNU C (produkuje tak dobry kod, ze byl pouzit IDSoftwarem k prekladu QUAKEa msto Watcom C). RHIDE existuje jak pod DO$, tak pro Linux. Linuxovou verzi jsem vsak
4
nezkousel a o te dosove si pamatuji jen to, ze kdyz jsem hned na zacatek zdrojaku napsal komentar, tak pri listova- n spolehlive zatuhl :-) Takze toto rozhran rad prenecham povolanejsm. . .
Obrazek ukazuje editor xwpe pri krokovan programu (tesne pred tm, nez mi spadl :-) ).
Strucny vycet schopnost WPE
• odskakovan na chyby a „warningy“ objevene preklada- cem a zprstupnene pomoc okenka Messages
• moznost nakonfigurovat a vyuzt ruzne prekladace — krome C(++) treba Fortran, Pascal ci LaTeX (hmm.. . tady je trochu problem, protoze xwpe „cpe“ zcela sve- volne libovolnemu prekladaci spustenemu z menu pr- kazem Run/Compile parametr -c, takze je treba spous- tet skript, ktery ignoruje prvn parametr (-c) a spoust latex az s tm druhym (filename))
• zobrazovan manovych stranek i GNU info — umoznuje pohodlnou navigaci dokumentem, lec tu a tam spatne interpretuje odkaz (sps ignoruje). . .
• „obarvovan“ syntaxe (snaha o cesky preklad (sps pre- pis) slova highlight) a konfigurace barev editoru a syn- taxe
• konfigurace chovan editoru (tabelatory, autoindent, autosave. . .), ale jinak je konfigurace moznost edita- ce dost omezena.
• a nakonec um take zcela necekane v ten nejnevhod- nejs okamzik spolehlive chcpnout (hlavne pri prohl- zen manovych stranek) ;-) (ale vetsinou se mu podar rozdelanou praci ulozit . . .)
Zhodnocen
Obecne lze rci, ze k programovan (spse ke zkousen pro- gramovat) je tento editor celkem pouzitelny — napsete kod, rovnou ho prelozte, opravte syntakticke a jine chyby odhalene prekladacem a muzete ho vesele krokovat a pro- vadet s nm ruzne jine kejkle bez nutnosti vytvaret Ma- kefile a spoustet debugger. Ovsem k vetsmu projektu je Makefile stejne nutno vytvorit (co s neprenositelnym „projektfajlem“? (Nejakym kouzlem (skriptkem) by z neho ten Makefile vytvorit mozna slo. . .)) a chyby je v zasade lepe vubec nedelat — usetr to spoustu prace s naslednym honenm nejakeho stupidnho bugu ;-).
Jinak se mi zda tento editor dost omezeny — barev- na syntaxe funguje jen pro par vyvolenych (C(++), Pas- cal, Fortran(?). . .), indent je dost hloupy, a editor vubec neum kompletaci slov (doplnovan slov podle predchozho kontextu). O definovan klavesovych zkratek pro vkladan casto pouzvanych vyrazu si pri pouzvan tohoto editoru muzete nechat jen zdat. A prave tyto vlastnosti ma editor fte.
Editor XFTE
Editor fte si neklade za cl koprovat IDE. Je to jen editor. Ovsem editor vhodny pro programatory zvykle Borlandmu ovladan. Zda se, ze byl puvodne stvoren pod OS/2 a teprve postupem casu portovan na ostatn systemy i „systemy“ — DOS, Linux, Win32. Napsal (a naprogramoval :-) ) ho pan Mirko Macek a je mozne ho zskat na (2).
Zde existuje ve verzi pro X-Window a linuxovou konzoli (hovorme-li o moznostech tykajcch se Linuxu). Nekde na adrese (3) lze tez najt port pro KDE od jineho autora. Tato verze ma tu vyhodu, ze pokud mate spravne nainstalovanou ceskou klavesnici pod X-Window (cili chod-li vam treba pod KDE aplikacemi), tak vam zde bude chodit tez.
Xfte v plne krase — ukazka ruznych indent stylu, ty [0] znac foldy. Cely text by po zavren foldu mel tri radky. . .
Mene strucny vycet schopnost FTE
• Konfigurovatelne zvyraznen syntaxe (highlighting) — muzete pridavat vlastn definice ruznych formatu sou- boru. Nadefinovany jsou tyto jazyky/formaty: C(++), Java, REXX, Perl, Pascal, Ada, UNIX shell skripty, tcl, HTML, LaTEX, E-mailove zpravy, DIFF a dals. Ne vsu- de funguje hilite tak, jak by si clovek predstavoval — u HTML nejsou nadefinovana nektera klcova slo- va a JavaScript to vubec nerozezna :-) V shellovskych skriptech je zase jako prkaz zvyrazneno jen prvn slo- vo, takze pokud volate nejaky program celou cestou, tak je zvyraznen jen prvn adresar (krome lenosti vsak nic nebran odstranen techto nedostatku prmo v kon- figuracnch souborech).
• Specialn indent pro C(++), Perl, Javu, REXX, pricemz pro C existuj tri mody — standardn, GNU a Linux kernel styl. Ceckovsky indent mne opravdu nadchl — na patricne msto na radku kursor odskakuje hned po stisknut klavesy Enter a inteligentne rozpoznava slo- zene zavorky. To znamena, ze zdrojak psete bez jakych- koli starost o formatovan textu — vse se provad au- tomaticky. Dals pomucka usnadnujc orientaci v textu je, ze pri najet kursorem na zavorku (jakoukoli — [, ], {, }, ( a )) se zvyrazn odpovdajc zavorka.
• Schopnost kompletovan slov na zaklade predchozho kontextu — pokud se v predchozm textu jiz dane slovo vyskytuje, stac napsat nekolik prvnch psmen a stis- kem klaves Ctrl+Tab se slovo automaticky dopse (pro lenochy jako jsem ja je to prmo terno. . .). Bohuzel
5
to jiz nefunguje, kdyz neco dopisujete na zacatku zdro- jaku a slovo, ktere byste chteli doplnit, se sice v textu jiz vyskytuje, ale nachaz se za inkriminovanym mstem :-(
• Folds (cti faldy ;-) ) — ackoli je pro ne vytvoreno special- n menu, teprve nedavno (cca pul hodiny) jsem pocho- pil, k cemu tohle zvre vlastne je, nebot’ jsem mel cas, chut’ a hlavne duvod (psan tohoto clanku) se tm zaby- vat. Zda se, ze je to velmi uzitecna schopnost zprehled- nit vytvareny text — napr. v C zdrojaku muzete pomoc menu Fold/Create folds at routines vytvorit „faldk“ pro kazdou funkci. Potom stiskem klaves Alt+Gray / vsechny foldy zavrete. Text se pote jev jako seznam funkc — zobraz se totiz pouze prvn radek ve foldu. Na libovolny fold lze najet kursorem a kombinac kla- ves Ctrl+Gray + a Ctrl+Gray - je lze otvrat ci zavrat. Foldy lze vytvaret i pomoc regexpu ci jak se vam zachce — viz menu Fold. Nen vsak vse zlato, co se trpyt. . . U foldu lze definovat pouze zacatek. Ukonce- n zard bud’ definice dalsho foldu nebo konec soubo- ru. To vede napr. pri „ofoldovan“ zdrojaku podle funkc (viz vyse) k tomu, ze se komentare pred funkc, ktere se j vetsinou take tykaj, dostanou na konec foldu, ve kte- rem je predchazejc funkce. Je zde vsak stale moznost pouzt regexp — takze pokud psete komentare k funk- cm ve stylu /* Fce: . . . */, muzete vytvorit foldy pres regexp pomoc vyrazu Fce:.
• Chovan editoru lze ovlivnovat na pomerne nzke urov- ni (vte, jak to myslm — assembler je take programo- vac jazyk nzke urovne, ale lze v nem udelat vsechno). Pro kazdy typ dokumentu je vytvoren zvlastn konfi- guracn soubor, ve kterem je nadefinovan zpusob obar- vovan syntaxe, specialn klavesove zkratky, prdavna menu (viz HTML), formatovan textu, okraje a spousta dalsch vlastnost. Vse lze libovolne menit a upravovat podle vlastnch predstav. Je vsak pravda, ze je v tech konfiguracnch souborech trochu chaos, ale kdyz za- cnete souborem main.fte, tak se snadno zorientuje- te. A editor fte ma pro tyto konfiguraky zvlastn mod s barvickami :-). Po editaci konfiguracnch souboru je treba jeste vytvorit „preklad“ pomoc programku cfte a prekoprovat ho do souboru $HOME/.fterc. Potom znovu spustte fte a je to.
• Preklad a opravy zdrojovych textu — fte umoznuje spoustet prekladac na pozad (implicitne spoust ma- ke, takze je treba vytvorit i Makefile (pro ktery je tez zvlastn mod)) a odchytava si jeho chybove hlasky. Potom lze pomoc okna Messages skakati po chybach a opravovati. Zadne debugovac schopnosti (krokova- n ci breakpointy) to vsak nema — je ovsem otazka, zda je to bug nebo feature (fprintf(stderr, "Err: blah\n"); take nen k zahozen).
Zhodnocen
Ackoli ladc schopnosti editoru fte jsou zredukovany na okenko s chybovymi hlaskami, presto si tento edi- tor snadno zskal me srdce — jeho implicitn nastave- n mi totiz maximalne vyhovuje, a tak zmeny v konfigu- raci nebyly nejak dalekosahle. Pridal jsem si pouze mod pro ceskou klavesnici, zkratku pro   v HTML mo- du ( Ctrl+Space ) a jeste par malickost jako pouzva- n ceskeho fontu nebo predefinovan zkratky Ctrl+Tab
Linuxove noviny 06/98
na Shift+Tab kvuli KDE. Samozrejme, ze i tento editor jako vetsina jinych ma sve nedostatky, o kterych jsem se zminoval vyse, ale tyto nedostatky bohate vyvazuj moz- nosti, ktere tento editor poskytuje.
1 XWPE http://www.rpi.edu/~payned/xwpe/
2 XFTE http://ixtas.fri.uni-lj.si/~markom/fte
Grasp Karel Zak, 9. cervna 1998
A toto je muj favorit — GRASP neboli Graphical Repre- sentations of Algorithms, Structures and Processes. Nejed- na se o zadneho vyvojarskeho obra, ale naopak o docela uhledny editor, ktery svou funkci pro programovan projek- tu o nekolika souborech a par stech radcch pln na vybor- nou. Osobne ho pouzvam asi 1 rok a jsem nadsen.
Soucasna verze je 6.2.7 pro Unix (29. dubna 1998) a 6.2.8 pro Win95/NT (25. brezna 1998).
Program je napsan pro X Window za pouzit Motif 1.1.2. Pochopitelne autori nezapomnaj ani na ty co nemaj Motif a program lze stahnout na adrese (1) jako staticky slinko- vane binarky.
GRASP je pripraven pro jazyky Ada 95, C, C++, Java a VHDL. GRASP je integrovan do GNU rodiny kompilatoru pro Adu, C a Sunovskeho javac pro Javu (dle informac na Webu).
Jako prvn se pri spusten objev okno obsahujc sou- bory projektu, pokud zadny projekt nemate tak logo pro- gramu. Zde se lze rozhodnout jestli si zalozte novy projekt nebo si proste jen tak zeditujete nejaky ten soubor. Tato moznost mi tak trochu chyb u Source Navigatoru, ktery predpoklada, ze pokud nekdo neco chce, mus si nejdrve vytvorit projekt. Pro sve intern informace si GRASP vy- tvar soubor v adresari, ve kterem se nachazej editovane soubory.
6
Pak uz stac jen vybrat jazyk, ve kterem bude vami edi- tovany soubor, nebo prmo vybrat soubor v souborech za- razenych do projektu, a objev se vlastn editor.
Editor podporuje vsechny obvykle funkce (tedy obar- vovan klcovych slov, zarovnavan, spousten make, run programu atd.), ale hlavne CSD. A to je ten duvod proc o GRASPu psi.
CSD — Control Structure Diagram je nadherna vec, kte- rou muzete videt na prilozenem obrazku. Ano, to jsou ty „cary“, ktere nam krasne zprehlednuj zdrojovy kod. Na prv- n pohled je ihned patrne kdy a kam se vracte, kde je jaky cyklus, if nebo neco jineho. Soucast znacen textu muze tez byt moznost cslovan radku.
Co se mi take lb je, ze pokud udelate chybu (napr. za- pomenete strednk), tak vas program taktne upozorn, ze s takovym kodem CSD proste neudela (mate-li tedy CSD v celem souboru v poradku, je pravdepodobne, ze i zaklad- n syntaxe kodu je OK). O prpadnych chybach GRASP informuje programatora v okne vzkazu.
Dals zajmavou vlastnost GRASPu je expanze maker. To znamena, ze editor makra ukryta v souborech includo- vanych do editovaneho souboru pro vlastn kontrolu expan- duje (ale na obrazovce a v souboru vam pochopitelne zu- stane to co jste napsali). Tak napr. pokud bude soubor.h a v nem makro AHOJ a my toto makro budeme pouzvat v souborech .c, bude GRASP kontrolovat jak toto makro „zapada“ do souboru .c. Pokud tedy bude v makru AHOJ chyba, budeme na tuto skutecnost upozorneni. GRASP te- dy pouzite AHOJ nebere jen jako text, ale jako opravdove makro. Lze nastavit, z jakych #include souboru bude ex- panze probhat (lze zahrnout i /usr/include).
V GRASPu si muzete take definovat vlastn sablony. Ja jsem to naprklad pouzval pri psan programu pouzvajcch knihovnu mSQL, kdy se mi nechtelo psat porad ty slene nazvy funkc. Jen stacilo nadefinovat funkce nebo i cykly (a ostatne cokoliv) do souboru se sablonami, a v menu edi- toru se vse objevilo. Pak pokud chcete neco z toho co jste nadefinovali, jen zamysujete do tohoto menu a text ukryty pod touto polozkou je GRASPem napsan. Na dalsm obraz-
Linuxove noviny 06/98
ku je toto menu se sablonami dodanymi s programem to cele svetle modre (. . .take ctete cernobly vytisk?) okenko.
Mezi dals prjemnosti patr barevny tisk do PostScrip- tu, kdy na vytisku je pochopitelne mozne mt i CSD (to by mohlo byt uzitecne pro vsechny tvurce literatury o pro- gramovan (uz vidm ty krasne a prehledne prrucky a ne ten sedy chaos, na kterem oci umdlevaj — ale vrat’me se z oblacku na zem. . .)).
Nove je v GRASPu interface pro grep, ale to si uz asi kazdy predstav sam. A dobra zprava na konec, v dals verzi ma byt podpora Tcl a Perlu, a tak si prijdou na sve i ne- kompilovanci. . .
1 Grasp http://www.eng.auburn.edu/department/cse/research/grasp/
Source Navigator Karel Zak, 9. cervna 1998
Pokud se u GRASPu zminuji o tom, ze se hod i pro psa- n malych programku, tak Source Navigator (SN) bych za- radil do presne opacne kategorie IDE programu. Pocho- pitelne i SN lze pouzt na psan nekolika malo radek, ale pravdepodobne pri nem nevyuzijete vsechny jeho moznos- ti a jak dale uvidme, bylo by to tak trochu jako pouzvat „delo na komary“.
Verze kterou ja pouzvam je tzv. „lite version“, tuto lze zskat na (1). Jej omezen (na ktere jsem narazil) je ne- ochota pracovat s projekty o vce nez 50 000 radkach. Za- jemcum o plnou verzi sam SN napov hned pri spusten, kam se obratit a pro koho si dolarky pripravit (ano, ano, zadne GNU).
SN je kompletnm prostredm pro vyvoj jednm vyvoja- rem (napr. program C-Forge to um i pro tym vyvojaru ro- zesetych po sti, ale o tom az nekdy prste). Soucast balku je manazer projektu, manazer souboru a funkc, interface pro debugger a make a hlavne editor. Vse je velice snadno a ruznorode konfigurovatelne.
SN um aplikovat vsechny sve moznosti na Tcl, Javu, Fortran, Cobol, C/C++, asm. Ke vsem jazykum je mozno nastavit i extern editor a specifikovat koncovky souboru. Bohuzel k C++ a C pristupuje stejne. Mozna by nebylo od veci, pokud je editovan soubor.c, nenutit programatorovi na pracovn plochu nastroje na praci s objekty, ale uvidme, vse se vyvj.
Jak je dobrym zvykem, pristupuje i SN k psan programu jako k tvorbe projektu. Projekt je mozne vytvorit i z exis- tujcch souboru. K tomu slouz neco co lze nazvat mana- zerem projektu. Zde je mozne pridavat a ubrat adresare, soubory do projektu, ale i spojovat projekty atd. Pri vytvo- ren projektu udela SN v urcenem adresari jeden soubor a adresar, ve kterych si udrzuje databaze o zdrojovem ko- du. Pro kazdy projekt lze vytvorit specieln nastaven vseho nastavitelneho. Tedy kratce:
• barvy a fonty pro asi 40 druhu textu (napr. komentare, deklarace, . . .), oken a menu
• tisk
• tvorba zaloh (.bak)
• a jeste moc a moc vecicek. . .
Po vytvoren projektu se objev neco jako manazer sou- boru. Ten je schopen zobrazovat bud’ seznam souboru nebo velice pekny seznam funkc (na obrazku). Prave schopnost zachazet s projektem z hlediska funkc a ne jen souboru je velice efektivn. Programator pak uz nemus premyslet, kde v jakem souboru je jaka funkce, ale jen v seznamu funk- c, ktery lze trdit dle nastavitelneho filtru, najt tu pravou a editovat.
Editor v sobe sdruzuje hned nekolik hezkych nastroju (nektere lze volat i z manazera souboru). Editor je schopen zarovnavat, zvyraznovat klcova slova, koprovat, zachazet s bloky a hlavne umoznuje hledat a hledat (v aktualnm souboru nebo v celem projektu).
Linuxove noviny 06/98
Pokud kliknete pravym tlactkem mysi na jakoukoliv funkci nebo promennou, editor vam nabdne menu, po- moc nehoz se premstte na implementace nebo dekla- race dane funkce nebo promenne. Nevte-li tedy, co to je napr. za polozku blabla ve strukture neco, stac kliknout na neco->blabla a podvat se, kde a co a jak je ve vasem projektu spojeno s touto polozkou. V horn casti editoru je opet prstupny seznam se vsemi objekty, promennymi, makry a funkcemi. Dale pak seznam toho, co bylo naposle- dy hledane. Aby se vyvojar pri praci neztratil, jsou dostup- na i tlactka (sipky) back/forward, ktere vas vrat na vasi predchoz/nasledujc pozici v projektu.
Editor umoznuje i jina zobrazen nez jen klasicke (zaloz- ka Edit) zobrazen (textu) kodu. Na ostatnch zalozkach je mozne zachazet s Class, Retriever, Hierarchy (bohuzel pro svou nedotcenost C++ tuto cast jaksi taktne vynecham, ale z hlediska koncepce SN lze predpokladat, ze i tato ob- last je zde velice dobre propracovana) a pak (a to se mi moc lb) zalozky Xref a Include.
V Xref je mozne nechat si dle nastavene hloubky vno- ren doslova nakreslit jake funkce a promenne jsou volany a pouzity v dane funkci. Tak napr. na dalsm obrazku je znazorneno, ze funkce init tree vola funkci rec tree a u obou funkc i pouzite promenne. Prakticky tak lze ude- lat mapu vzajemnych provazanost funkc v celem progra- mu, pokud jako zacatek nastavte main() a levels dosta- tecne velky (a procesor mate dostatecne vykonny). Pocho- pitelne je mozne se kliknutm premstit do dane funkce. Include umoznuje to same, ale u souboru. Pouzit zalozky Grep je myslm jasne.
SN, jak uz zaznelo, ma i interface pro debugovan. Ja- ko debugger pouzva defaultne gdb. Aktualne provadeny kod zobrazuje SN v okne editoru, debugovat lze prakticky bez psan prkazu na prkazovou radku gdb — stac jen kli- kat. V tomto mne SN nejak neoslovil a kvalitou ho pravde- podobne predc DDD. Ja osobne radeji pouzvam samotne gdb.
Prevratne nen ani rozhran pro make. Obsahuje vse co lze standardne ocekavat (ukazovan na chyby odhalene pri kompilaci, nastaven parametru pro make atd.).
Co mi u SN chyb — a je napr. u Emacsu — je skryvan podmnene kompilovanych cast kodu dle direktiv #ifdef
8
(bylo v emacsu pekne predvedeno na Cikhaji). Dals trochu neprjemnou vec je doba ukladan souboru — SN si totiz znova vytvar databaze informac o zdrojovem kodu a to trochu trva.
To je velice zhruba vse. Pravdepodobne jsem vynechal mnoho detailu, ktere SN umoznuje, ale to nen napln Li- nuxovych novin, to se mus zazt pri praci s SN. Na zaver lze rci, ze se jedna o velice dobry IDE software i pro oprav- du velke projekty, ktery by bylo zajmave videt v plne verzi (na domovske strance ho maj vyfoceny v uhledne, ale bo- huzel typicky komercn krabici) a vnutit mu napr. cely ker- nel Linuxu — a ja myslm, ze i s takovym balkem zdrojaku by bez vetsch problemu pracoval pro zdar sveho majitele.
1 Cygnus http://www.cygnus.com
Kterak postu na Linuxu Pmailem csti Dan Ohnesorg a Milan Kerslager, 12. cervna 1998
Pokud se rozhlednete po ceskych skolach, zjistte, ze temer vsude se pouzva jako klient elektronicke posty Pegasus Mail, dlo to Davida Harrise. Jeho popularita je celosveto- ve obrovska a jeden cas byl dokonce prostrednictvm firmy Novell prodavan pod nazvem First Mail jako oficialn klient novellskeho postovnho systemu MHS, posleze ho v teto funkci nahradil GroupWise. Pegasus Mail je sren jako fre- eware, s nekolika vyhradami — nejsou k dispozici zdrojove texty, program se nesm prodavat (muze byt soucast neja- keho placeneho balku, ale nesm byt prodan sam o sobe), nesm se pouzvat pro rozeslan nevyzadanych reklamnch mailu a nesm byt modifikovan bez predchozho svolen au- tora.
Velikou vyhodou je uzka integrace se serverem Novell Ne- tware. Pegasus mail si nacta konfiguraci prmo ze serve- ru, um lokalne dorucovat prmo uzivatelum, bez potreby dalsho programu bezcho na serveru, um vyhledavat lo- kaln uzivatele podle jmen ulozenych v tzv. bindery databa- zi (mnohem slozitejs obdoba souboru /etc/passwd, do- stupna ke cten a zapisu jedine sluzbami bezcmi na serveru (no za tuto vetu by se mi kazdy hacker vysmal, ale pro na- se ucely toto zjednodusen stac)). Podporuje tzv. nastenky, ktere funguj asi jako news, ale pouze lokalne. Je velice dob- re rozsiritelny, umoznuje uzivatelskou definici menu, tm pa- dem take preklad do jinych jazyku, uzivatel si definuje vlast- n tabulky pro preklad mezi znakovou sadou sveho poctace a ISO znakovymi sadami, pouzvanymi pro transport pos- ty po sti. V soucasne dobe jsou k dispozici kompletne ceske preklady jak menu, tak napovedy. Pmail je k dispozici ve ver- zch pro DOS, Windows, Windows 95/NT a Macintosh. Ob- rovskou vyhodou je identicky format pouzvanych souboru, takze si muzete postu cst soucasne pod vsemi zmnenymi operacnmi systemy s vyhradou, ze verze pro Macintosh ne- n lokalizovana a asi v dohledne dobe ani nebude. Vyrovna se i s tm, ze je spusten vcekrat na vce stanicch v sti pod stejnym uzivatelem. Nen ale mozne ze dvou poctacu modi- fikovat stejnou slozku, kam se posta uklada, to ale obvykle prlis nevad, protoze novou postu lze cst bez omezen.
Logika jeho prace je velmi prosta a dobre zdokumento- vana. Mejme uzivatele A, uzivatel A ma pod Novellem cslo AN, ktere je mu prideleno pri vytvoren uctu na serveru. Tmto cslem je uzivatel identifikovan v bindery databazi.
SMTP_DIR="/home/nwserv.sys/mail/smtp"
for file in $SMTP_DIR/* do if [ -e $file ]; then FROM=‘grep "^From:" $file | head -1 | sed -e ’s/ ’s/>.*//’‘ TO=‘fromdos < $file | sed -n ’2,/^$/p $FROM -> $TO ..." fromdos < $file | sed ’1,/^$/d echo " done." rm $file
fi done
Vypis c. 1: Script pro odes
Na disku, ktery se obvykle jmenuje SYS: existuje adresar nMAILnAN, ktery ma uzivatel sam pro sebe. Tam se uklada veskera prichazejc posta, kazda zprava do jednoho sou- boru, ktery se jmenuje nejakym nahodnym cslem (podle data, hodiny a vysledku fce random()). Tomuto souboru je pridelena prpona .cnm. Pmail po startu hleda vsechny souboru *.cnm a zobraz je. Cnm soubory obsahuj cistou mailovou zpravu ve formatu podle RFC 822 a navazujcch norem (MIME a pod.). Uzivatel si dopisy potom presou- va do slozek podle sve volby, ve slozce je jiz vce dopisu v jednou souboru, nebo muze vyuzt sluzeb automaticke- ho filtrovan a presouvat dopisy do jednotlivych slozek pri otevren nove posty pomoc pravidel, ktera si sam nadefi- nuje. Verze pro Windows navc umoznuje aplikovat filtrova- c pravidla na odeslane dopisy nebo na jednotlive slozky. Take pri odeslan lze na dopis take aplikovat pravidla, kte- ra rozhodnou o osudu zpravy. Pokud je zprava lokaln, Pe- gasus mail zjist pro jmeno adresata jeho cslo a uloz mu zpravu do jeho adresare nMAILncslo. Pokud zprava spln nejake jine filtrovac pravidlo, adresa treba zacna FAX: je napr. spusten extern program. Pokud je vyhodnocena ja- ko Internetova, je ulozena do predem vybraneho adresare kde je zpracovana typicky dalsm Harrisovym programem — Mercurym, ktery zajist dorucen. Toto chovan je impli- citn, ale da se zmenit, treba pri instalaci na server Windows NT se msto csel pouzvaj prmo jmena uzivatelu.
Co z predchozho vyplyva pro nas. Je zrejme, ze by neby- lo slozite doslou postu ukladat do adresare MAIL a odes- lanou vyzvedavat z adresare urceneho pro Mercuryho pro- stredky Linuxu. Uzivatelum by to prineslo „svobodu“ lokal- nho zpracovan posty, snadne ukladan prloh dopisu, rych- le startujc program, nepotrebujc sluzby casto problema- tickeho telnetu a bezproblemovou transparentn podporu cestiny. To samozrejme nemohlo nezustat nepovsimnuto a tak bych vas rad seznamil s resenm, ktere pouzil Mi- lan Kerslager. Vyhodou je i to, ze budete moci pouzt Linux i na mnoho dalsch funkc, pro ktery byste jinak potrebovali dals stroj.
Budete potrebovat emulator sluzeb serveru Novell Ne- tware, ktery se pod Linuxem jmenuje Mars nwe. Dale sa- mozrejme fungujc IPX na stanicch a Pegasus mail. Mars na Linuxu asi mate, je soucast beznych distribuc, jak se instaluje IPX na stanice je popsano v dokumentaci Marsu.
Pegasus mail pro DOS (spolu s pconfig.exe) najdeme na URL: (1)
Doporucuji vsak pouzvat spustitelny soubor z posledn preview, podle nasi zkusenost je dostatecne stabiln a spo- lehlivy: (2)
9
lan posty do Internetu
Instalace Pmailu spocva v rozbalen do adresare, ktery si vyberete. Potom nastavte spustenm programu pcon- fig.exe cesty k adresari pro postu, jmeno serveru a po- dobne, tato cast je popsana v konfiguraci serveru. Spus- tte program pmail.exe a kouknete se jak funguje. Pri tom vznikne v postovnm adresari soubor pmail.ini, ten si prohlednete, nastavte konfiguracn volby podle vlast- n uvahy, predevsm ale nastavte jako kodovan msto ISO-8859-1 ISO-8852-2. Potom soubor okoprujete pod na- zvem pmdflts.ini do adresare, kde je ulozen pmail.exe a smazete nepouzite konfiguracn parametry. Podle teto sa- blony se budou zakladat konfigurace uzivatelu. Pro korekt- n funkci cestiny bude jeste potreba stahnout ceskou pod- poru ze stranek pana Jirho Kuchty na (3) nebo ze stejneho adresare odkud jste stahli zakladn instalaci pmailu. Insta- lace popsana tamtez. Tm mame pmail funkcn a dame se do serveru.
Na serveru je konfigurace nasledujc, Pmail um odcho- z postu smerovat do tiskove fronty nebo do sdleneho ad- resare. Pro nasi potrebu je vyhodny sdleny adresar, pro- toze do nej Pegasus odchoz dopisy jednoduse umst jako soubory, ktere muzeme snadno zpracovavat skriptem. In- formace o umsten tohoto adresare je ulozena v bindery databazi a tak se nemusme starat o jednotlive konfigura- ce pro kazdeho uzivatele zvlast’. K jejmu nastaven slouz program pconfig.exe, ktery je soucast distribuce Pega- sus mailu. Toto nastaven respektuj obe verze Pegasa (DO- Sova i pro Windows). Jako SUPERVISOR (ekvivalent roo- ta na serveru Novell) spustme pconfig.exe a nastavme v menu: „SMTP Internet mail Interface:“
Spool interface?: Y Output path: SYS:MAIL\SMTP Enabled?: Y Preferred?: N Use always?: N This server’s name: server.domena.cz Our time zone: +0100 MET Organization: Nejake jmeno nas organizace
Umsten spool adresare je prakticky libovolne, pokud ho chceme skryt, nen spatne ho umstit jako klasicky mai- lovy adresar do SYS:MAIL. Uzivatele potrebuj do tohoto adresare pouze pravo C (Create), coz je v Linuxovem pro- stred drwx-wx-wx. Polozka „This server’s name“ urcuje, co je pridano za jmeno a zavinac v adrese odeslatele. Mu- ze to byt konkretn jmeno stroje nebo jen domena — zale- z na konfiguraci naseho postovnho systemu. Casova zona je ponechana na nas. Uvedena hodnota je stars, posledn
Linuxove noviny 06/98
$mail_dir = "/home/nwserv.sys/mail/user"; $spoll_dir = "/var/spool/mail";
sub cnm_from_file { $number = 0; $close = 0; while ( $line = <VSTUP> ) { chop ($line); if ( $line =~ /^From / ) { while ( -e "${mail_dir}/${user_name}/${number} $number++;
} if ( $close != 0 ) { close (VYSTUP);
} else { $close = 1;
} if (! open (VYSTUP, ">${mail_dir}/${user_name} { print "nemohu zapsat do souboru ${mail_dir}/${user_name}/${number}.cnm\n"; r
} else { print " vytvarim ${user_name}/${number}.cnm
} } print VYSTUP "$line\r\n";
} close (VYSTUP); return 0;
while ( $user_name = readdir(SPOOL) ) { if ( -f "${spoll_dir}/${user_name}" && -s "${spoll_dir}/${user_name}") { rename ("${spoll_dir}/${user_name}", "${spoll_dir}/${user_name}.lock") || \
die "nemohu prejmenovat soubor ${spoll_dir} open (VSTUP, "${spoll_dir}/${user_name}.lock") |
die "nemohu otevrit soubor ${spoll_dir}/${u if ( &cnm_from_file ) { close (VSTUP); rename ("${spoll_dir}/${user_name}.lock", "${spoll_dir}/${user_name}");
} else { close (VSTUP); unlink ("${spoll_dir}/${user_name}.lock") || \
die "nemohu smazat soubor ${spoll_dir}/${ }
} } exit 0;
Vypis c. 2: Tr
dobou se setkavam se zkratkou CEST, ale jiste si vybere- te format dle vlastn uvahy. Mezi letn a zimn casovou zo- nou muste prepnat „rucne“. Jmeno organizace je volitelne a bude take pridano do hlavicek odeslanych dopisu.
Mel bych se take zmnit o bezpecnosti. Obvykla situace je takova, ze vsichni uzivatele maj pravo zapisu do pos-
10
.cnm" ) {
Linuxove noviny 06/98
to muze byt neprjemne. Resenm muze byt odebran to- hoto prava a ponechan jedineho prstupneho adresare pro vsechny uzivatele — spool adresare pro odchoz dopisy. Pak je mozne dorucit vsechny dopisy jen pres extern postovn system (nas script nebo Mercury) a odstranme tak zm- nene potencialn nebezpec. V tomto prpade je vsak nutne nastavit v pconfig.exe volbu „Use always?“ na „Y“, aby se Pegasus nepokousel mstn postu dorucovat prmo, ale pouzil spool adresar.
Cela finta, jak postu prijmat a odeslat, je realizovana dvema scripty. Jiste existuj i elegantnejs resen pres pro- cmail a podobne, ale tohle je vyzkousene a funkcn.
Zacneme tm jednodussm scriptem, ktery slouz na ode- slan posty do internetu. Je na vypise Script pro odeslan posty do Internetu.
A co vlastne dela? Mus zajistit predan posty ze sdlene- ho adresare do fronty sendmailu. Pmail odeslanou pos- tu uklada do adresare, kteremu se v pconfigu rka spool directory, v nasem scriptu je to SMTP DIR a skript z nej vybere vsechny soubory a v nich nalezne polozku From: a To: (tyto polozky jsou v souboru dvakrat, jednou pro Mercuryho a podruhe v tele zpravy, script vybra prvn va- riantu, druha nemus byt napr. u BCC: validn, z tela zpravy je vybrano From: ale jen pro diagnosticke ucely). Pote je vyvolan program sendmail, ktery postu uloz do fronty.
A ted’ slozitejs script Trden posty. Ten funguje takto: Vybra postu z adresaru /var/spool/mail/jmeno
a rozlame ji na jednotlive soubory. Z tech vyrob *.cnm soubory, ktere uloz do postovnho adresare uzivatele. Vo- l trochu odlisny postup nez Pmail, vytvar soubory 0.cnm, 1.cnm a pokud jiz takovy existuje, inkrementuje nazev, do- kud se netref do volne pozice. Mail v unixovem mailboxu zacna ΥFrom jmeno\ od zacatku radku. (Nen tam dvoj- tecka.) Aby se nemohlo stat, ze dopis obsahujc od zacat- ku radku From bude rozdelen, je pred ulozenm do mail- boxu From quotovano >From , tzv. vranu je tedy potre- ba odstranit pred ulozenm do cnm souboru. Script se ne- zabyva zamykanm mailboxu a jednoduse frontu prejme- nuje na *.lock. Po zpracovan je posta na linuxu sma- zana. Script vyuzva toho, ze Mars zaklada v postovnm adresari adresar user s adresari dle jmen uzivatelu a lin- kuje je oproti adresarum MAILncislo_uzivatele. Dal- sm predpokladem uspesneho behu je, ze uzivatele maj na Novellu a v Linuxu stejna jmena, a ze vytvorme link root->supervisor, nebo budeme postu pro roota forwardo- vat jinemu uzivateli (klasickym souborem ~/.forward). Vytvoren linku povolme marsu v sekci 16, konfiguracn- ho souboru Marsu, kde nastavme hodnotu bud’ 1 nebo 2. Ceska dokumenace k Marsu je na (4).
A ted’ jiz tresnicka na dortu, jak to funguje cele dohro- mady. Nejdrve spustme prvn script. Ten nam preda pos- tu od uzivatelu do fronty, potom nahodme sendmail, UU- CP, ETRN ci co vlastne pouzvame a postu odesleme a pri- jmeme. A do tretice spustme druhy script, ten nam postu rozdel mezi jednotlive uzivatele. Prvn script nen spatne poustet pravidelne a casto z cronu. Pmail totiz i lokaln postu, pokud obsahuje @ uklada do fronty pro odeslan do Internetu.
A ma to nejake chyby? Jiste, nemohu tvrdit, ze Pmail je naprosto bezchybny produkt, ale pri beznem pouzvan jich moc nenajdete. Pmailu pro Windows treba nechutnaj nektere specialn prpady MIME kodovan, treba BASE64 v hlavickach, zato ale narozdl od Netscape mailu um ode- slat hlavicky s diakritikou.
11
Za urcitou zavadu prezentovaneho resen lze povazovat to, ze k poste nen nadale mozne pristupovat pres POP3 a IMAP4 protokol. O podpore pro POP3 se uvazuje, o IMA- Pu zatm ne, ale je zde samozrejme moznost, ze tento cla- nek prilaka nekoho, kdo by mel zajem s nami resen dale rozvjet a zdokonalovat. Kdo v, treba se jednou stane inte- graln soucast MARS NWE. Pokud mate pocit, ze mluvm prave o Vas, urcite se nam ozvete.
1 Pegasus Mail pro DOS http://risc.ua.edu/pub/network/pegasus/pmail340.zip
2 Pegasus Mail Preview ftp://risc.ua.edu/pegasus-previews/pmdos pv.zip
3 Ceska podpora pro Pegasus Mail http://www.fee.vutbr.cz/~kuchta/pmail
4 Ceska dokumentace k MARSu http://www.spsselib.hiedu.cz/homedirs/~kerslage/manuals/linux/
Jak psat lokalizovane programy Michael Mraka a Vladimr Michl, 9. cervna 1998
Tento clanek by mel prinest (pokud mozno jednoduchy) navod, jak psat programy snadno pouzitelne v ruznych ja- zykovych mutacch.
Prvnm predpokladem pro spravne chovan takoveho programu je fungujc lokalizace. Vetsina soucasnych dis- tribuc Linuxu je vystavena nad knihovnami glibc, kte- re by jiz s lokalizac nemely mt problemy. Zda je to- mu skutecne tak, lze zkontrolovat pohledem do adresare /usr/share/locale, ktery by mel obsahovat podadre- sar cs CZ* (na mem poctaci je to cs_CZ.ISO-8859-2) a v nem soubory LC COLLATE, LC CTYPE, LC MONETARY, LC NUMERIC, LC TIME a adresar LC MESSAGES. Pokud to- mu tak nen, ale v systemu existuje alespon definicn sou- bor cs CZ (byva standardne zahrnut do balku glibc jako /usr/share/i18n/locale/cs CZ), je mozne lokalizacn soubory pomoc prkazu
$ localedef -i cs_CZ -f ISO-8859-2 \ cs_CZ.ISO-8859-2
vygenerovat. Pokud system nevlastn ani uvedeny defi- nicn soubor, je vhodne zact naprklad na adrese (1), kde najdete vce informac :-).
Nyn pristupme k tvorbe vlastnho programu Prklad lc example.c (. . .). Nejprve je potreba program primet, aby pouzval lokalizaci; to provedeme pomoc funkce setloca- le(LC ALL, "") (viz funkce init()) — parametry uve- dene v prkladu sdel programu, aby pouzil nastaven urce- ne promennymi prostred LC * a LANG. Dale jiz stac pou- zvat standardn knihovn funkce pro praci s lokalizovanym prostredm.
Pro jednotlive kategorie jsou k dispozici nasledujc funk- ce:
• LC COLLATE — lexikograficke trden (viz funkce lc collate()).
• int strcoll(const char *s1, const char *s2) — porovnavan retezcu s ohledem na lokaliza- ci; syntaxe a navratove hodnoty odpovdaj funkci strcmp().
• size t strxfrm(char *dest, const char *src, size t n) — transformace retezce tak,
#define LOCALEDIR "/usr/share/locale" #define PACKAGE "lc_example"
#define BUF 80 #define _(str) gettext(str)
void init() { setlocale(LC_ALL,""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE);
}
char *words[] = {"planka", "plane", "Plasil", "ci char *p; int i,j;
for (i = 0; i < N; i++) for (j = 0; j < N; j++) {
} }
for (i = 0; i < N; i++) printf(" %s", words[i]);
printf("\n"); }
void lc_time() { char buf[BUF]; time_t t = time(NULL);
}
aby porovnan dvou takto vzniklych retezcu pomo- c strcmp() melo stejny vysledek, jako porovnan puvodnch pomoc strcoll().
• LC CTYPE — rozdelen znaku do trd (mala a velka psmena, oddelovace, csla, bla msta, . . .) (viz funkce lc ctype()).
12
• int isascii (int c) — 7-bitova unsigned char hodnota z ASCII.
• (podobne iscntrl(), isdigit(), isgraph(), islower(), isprint(), ispunct(), isspa- ce(), isupper(), isxdigit())
Linuxove noviny 06/98
printf(_("Wrote some text, please:\n")); fgets(buf, BUF, stdin);
for (i = 0; i < BUF && buf[i] != ’\0’; i++) { if (isalnum(buf[i]))
buf[i] = ’+’; else if (isspace(buf[i]))
buf[i] = ’_’; else
}
(int) 12345678, (float) 1234567.1235678); }
void lc_monetary() { char buf[BUF];
strfmon(buf, BUF, _("You have forgotten to pay %n the author of this program.\n"), (double) 1234);
printf("%s", buf); }
}
• LC TIME — casove udaje (viz funkce lc time()).
• size t strftime(char *s, size_t max, const char *format, const struct tm *tm) — nahrad sekvence %x v retezci format ca- sovymi udaji podle casove zony a zvolene lokalizace. Napr. %A = den v tydnu, %a = zkratka dne v tyd- nu, %B = mesc, . . .„Nahrazuje“ funkce ctime(), asctime().
• LC NUMERIC — formatovan csel (viz funkce lc numeric()).
• int printf(const char *format, ...) — pokud %-sekvence pro csla obsahuj apostrof (napr. %’d) vytiskne oddelovac desetinnych mst a ti- scovek s ohledem na lokalizaci (nefunguje az v libc.5).
• LC MONETARY — formatovan peneznch informac (viz funkce lc monetary()).
13
to\
ample.c (pokracovan)
• ssize t strfmon(char *s, size_t maxsi- ze, const char *format, ...) — nahrad sekvence %x peneznmi udaji podle zvolene loka- lizace. Ve formatovacm retezci lze zadat: %i = me- zinarodn symbol meny s penezn castkou (CZK), %n = narodn symbol meny s penezn castkou (Kc). Penezn castky mus byt csla typu double nebo long double. O teto funkci se bohuzel v info do- kumentaci nedozvte, navc v libc.5 tato funkce vubec nebyla. Vce informac naleznete v souboru strfmon.man3.
Pokud by pro nekterou z kategori neexistovaly stan- dardn funkce, je mozne formatovan udelat „rucne“ za po- moc struktury lconv zskane z funkce localeconv().
Samostatnou kapitolu pak tvor preklad (nejen chybo- vych) zprav programu. V systemech s libc.6 (glibc) se provad pomoc balku gettext. (Ve starsch systemech s libc.5, prpadne na jinych operacnch systemech se k tomuto ucelu pouzvaj funkce gencat; vce viz (2).)
Linuxove noviny 06/98
To, ze program ma pouzvat katalog s ceskymi preklady zprav (kategorie LC MESSAGES), uz akceptoval pri volan setlocale(); je ovsem potreba jeste specifikovat jme- no katalogu. To udelame na zacatku programu volanm funkc bindtextdomain(package, localedir) — ces- ta ke katalogu — a textdomain(package) — jmeno ka- talogu, ktery pouzvame (viz funkce init()). Vsechny re- tezce, ktere maj mt svuj ekvivalent v katalogu, je nutne „prohnat“ funkc gettext() (viz funkce invite()).
Jeste zbyva napsat ceske preklady zprav. Nejprve je po- treba pomoc programu xgettext vygenerovat katalog ob- sahujc vsechny originaln zpravy. Ve vzorovem programu byl k tomu pouzit prkaz
$ xgettext --default-domain=lc_example \ --output-dir=. --add-comments --keyword=_ lc_example.c
kde
• --output-dir=. – clovy adresar
• --keyword= – msto gettext pouzij klcove slovo
Nyn lze ke kazdemu retezci pripsat za klcove slovo msgstr prslusny preklad. Pokud by vas katalog byl vets je velmi vyhodne pouzvat na preklad Emacs v tzv. po-modu (potrebny kod do Emacsu je prilozen v balku gettext). Hlavn vyhoda je, ze po-mode um na pozadan zobrazit prmo msto zdrojoveho kodu, kde se zprava nachaz (kla- vesa s ). Dale umoznuje kontrolu, zda jsou zpravy dobre prelozeny (zda sed pocet formatovacch znacek, zda zpra- vy zacnaj a konc novym radkem stejne), automaticke vy- plnen uvodn hlavicky i s datem revize (vse Shift-v ). Samozrejme editovat preklad lze pomoc klavesy Enter , ukoncen Ctrl-c Ctrl-c . Pokud se vam v katalogu objev zprava oznacena jako „fuzzy“, pak by tato zprava mela byt neuplne prelozena. Toto oznacen lze odstranit klavesou Tab . Zpravu lze jako „fuzzy“ oznacit pomoc BackSpace .
Pro instalaci po-modu je treba umstit sou- bor po-mode.el (po-mode.elc) do adresare /usr/share/emacs/site-lisp a nasledne do souboru $HOME/.emacs pridat:
(setq auto-mode-alist (cons ’("\\.po[tx]?\\’\\|\\.po\\." . po-mode)\ auto-mode-alist))
(autoload ’po-mode "po-mode")
$ msgfmt -v -o lc_example.mo lc_example.po
ho prelozme do binarn podoby. Pak uz sta- c jen presunout lc example.mo do adresare /usr/share/locale/cs CZ*/LC MESSAGES, zkom- pilovat program a vyzkouset.
$ gcc -o lc_example lc_example.c
14
Utery - to nesnasm! Csla: 12 345 678 1 234 567,125000 Napiste nejaky text, prosm: Ums cesky, jezku? ++++_+++++-_+++++-_ Zapomnel jste zaplatit 1 234,00Kc autorovi \ tohoto programu.
$ LC_ALL=en_US ./lc_example Hello! Sorted words: chroust cikada Plasil \ plane planka Tuesday - I hate it! Numbers: 12,345,678 1,234,567.125000 Wrote some text, please: Ums cesky, jezku? ++--_-++++-_++-++-_ You have forgotten to pay $1,234.00 to the \ author of this program.
Je videt, ze funkce strfmon() zatm nen dokonala (zbytecna mezera na zacatku, mezi castkou a Kc nen me- zera, ac by podle definice v souboru cs CZ byt mela), stej- ne jako funkce printf() (desetinna csla nejsou delena do skupin). Casem se ale tyto chyby urcite vylad.
A na zaver jeste jedna uzitecna funkce, ktera se muze pri lokalizaci hodit a to
#include <langinfo.h> char *nl_langinfo(nl_item item);
Tato funkce vrat hodnotu, kterou po n pozaduje- me – napr: prvn den v tydnu nl langinfo(DAY 1) nebo prvn mesc v roce nl langinfo(MON 1). Argu- menty ktere muzete pozadovat naleznete v souboru /usr/include/langinfo.h.
1 Definicn soubory pro ceske locales ftp://ftp.fi.muni.cz/pub/localization/locale
2 Czech-HOWTO ftp://ftp.fi.muni.cz/pub/linux/local/czech-howto/
V dnesnm dle naseho serialu budu pokracovat ve vykladu problematiky tvorby RPM balku. Nejprve doplnm o ne- ktere podrobnosti syntaxi prkazu rpm -b, a pak zacnu detailneji rozebrat strukturu spec-souboru.
rpm -ba — detaily
V predchozm csle jsem uvedl zakladn zpusoby pouzit prkazu rpm -b pro stavbu RPM balku. Nyn uvadm dals, mene uzvane volby:
• --buildarch architektura — vytvor RPM balk pro danou architekturu msto architektury, na ktere prave system bez. Lze pouzt zejmena pri cross-kompilaci.
• --buildos operacn system — totez, ale zmen ope- racn system, pro ktery bude balk urcen.
• --test — vytvor skripty pro jednotlive faze kompi- lace (uloz je do adresare /var/tmp) a skonc. Tvur-
Linuxove noviny 06/98
ce balku pak ma moznost si tyto skripty prohlednout a prpadne i editovat.
• --buildroot adresar — pro instalaci balku se pouzi- je tento adresar, msto adresare uvedeneho v hlavicce BuildRoot: ve spec-souboru.
Uvnitr spec-souboru
Zamerme se nyn na syntaxi spec-souboru, ktery rd ce- lou vystavbu RPM balku. Jedna z vec, kterou spec-soubor muze obsahovat, je komentar. Komentare zde zacnaj zna- kem krzek (#) na zacatku radku a pokracuj do konce rad- ku. Komentare jsou programem rpm ignorovany.
Dals cast je hlavicka. Syntaxe se trochu podoba hlavic- ce internetove zpravy podle RFC 822: Hlavicka je umste- na na zacatku spec-souboru a obsahuje polozky ve forme radku. Kazdy radek definuje hodnotu jednoho tagu (cesky atributu? Asi ne.) a ma tuto syntaxi:
tag:hodnota U jmena tagu se nerozlisuj mala a velka psmena a kolem
dvojtecky mohou byt ble znaky (mezery, tabulatory, . . .). Na druhe strane syntaxe hodnoty tagu zavis na konkretnm tagu a obvykle se rozlisuje velikost psmen. Nektere tagy mohou mt jen cselne hodnoty, nektere nesmej obsahovat urcite znaky (treba pomlcku), atd. Nyn uvedu, ktere tagy system RPM rozpoznava, a jak je pouzt.
Tagy pro pojmenovan balku
• name — nazev softwaru, ktery se bal do balku. Dopo- rucuje se, aby tento tag byl stejny (vcetne velikosti ps- men), jako u zdrojoveho archvu prslusneho softwaru. Prklady: gcc, ImageMagick.
• version — verze softwaru (to jest verze specifikovana autorem softwaru). Prklady: 2.7.2.1, 19980302be- ta.
• release — verze RPM balku daneho softwaru. Casto lze pomoc release rozlisit verze RPM balku pro ruzne distribuce nebo ruzna prostred. Takze pro secure shell s RSAREF knihovnou muze byt release 2us, cili pro pouzit ve Spojenych statech. Mezinarodn verze balku pak muze mt tento tag nastaveny na hodnotu 2i.
Popisne tagy
• summary — jednoradkova informace o balku a je- ho pouzit. Jiz drve jsem uvedl, ze podrobnejs in- formaci lze nalezt v sekci %description prslusne- ho spec-souboru. Prklad: Secure Shell -- en- crypts network communications.
• copyright — kratka informace o podmnkach sren balku. Nejde o kompletn licenci, ale o jej shrnut ne- bo nazev. Prklady: GPL, BSD, distributable, post- cardware.
• distribution — nazev distribuce, do ktere balk pat- r. Prklady: Red Hat Linux Rembrandt, Red Hat Power Tools 5.0.
• icon — jmeno souboru, ve kterem je ulozena ikona balku. RPM system tento tag nepouzva, ale muze byt
15
pouzit naprklad grafickym spravcem balku, jako je na- prklad glint. Jde o graficky soubor naprklad ve for- matu xpm nebo gif.
• vendor — nazev organizace, ktera je zodpovedna za vznik tohoto balku. Prklad: Red Hat Software, Inc..
• url — domovska stranka balku. RPM tento tag nepou- zva, slouz pouze uzivatelum balku jako odkaz na dals dokumentaci prpadne novejs verze softwaru.
• group — tematicka skupina, do ktere tento balk pat- r. Seznam vsech platnych skupin i jejich podskupin lze nalezt v souboru groups v dokumentacnm adresari RPM (obvykle /usr/doc/rpm-verze). Prklady: Lib- raries, X11/Games/Strategy.
• packager — jmeno a kontaktn informace (e-mailova adresa, telefonn cslo) cloveka, ktery konkretn balk vyrobil (prpadne adresa technicke podpory, jde-li o vet- s firmu).
Zavislosti mezi balky
• serial — seriove cslo softwaru. Pro potreby instalace novych verz balku (upgradovan), ale i pro zavislosti mezi balky (kdy balk muze vyzadovat naprklad „balk pam verze novejs nez x.y.z“), je potreba urcit, ktera ver- ze softwaru je novejs nez jina. V nekterych prpadech je vsak „oficialn“ cslovan daneho softwaru natolik kryp- ticke, ze nen mozne algoritmicky urcit, ktere oznacen znamena novejs verzi. Proto je mozne RPM balku pri- radit seriove cslo a toto cslo pouzvat pri (casovem) porovnavan verz namsto skutecneho oznacen verze. Poznamenavam jeste, ze balky, obsahujc tag serial se povazuj vzdy za novejs nez balky bez tohoto tagu.
• provides — jmeno jednoho nebo vce „virtualnch ba- lku“, ktere prslusny balk poskytuje. Nektere balky totiz nepotrebuj ke sve cinnosti jiny konkretn balk, ale urcity typ balku. Naprklad programy pro doruco- van posty mohou vyzadovat existenci programu pro cten posty. A je lhostejne, jde-li o exmh, mutt ne- bo treba gnus. Takovy program pro dorucovan pos- ty pak vyzaduje virtualn balk s nazvem (naprklad) mail-reader. A kazdy program pro cten posty bu- de mt ve svem spec-souboru uveden tag Provides: mail-reader.
• requires — seznam balku, ktere nas balk vyzaduje ke korektn cinnosti. Nektere zavislosti jsou generovany automaticky (zejmena zavislosti na sdlenych knihov- nach a na interpreterech skriptu), jine lze specifikovat tmto tagem. Prklad: requires: pam >= 0.51 rka, ze ke spravnemu provozu daneho balku mus byt v sy- stemu balk pam verze aspon 0.51. Je take mozno vy- zadovat verzi balku podle serioveho csla: requires: playmidi =S~4 vyzaduje jmenovany balk serioveho csla prave 4. Muze zde krome jmena balku byt uve- den i jen soubor, ktery je v systemu vyzadovan pro ko- rektn cinnost balku. Tento zpusob zavislost se speci- fikuje retezcem, ktery zacna lomtkem. Naprklad pos- tovn klient, odeslajc postu na standardn vstup pro- gramu sendmail v podstate nepotrebuje balk send- mail, ale stac jakykoli balk, ktery poskytne program
Linuxove noviny 06/98
/usr/sbin/sendmail. Do spec-souboru se pak na- pse requires: /usr/sbin/sendmail.
• conflicts — seznam balku, ktere jsou konfliktn (to jest nemohou byt v systemu instalovany zaroven) s tm- to balkem. Tento tag nen prlis casto pouzvan, pro- toze vetsina konfliktu je detekovana systemem RPM uz z toho duvodu, ze navzajem konfliktn balky obsa- huj soubory stejneho jmena a tedy nen mozne je pr- mo a zaroven nainstalovat. Prklad conflicts: inn muze byt uvedeno ve spec-souboru news serveru LeafNode, nechce-li tento byt instalovan zaroven se serverem inn.
• autoreqprov — zapna/vypna automaticke generova- n polozek do seznamu requires (sdlene knihovny ze spustitelnych programu a interpretery skriptu) a do se- znamu provides (.so-jmena vsech sdlenych kniho- ven, zabalenych v tomto balku). Povolene hodnoty jsou yes a no.
Tagy architektury a operacnho systemu
• excludearch — upozorn RPM, aby se nepokousel kompilovat balk na vyjmenovanych architekturach, protoze je znamo, ze na techto platformach dany balk nefunguje. Prklad: nen-li balk schopen bezet na 64-bitovych architekturach, muzeme napsat exclu- dearch: alpha sparc64.
• exclusivearch — rka, ze balk muze byt postaven pouze na vyjmenovanych platformach. Naprklad ba- lk dosemu muze bezet jen na procesorech x86, tedy exclusivearch: i386 je na mste.
• buildarchitecture — specifikuje architekturu, pro kterou se balk ma vytvaret, bez ohledu na to, na kte- re platforme momentalne bez program rpm, ktery jej vytvar. Tento tag se pouzva zejmena pro tvorbu bal- ku, nezavislych na architekture. Naprklad balk s fon- ty, ktere jsou pricipialne prenositelne mezi platforma- mi, muze obsahovat tag buildarchitecture: no- arch. Pri pouzit rpm -ba na takovyto spec-soubor na libovolne platforme se vytvor balk s koncovkou no- arch.rpm.
• excludeos — totez jako excludearch, ale tyka se operacnho systemu msto architektury. Prklad: balk WINE by klidne mohl mt excludeos: windows95 :-)
• exclusiveos — analogie k exclusivearch. Prklad: balk util-linux jiste muze mt exclusiveos: li- nux.
• buildos — analogie k buildarchitecture.
Adresare
• prefix — pouzva se pri tvorbe relokovatelnych ba- lku (tj. nezavislych na umsten). Je-li tento tag uve- den, mus kazda cesta v sekci %files zacnat danym adresarem. Relokovatelny balk pak spravce muze in- stalovat do adresare podle sve potreby (naprklad zvo- lit mezi /usr/local a /opt). Vytvorit relokovatelny balk ovsem nen tak uplne jednoduche – samotny soft-
16
ware mus byt nezavisly na umsten. Nesm tedy na- prklad obsahovat zakompilovanou cestu ke konfigu- racnm souborum, PID-souborum a podobne.
• buildroot — s tmto tagem jsme se setkali. Navzdo- ry svemu jmenu neoznacuje adresar, ve kterem pro- bha kompilace, ale adresar, do ktereho skript %in- stall uloz zkompilovane soubory. Je dobre mt ten- to tag v balku, aby i bezny uzivatel mohl provadet je- ho rekompilaci. Typicky se zde uvad jmeno ve stylu /var/tmp/balk-root. Bez tohoto tagu by beznemu uzivateli selhala sekce %install, jelikoz bezny uziva- tel pravdepodobne nemuze zapisovat do adresaru jako /usr/bin nebo /usr/doc. Zaroven s definic toho- to tagu je ovsem nutno upravit skript %install tak, aby instaloval do zde specifikovaneho adresare. Zde jiz tedy nestac proste make install. Casto ale zmena nen az tak slozita. Nekdy postacuje prkaz typu make PREFIX=$RPM BUILD ROOT/usr install.
Zdrojove soubory a zaplaty
• source — jmeno nebo URL, odkazujc na zdrojovy archv, ze ktereho se dany balk vytvar. Tagu sour- ce lze uvest i vce (dals se pak jmenuj source1, source2 atd. Msto source lze take pouzt logic- ky ekvivalent source0. Program rpm z hodnoty to- hoto tagu bere v uvahu pouze cast za poslednm lo- mtkem. Soubor tohoto jmena se hleda v adresari /usr/src/redhat/SOURCES. URL nebo cesta slouz pouze jako odkaz na msto, odkud byl zdrojovy archv zskan. Prklad: balk ssh ma tyto zdrojove soubory:
Source0: ftp://ftp.cs.hut.fi/pub/ssh/\ ssh-1.2.25.tar.gz Source1: ftp://ftp.funet.fi/pub/crypt/mirrors/... Source2: sshd.init.rh50 Source3: ssh.pam Source4: ftp://ftp.cs.hut.fi/pub/ssh/\ ssh-1.2.25.tar.gz.sig
Zde vyjmenovane soubory mohou, ale nemusej byt pouzity ke tvorbe binarnho RPM balku, kazdopadne ale jsou za- razeny do zdrojoveho RPM balku (to je treba prpad vyse uvedeneho source4, ktery obsahuje PGP podpis zdrojove- ho archvu a je distribuovan pouze pro usnadnen overen pravosti tohoto archvu.
• patch — odkazuje zaplatu, pouzvanou pri sestavovan daneho softwaru. Podobne jako u tagu source i zaplat muze byt vce a jsou oznaceny tagy patch0 (coz je ekvivalent tagu patch), patch1, patch2 a tak dale.
• nosource — seznam csel zdrojovych souboru, ktere nemaj byt zarazeny do src.rpm balku. Pokud licen- ce daneho softwaru nepovoluje sren zdrojove podo- by balku v jine nez puvodn podobe, nebo pokud z ji- neho duvodu nechceme nektery ze zdrojovych archvu zahrnout do zdrojoveho RPM souboru, napseme jeho cslo do tagu nosource. Pokud si pak uzivatel chce postavit binarn RPM soubor, stac prslusny zdrojovy archv ulozit do /usr/src/redhat/SOURCES a spus- tit rpm --rebuild na prslusny src.rpm soubor. Pr- klad: pokud by naprklad RPM balk pgp byl distribuo- van z USA, podle tamejsch zakonu by se vlastne mohl
Linuxove noviny 06/98
distribuovat jen predpis ke kompilaci — zdrojovy RPM soubor. Pouzily by se tyto tagy:
Source0: ftp://.../pgp50.tar.gz Source1: ftp://.../rsaref.tar.gz NoSource: 0 1
• nopatch — analogie k nosource pro soubory se za- platami.
Takto tedy vypadaj jednotlive polozky hlavicky spec-souboru. V prst casti se podrobneji zamerme na dals sekce tohoto souboru a na jednotlive faze tvorby RPM balku.
Zasmali jsme se! Pavel Jank ml., 12. cervna 1998
Ano, i v cervnu jsme se smali. Ja osobne naprklad pri horlive diskusi na tema zda diakritika v konferenci li- [email protected] ano ci ne, zda se pokusme zmenit uznava- nou normu, zda ma ci nema pri bootovan Linuxu na ob- razovce mrkat tucnak, jestli ma kernel mt neco jako /proc/config, ktery bude obsahovat aktualn konfigura- ci kernelu, kdy uz Linus konecne vyda dals pre-patch a kdy uz konecne bude opravena chyba pri make menuconfig a zvuk v kernelu ([email protected]), jestli ma pdfTEX podporovat i jine graficke formaty nez PNG a JPG apod.
Mame to vubec zapotreb se takhle hadat? Ja jsem jiz zjistil, ze nikoli a vzdy msto toho, abych podobne „valky slov“ cetl a zapletal se tak do diskus, radeji neco udelam. Nekdy uz ale tyto nesmysly vydrzeti nemohu a potom se opet smeju, ale tentokrate jiz sam sobe. Jsem vlastne stejny jako oni. . . Ach jo.
Objevil jsem zajmavy obrazek. Uhadnete, jak se jmenu- je tucnak na obrazku? Pokud ne, odpoved’ naleznete na adrese (1).
V minulem csle Linuxovych novin jsme vyhlasili malou soutez. Jestlipak si pamatujete, jak znela soutezn otazka? Pokud ano, ctete dale, pokud ne, prectete si minule cslo. Shromazdilo se mi nekolik odpoved, z tech nejvtipnejsch vybram:
17
Co se stane, kdyz Microsoft uvoln zdrojove kody OS Windows? Hackeri odstran nestabiln cast a Billovi bude zase stacit 640kB. Miro Bobovsky
Co se stane? To je jasny: Vetsina programatoru Microsoftu si bude muset najt uplne jine zamestnan, protoze jako programatory uz je nikdo nezamestna. Texty budou vydany knizne a zapsany do Guinnessovy knihy rekordu jako nejdels vtip na svete. Petr Zima
Co se stane? Bohuzel tm asi zlikviduj vetsinu vyvojaru otevrenych systemu, protoze ti si bud’:
• zlom vaz od vehementnho kroucen hlavy
• uchechtaj se k smrti
• uplacou se k smrti
• nebo prasknou vzteky, kdyz najdou kousky svych vlastnch kodu naiplementovanych do MS Windows zcela nefunkcnm zpusobem. . . Pavel Martak
Poslednm zajmavym prspevkem je neobvykly soubor, ktery najdete pri Linuxovych novinach. Jmenuje se Co- SeStane.mpg a jedna se o Mpeg Video. Prosm prohled- nete si jej a radujte se, vzdyt’ na svete je tolik krasnych vec (pravda, co muze byt hezcho nez Linux 2.1.106 na Quad Pentiu II ;-). Tento prspevek, ci spse jeho autor — v nas soutezi zvtezil. Prosm jej, aby mi napsal.
1 Tucnak http://www.chalice.gen.nz/linpic/
Linuxove noviny a jejich sren
Linuxove noviny vydava Ceske sdruzen uzivatelu operac- nho systemu Linux (1) pro sve prznivce a sympatizan- ty. Vlastnkem autorskych prav k tomuto textu jako celku je Pavel Jank ml. ([email protected]). Autorska prava k jednotlivym clankum zustavaj jejich autorum.
Tento text muze byt sren a tisten bez omezen. Pokud pouzijete cast nektereho clanku zde uverejneneho v ji- nych dlech, muste uvest jmeno autora a cslo, ve kterem byl clanek uverejnen.
Linuxove noviny jsou otevreny kazdemu, kdo by chtel nasim ctenarum sdelit neco zajmaveho. Prspevky (ve formatu cisteho textu v kodovan ISO 8859-2) poslej- te na adresu (2). Autor nema narok na financn odmenu a souhlas s podmnkami uvedenymi v tomto odstavci. Vy- davatele si vyhrazuj pravo rozhodnout, zda Vas prspevek uverejn, ci nikoli.
Registrovane znamky pouzite v tomto textu jsou ma- jetkem jejich vlastnku.
Chtel bych podekovat Fakulte informatiky Masaryko- vy university v Brne, INET, a.s., Juraji Bednarovi a spo- lecnosti OptiCom za poskytnut diskoveho prostoru pro Linuxove noviny.
Linuxove noviny muzete najt na akademicke sti CESNET (3), na sti IBM Global Network na adrese (4), na serveru casopisu Netacik (5), ktery je pripojen do slo- venskeho SIXu, prpadne na serveru spolecnosti OptiCom (6).
Linuxove noviny jsou k dispozici take ve formatu HTML na adrese (7).
1 Ceske sdruzen uzivatelu operacnho systemu Linux http://www.linux.cz/czlug
2 Adresa redakce mailto:[email protected]
4 Linuxove noviny na sti IBM Global Network ftp://ftp.inet.cz/pub/People/Pavel.Janik/noviny
5 Slovenske zrcadlo Linuxovych novin ftp://netacik.sk/pub/linux/cz-noviny
6 Linuxove noviny – OptiCom http://www.mathew.sk/noviny
7 Linuxove noviny ve formatu HTML http://www.linux.cz/noviny
Sefredaktor: Pavel Jank ml. mailto:[email protected]
sazba: Ondrej Koala Vacha mailto:[email protected] jazykove korekce: Bohumil Chalupa mailto:[email protected] preklady: Hanus Adler mailto:[email protected] prevod do HTML: Pavel Juran mailto:[email protected]
Abstract
Zhodnocení
Grasp
Jak psát lokalizované programy
Adresáøe

Recommended