Mozvoikko 2.0.1 RC 1 Mac OS X:lle, Windowsille ja nyt myös PowerPC:lle

Suomen kielen oikoluvusta, eli mozvoikosta, on nyt saatavilla 2.0.1 RC 1 versio, joka tuo korjauksen oikoluvun kielen vaihtoon liittyvään ongelmaan. Korjaus mozvoikkoon julkaistiin jo vuoden vaihteessa, mutta kaikenlaisen muun ohessa jäi lisäosan paketointi odottamaan. Kun viikonloppuna sain lisäksi viriteltyä Windows 7:lle toimimaan Visual C++ 2005 Express Editionin, niin päivitin samalla libvoikon kirjastot 3.4.1 -versioon. Mozvoikon uusia kehitysversioita voi seurata Twitterissä #mozvoikko -tagilla.

Lisäosa löytyy testattavaksi ”Voikko – Suomen kielen oikoluku” -sivultaan ja myöhemmin myös Firefoxin lisäosahakemistosta. Mozvoikko 2.0.1 RC 1 -lisäosa tukee Firefoxia/Thunderbirdia 12a1 -versioon asti Mac OS X:ssä ja Windowsissa. Testasin paketin Mac OS X 10.7:ssa, Windows XP SP3:ssa ja Windows 7 SP1:ssä.

Uutena ominaisuutena lisäosasta on nyt myös erikseen paketoitu versio PowerPC Mac OS X 10.4 ja 10.5:lle, eli PPC-arkkitehtuurin laitteille. Käytännössä tällöin pitää kuitenkin käyttää TenFourFox-selainta, joka on haaroitettu Firefoxista. PPC-prosessorien tuki pudotettiin pois Firefoxin 4 -versiosta alkaen ja täten TenFourFox tarjoaa vanhemmille laitteille tuoreempaa Firefoxia. Testasin PPC-versiota iBook G4:lla käyttäen Mac OS X 10.4:sta ja TenFourFox 9:iä. Nopealla kokeilulla näytti toimivan.

Tulevaa kehitystä mozvoikossa on luultavasti saada lisäosa toimimaan 64-bittisessä Windows-maailmassa. Tämä kuitenkin vaatii ensin libvoikon kääntämisen 64-bittiseksi myös Windowsissa ja 64-bittisen kääntöympäristön virittämisen Visual Studio Expressiin. Ainakin 2005 -version kanssa se ei oikein halunnut onnistua. Asialla ei ilmeisesti ole vielä kovinkaan kiire, sillä vaikka Firefoxista on 64-bittinen nightly-versio Windowsille, bittien valumisesta Auroraan ja siten julkaisuun, ei ole tietoa.

Mozvoikko OS X:n ja Windowsin Firefox 6 ja 7 versioille

Kuluvalla viikolla julkaistiin aikataulun mukaan Firefoxista 6 versio, joka ei tällä kertaa tuonut juurikaan näkyviä muutoksia, kuten ei samalla beta-vaiheeseen päässyt 7 versio. Isommat versionumerot vaativat kuitenkin uuden käännöksen Suomen kielen oikolukusanasto -laajennuksesta, eli mozvoikosta, jonka kokeelliset versiot Firefoxin 6 ja 7 versioille löytyvät omalta sivultaan.

Firefox 6 versio toi uudistuksia lähinnä taustalle ja ainakin yhden ärsyttävän visuaalisen muutoksen osoitepalkin domain-osan korostuksen muodossa (kuten IE:ssä). Firefox 7 beta lupaakin sitten jo hieman enemmän, tarjoten mm. huomattavasti parantunutta muistinkäyttöä ja hävittäen osoitepalkista http-etuliitteen. Eipä kummatkaan kyllä ole täyden numeron arvoisia uudistuksia.

Kirjoitinkin aikaisemmin Firefoxin 5 version osalta selaimen nopeasta kehittymisestä ja muuttuvasta versionumeroinnista, joka aiheuttaa harmaita hiuksia tietynlaisten lisäosien kehittäjille ja tietenkin sovelluskehittäjille, jotka testaavat sovellukset aina tietyillä selaimilla. Jälleen kerran päivitys rikkoi Suomen kielen oikolukusanasto -lisäosan toiminnan, koska se käyttää Firefoxin oikolukurajapintaan liittyvää binäärikomponenttia. Rajapinta ei muuttunut, mutta Firefoxin alla olevan Gecko-moottorin versio päivittyi, joka edellytti, että myös binäärikomponentti on käännetty samaa versiota vasten. Sekä Firefox 6 että Firefox 7 versioiden osalta lisäosalle riitti, että se vain käännettiin uudestaan.

Voikon kehityspostilistalla on ollut puhetta mozvoikon jatkokehittämisestä siten, että se ei olisi niin riippuvainen Firefoxin versiosta, mutta kehitys on hidasta ja sen osalta ei mitään uutta ole vähään aikaan kuulunut. Itsekin testailin alustavasti js-ctypeseillä toteutettavaa lisäosaa, jossa varsinainen lisäosa on kirjoitettu JavaScriptillä, joka vastaavasti on yhteydessä C++:lla kirjoitettuun libvoikko-oikolukukirjastoon, mutta se on vielä todella vaiheessa.

Mozvoikosta Mac OS X -versio Firefox 5:lle

Firefoxin 4 version jälkeen selaimen nopeutunut kehitystahti on käyttäjien kannalta positiivista, kun uusia ominaisuuksia saadaan nopeammin käyttöön, mutta hieman ikävää laajennusten kehittäjien kannalta. Kun vähän aikaa sitten julkaistiin Firefoxin 5 versio, jäivät monet lisäosat teoriassa epäyhteensopiviksi uuden version kanssa, vaikka usein toimivatkin ongelmitta. Tähän joukkoon ei kuulunut Suomen kielen oikolukusanasto -laajennus, eli mozvoikko.

Kun Firefox aikaisemmin päivittyi harvakseltaan, ehtivät kehittäjät mahdollisesti korjata ja testata lisäosansa ennen version julkaisemista, mutta kun nykyään sovelluksen versionumerot vain vilistävät ylöspäin aikaisemman matelun asemasta, eivät kaikki laajennukset, kuten mozvoikko, pysy mukana. En näe, että tilanne mozvoikon virallisten versioiden päivitystahdissa tulisi paranemaan, kun versiot ovat aina laahanneet enemmän tai vähemmän Firefoxin kehityksen perässä. Kehittäjien käytettävissä ole vapaa-aika laajennuksen kehittämiseen ja testaamiseen on rajallista, mutta kiireisille käyttäjille on yleensä saatavilla kokeellisia versioita laajennuksesta, kuten Andris Paveniksen versiot Linuxille ja Windowsille ja kirjoittajan kääntämät versiot Mac OS X:lle.

Tällä kertaa Firefoxin muutokset eivät olleet yhtä mullistavia kuin viimeksi, joten tein mozvoikosta 32- ja 64-bittisen version Mac OS X:n Firefox 5:lle, joka näyttäisi toimivan kuten ennenkin. Palikkaan piti ensin vain lisätä puuttunut rajapintamääritys. Versio on asetettu ”yhteensopivaksi” myös Firefoxin 6 -versiolle ja ylöspäin, mutta en ole sitä kyseisten versioiden kanssa testannut.

Lisäys, 1.7.2011:
Mozvoikosta löytyy nyt myös versio Windowsin 32-bittiselle Firefox 5.0 (tai suuremmalle) -versiolle. Testattu Windows 7:ssa ja käännetty käyttäen MSVC:tä. Ilmeisesti GCC:llä käännetyssä versiossa oli jotain ongelmia joissain kokoonpanoissa.

Mozvoikko, XPCOM-komponentti ja Firefox 4 beta 6

Kirjoitin kesällä Firefox 4 beta 1:stä ja mainitsin, että mozvoikko eli suomen kielinen oikolukusanasto -lisäosa toimisi myös uudessa 4 versiossa. Toimihan se vielä pari beta versiota ensimmäisestä eteenpäin, mutta tämän jälkeen Gecko 2.0:ssa tuodut muutokset XPCOMiin vaativat kaikkien lisäosien päivittämistä komponenttien rekisteröimisen osalta. Teoriassa yksinkertainen muutos, mutta käytännössä ei tietenkään niin selkeä.

Asia olisi ollut yksinkertainen, jos mozvoikko ei käyttäisi binäärikirjastoja, joiden sijainti aikaisemmin haettiin kategoriamanagerin avulla, joka rekisteröi komponentin ja sen sijainnin. Nyt kun komponenttien rekisteröinti muuttui chrome.manifestissä tapahtuvaksi, ei tuota tietoa enää ollut saatavissa. Onneksi ratkaisu löytyy JavaScriptistä, jolla toteutuissa XPCOM-komponenteissa on sisäänrakennettu __LOCATION__ -funktio, joka palauttaa komponentin nsIFilen, jonka avulla saadaan selville hakemisto, jossa komponentti on. Enää piti siis vain toteuttaa tuollainen JavaScript XPCOM-komponentti ja liittää se mozvoikon C++-koodiin.

En ollut aikaisemmin toteuttanut XPCOM-komponentteja, mutta netissä oli siihen muutamia vinkkejä. Tietenkin kaikkia ohjeita ja dokumentointia ei ollut vielä päivitetty Firefox 4:n kanssa toimivaksi, joten pientä yritys-erehdys -tekniikkaa piti suorittaa, että JavaScript-komponentin sai toimimaan C++:sta kutsuttuna. Käytännössä JavaScriptillä toteutettu XPCOM-komponentti, MozvoikkoHelper, rekisteröidään Firefoxin käynnistyessä ja siltä kysytään sen sijainti mozvoikon käynnistyessä, kun oikolukua ensimmäistä kertaa tarvitaan. Loppu toimii kuten aikaisemminkin. Ei ehkä kovin hieno ratkaisu, mutta toimiva ainakin Firefox 4 beta 6 -version kanssa.

Muuten mozvoikolle tarvittavat muutokset Firefoxin mukana käännettäväksi olivat pieniä ja näin jälkikäteen katsottuna myös toteuttamani JavaScript-lisäpalikka ja sen liitos mozvoikon koodiin oli suhteellisen yksinkertaista. Mitä nyt muutamaa eri tapaa ja periaatetta ehdin kokeilla, ennen kuin ymmärsin miten asioiden pitää toimia. Se mikä aikaisemmin toimi, ei toiminut enää. No, tulipahan opittua komponenttien toteuttamista ja hieman C++:aa.

Virallista versiota mozvoikosta Firefox 4:lle saadaan varmasti odottaa Firefox 4:n julkaisuun asti, mutta kokeellinen versio OS X:lle löytyy mozvoikko-osiosta. Mozvoikon kehittäjä, Andris Pavenis, totesi lisäosan toimivan apupalikan kanssa myös Linuxissa ja pitänee katsoa josko tuon saisi käännettyä myös Windowsille. Lisäosan kääntämiseen Firefox 4:lle tarvittavat muutokset näyttivät jo löytyvän mozvoikon versionhallinnasta (r3531 ja r3570), joten jokainen voi halutessaan kääntää oman versionsa. Andris oli hieman muuttanut ehdottamiani muutoksia, jotka olivatkin muutamilta osilta näköjään paremmin toteuttavissa. Toisaalta nyt mozvoikon asentamisessa tulee muutamia virheilmoituksia puuttuvista manifest-tiedostoista, mutta muuten toiminta on sama.

Lisäys, 21.11.2010:
Firefox 4.0 beta 7 käynnistyy OS X:ssä vakiona nyt 64-bittisenä, joten käänsin mozvoikosta yhdistetyn version sekä 32- että 64-bittiselle Firefoxille. Andriksen tekemien lisäysten jälkeen mozvoikko toimii nyt samalla versiolla Firefox 3.6:ssa ja 4.0:ssa.

Voikko 3.0 ja mozvoikko-laajennus

Voikosta julkaistiin toukokuun lopussa 3.0 versio, jossa ei varsinaisesti ole mozvoikon käyttäjälle näkyviä muutoksia, mutta taustalla on tapahtunut muun muassa kehitystä kohti muiden kuin suomen kielen tukemista. Ainakin saamen kielen oikoluku olisi jollain tasolla jo toimiva HFST-backendin kautta samoin kuin suomen kielen Omorfi-morfologia ja uuden kokeellisen Lttoolbox-backendin kautta useampiakin kieliä.

Mutta pysytään vielä kuitenkin vakaasti suomessa, ja koska virallinen mozvoikko-laajennus kulkee jälkijunassa Voikon kehitykseen verrattuna, käänsin mozvoikosta OS X:lle uuden version Voikon 3.0:sta vasten käyttämällä sekä perinteistä Suomi-malaga 1.6:sta että HFST-backendia. Hyvinhän ne näyttivät toimivan ja nyt vielä ilman libiconvia. Epäviralliset versiot sekä OS X:lle että Windowsille löytyvät omalta sivultaan. Pitää vielä ehtiessä kääntää Windows-versio Visual Studiolla, jolloin se olisi ”oikein” käännetty. Suomi-malaga ja Omorfi/HFST -morfologioita tukeva versio on vain OS X:lle ja HFST:n saa käyttöön VOIKKO_DICTIONARY=hfst ympäristömuuttujalla.

PPC-version osalta Voikon kääntäminen iBookilla onnistui kyllä ihan jees, mutta kun mozvoikkoa yrittää ristiinkääntää Intel-koneella, jää homma siihen. Virheilmoitus on lyhyesti ”darwin.o, unsupported encoding in FDE”, joka ei paljon auta. Pitäisi varmaan yrittää vanhemmalla XCodella tuota tai jotain, kun olen kuitenkin PPC-version aikaisemmin onnistuneesti kääntänyt.

Kokeilin myös VoikkoSpellServiceä eli OS X:n oikolukukomponentin kääntämistä, mutta en vieläkään ymmärrä, miten sen saa muka toimimaan. Vaikka kaikki kääntyi XCodessa ihan hyvin, eikä Consoleen tullut mitään virheilmoituksia, ei suomea näy oikoluvun valinnoissa. Edes virallista palikkaa en saa toimimaan, mutta Soikon vastaava palikka kyllä toimii. Ei voi ymmärtää.

Uuden libvoikon myötä mozvoikko toimii ilman säätämistä

Libvoikosta julkaistiin jokin aika sitten 2.3-rc1 -versio, jossa päästiin eroon Glib ja Malaga -kirjastojen riippuvuuksista ja täten libvoikon käyttäminen helpottui ainakin Mac OS X:ssä. Jaettujen kirjastojen käyttö kun on OS X:ssä hieman vaivalloista ja aikaisemmin libvoikkoa käyttävä Firefoxin mozvoikko-lisäosa vaati, että libvoikon tarvitsemat kirjastot sijoitettiin kääntöaikaiseen hakemistoon (/usr/local/lib). Nyt kun libvoikko ei ylimääräisiä kirjastoja vaadi, näytti mozvoikko toimivan suoraan laatikosta ilman erillistä säätämistä.

Uutta versiota mozvoikosta kääntäessäni lisäsin (lue: tein diffit) myös OS X:ään liittyvää asiaa Readme.buildiin ja poistin nyt tarpeettoman libmalaga-riippuvuuden OS X:n osalta. Käännösohjeet ja muutokset löytyvät Mac OS X ja mozvoikko -alasivulta. SVN:stä käännettyä mozvoikko-1.0.r3130-Darwin_x86-gcc3.xpi -lisäosaa voi testata omalla vastuulla (kuten aina).

Voikon kehittäjät, johtohahmona Harri Pitkänen, ovat kyllä tehneet mainiota työtä, sillä etenkin netissä oikoluvulle on tarvetta. Jos vielä ihmiset ymmärtäisivät sitä käyttää :)

Mozvoikko-lisäosa PowerPC Mac OS X:lle

Sain viimeinkin iBookkini käyttöön hieman pidemmäksi aikaa ja ehdin kokeilla Firefoxin suomen kielen oikoluku -lisäosan eli mozvoikon kasaamista myös PowerPC-alustalle. Hyvinhän se onnistui ja tuntui toimivan Mac OS X 10.4 Tigerissa.

Muutamia muutoksia piti mozvoikkoon tehdä uuden alustan lisäämisen suhteen ja hieman konfiguraation jälkeen viritellä käsin libvoikon config.h-tiedostoa, mutta yleisesti ottaen aika sulavasti käännös sujui. Muutoksista löytyy kaksi vaihtoehtoista muutostiedostoa, mozvoikko-r2711_osx-ppc.diff_a.txt ja mozvoikko-r2711_osx-ppc_b.diff.txt, jotka molemmat tekevät käytännössä saman asian.

Yhdistelin samalla hieman mozvoikon kasaamiseen liittyviä muistiinpanojani sisältämään sekä Intel-alustalle että PowerPC-alustalle tapahtuvan käännöksen. Varsinaisen käännöksen eli Firefoxin ja lisäosan kääntämisen tein Intel-alustalla.

Lopputuloksena oli siis Suomen kielen oikoluvun sisältävä mozvoikko-1.0-Darwin_ppc-gcc3.xpi -laajennus, joka asentui sopuisasti Firefoxiin ja näyttäisi toimivan iBookissani Mac OS X 10.4 Tigerin kanssa. Lisäosaa voi kokeilla omalla vastuulla.

Asiasta lisää mozvoikko-alasivulla.