Samba 1.9.18 a cestina - shrnuti

Leos Bitto bitto na atrey.karlin.mff.cuni.cz
Pondělí Leden 26 15:22:57 CET 1998


Vzhledem k tomu, ze se tu posledni dobou zase mnozi dotazy ohledne Samby a
cestiny, napisu sem shrnuti vseho co o tom vim. A beda jestli to pak jeste
nekomu nebude jasne! :-)

Jde o dva ruzne problemy. Prvni (podle me dulezitejsi) se pokousel resit
nejprve Pavel Lisy a pak ja. Jde o to, ze windows-klienti pozaduji, aby
byl server "case-insensitive" - tedy aby kdyz po nem pozaduji
otevreni souboru "psaníčko.txt" a on takovy soubor nema, ale zato ma
soubor "PsanÍČKO.tXt", aby pouzil ten. U znaku ze spodni pulky ascii
tabulky problem nebyl nikdy, ale u horni pulky je to horsi. Pro kazdou
kodovou stranku je totiz potreba jine mapovani mezi malymi a velkymi
pismeny.

Vzhledem k tomu ze s kodovou stranku 852 (to je ta co pouzivaji vsechny
ceske windows) se v Sambe az do verze 1.9.18 nepocitalo, nebylo mozne na
takto sdilenych discich bezproblemove ukladat soubory s diakritikou ve
jmene. No, presneji, ukladat slo, ale obvykle ty soubory nesly zpetne
precist. ;-)

Casto se v teto konferenci opakoval dotaz "Proc nemuzu pruzkumnikem udelat
novy adresar?". Bylo to proto, ze adresar se nejdrive vytvori se jmenem
"Nová složka" a pak se prejmenovava. Vytvoreni se povede, prejmenovani se
nepovede. Adresar zustane pod nazvem "Nová složka" a neni s nim mozne
cokoliv delat, je treba ho smazat na unixu. 

Prvni se tento problem pokousel resit Pavel Lisy a napsal do smb.conf
strasne dlouhy radek "valid chars = ...". Podle dokumentace k Sambe by to
melo problem resit. Bohuzel ja jsem s tim mel jine zkusenosti. 90% ceskych
znaku skutecne fungovalo, ale zbyvajicich 10% (byly to ty co koliduji mezi
Latin 1 a Latin 2) ne. Dosel jsem k nazoru ze je to tim, ze interni
prevodni tabulky co jsou natvrdo v Sambe (USA = codepage 437 a Latin 1 =
codepage 850) koliduji s nastavenim "valid chars = ..." a nejde s tim nic
delat.

Takze jsem do Samby natvrdo ke dvema stavajicim kodovym strankam pripsal
treti - codepage 852 alias Latin 2. Vyzadovalo to editaci zdrojaku a nove
prelozeni. Tenhle patch je dostupny na adrese
ftp://ftp.fi.muni.cz/pub/localization/samba/sambacz.diff a mel by fungovat
se vsemi verzemi 1.9.17. Ten patch nejen ze zavadi podporu Latin 2 ale
nastavuje ji i jako default. Neco podobneho (bez toho nastavovani
defaultu) jsem poslal i autorum Samby, kteri to trosku pozmenili a
zahrnuli do verze 1.9.18, kde je podpora ruznych kodovych stranek uz
vyresena mnohem lepe. Kazde kodove strance odpovida jeden konfiguracni
soubor, takze neni uz problem prislusny soubor dopsat a zacit ho pouzivat. 
Tedy zadne rekompilace cele Samby. Viz soubory codepage_def.* u zdrojaku a
man make_smbcodepage. Ve standardni distribuci jsou podporovany 4 kodove
stranky: 437 (USA), 850 (Latin 1), 852 (Latin 2) a 932 (japonske SJIS -
tomu nejak nerozumim, ale to je jedno). A jak se pise v tom manu, "Users
are encouraged to write ascii codepage definition files for their own code
pages and donate them to samba-bugs na samba.anu.edu.au." Neboli co si
napisete, to budete mit. Ja jsem uz ceskou kodovou stranku napsal, takze
je vystarano.

Dusledkem toho je, ze ve standardni instalaci Samby 1.9.18 a novejsi staci
do souboru smb.conf napsat "client code page = 852" a cestina FUNUJE! Jak
proste, mily Watsone. Ve verzi 1.9.17 slo dosahnout stejneho efektu s
pouzitim pozmenenych zdrojaku Samby (viz vyse). Ve starsich verzich jsem
se o cestinu nikdy nepokousel.

Dalsi problem se snazi resit Dan Ohnesorg. Tomu vadi, ze na unixu jsou ty
soubory ulozeny s "divnymi" znaky ve jmenech. Pokud mate v unixu
nainstalovanou korektne fungujici cestinu, jiste pouzivate jediny unixovy
standard pro cestinu, a to ISO Latin 2 (ISO-8859-2). No a rad byste videl
soubory nahrane z windows pres sambu se spravnymi nazvy i pokud se na ne
koukate primo z unixu, ne jen kdyz se na ne koukate opet pres sambu z
windows. Ale to v nynejsi situaci nevidite. Dan Ohnesorg se tedy Sambu
snazi presvedcit, aby pri zapisu jmen souboru na disk delala preklad PC
Latin 2 -> ISO Latin 2 a pri cteni naopak. Pokud vim tak ve verzi 1.9.17
mu to fungovalo a do verze 1.9.18 to bude prepisovat hned az na to najde
cas (viz jeho mail sem do konference). 

Rozhodne je to spravna snaha, ale bohzel na neco takoveho autori Samby moc
nepamatovali, takze to bude slozitejsi nez to co jsem delal ja. Ale
protoze mame zdrojaky k dispozici, nic neni nemozne! A verim ze i to
nekdy v pristich verzich bude Samba umet. Neni problem to udelat ale je
problem to udelat "hezky", aby se to autorum Samby libilo a zahrnuli to do
standardni distribuce. 

Koukam ze jsem se nejak rozepsal. No doufam aspon ze to k necemu bylo,
odted az se me nekdo zase zepta na cestinu v Sambe tak ho odkazu na tenhle
text, je tu souhrnne popsane snad vsechno. A je to.




Leos Bitto



Další informace o konferenci Linux