Monday By Noon -blogi kirjoittaa WebKit -selaimen kääntämisestä Linuxille Qt-kirjaston kanssa. Koska tällä hetkellä pääkäyttöjärjestelmäni on vaihteeksi Windows XP, tuli mieleen kokeilla WebKit -selaimen kääntämistä Windowsin puolella. Linuxissahan se näytti onnistuvan helposti.
WebKit on avoimen lähdekoodin web-selainmoottori. WebKit nimellä tunnetaan myös Mac OS X:n järjestelmäympäristön versio kyseisestä moottorista, jota käytetään muun muassa Mac OS X:n Safari, Dashboard ja Mail -sovelluksissa. On kuitenkin huomattava, että Safari ja WebKit ovat kaksi täysin eri asiaa; Safari on selain, joka käyttää WebKitiä sivujen renderöimiseen. WebKitin HTML ja JavaScript koodit ovat saaneet alkunsa KDE -projektin KHTML ja KJS kirjastoista ja joitain WebKitiin tehtyjä muutoksia ja korjauksia nähdään myös KHTML:n koodissa.
Ennen WebKit-selaimen kääntämistä testasin Monday by Noon -blogikirjoituksen kommenteissa viitattua Swift -selainta Windowsille, joka käyttää moottorinaan WebKitiä. Swift on kehitysasteeltaan vasta 0.2 alpha ja osoittautuikin epävakaaksi. Myös selaimen perusominaisuuksissa oli suuria puutteita, eikä kestänyt kauaa, kun jo sain Swiftin kaatumaan. Jutun kommenteissa hieman viitattiin, että Swift näyttäisi CSS-renderöintivirheet samalla tavalla kuin Safari, mutta en tätä itse testannut. Jos kommentti pitää paikkansa, on Swift helppo, joskin tässä vaiheessa vielä epävakaa testiselain www-sivujen ulkonäön tarkasteluun.
Seuraavaksi testivuoroon WebKitin kääntäminen Windowsissa ja nopea katsaus Googlen löytämiin tuloksiin tarjosikin WebKitin Wikistä löytyvät ohjeet WebKitin kääntämiseksi Windowsissa, käyttäen cygwiniä ja muutamia tarvittavia lisäkirjastoja.
Windowsissa WebKitin kääntäminen vaati hieman pohjustusta muun muassa cygwin -ympäristön asentamisessa, mutta ohjeet olivat selkeät. Lisäksi tarvittiin WebKit -projektin checkout, eli lähdekoodien hakeminen, versionhallinnasta, muutamia lisäkirjastoja asennusskriptillä, muutaman paketin lataaminen ja lopulta kaikki tarvittavat materiaalit olivat valmiina. Kun vielä kääntämiseen oli tarjolla valmis skripti cygwiniä tai Visual Studio -projektia käytettäessä, tarvitsi vain aloittaa kääntäminen haluamallaan tavalla.
Rivit vilisivät ruudulla, kun kääntöprosessi sulatteli lähdekoodeja, mutta koska mikään ei ole koskaan liian helppoa, antoivat sekä cygwinissä että Visual Studiossa ajettu kääntö saman vastauksen: ”Build failed”. Ei onnistu. Liian helpoltahan tämä jo vaikuttikin.
Windows-arpa oli tällä erää kokeiltu ja tyhjähän sieltä paljastui. Kääntö aiheutti vielä sen verran runsaasti virheitä ja varoituksia, ettei mielenkiinto eikä aika riittänyt niiden tutkimiseen. Vaihtoehtona oli vielä WebKitin kääntäminen Linuxille Qt-kirjaston kanssa ja Linux-arvan katsomisen vuoro. Samalla tämän kirjoituksen otsikkokin muuttui aiheen lipsuessa Windowsista Linuxiin.
Linuxiin löytyikin jo valmiit ohjeet, joten terminaali auki, tarvittavien lisäkirjastojen asennus ja kääntö käyntiin annettujen ohjeiden avulla. Rivit vilisivät ruudulla, kunnes kääntö pysähtyi virheeseen. Ongelmaan auttoi WebKitin Wikistä lötyvän ”Building the Qt port on Linux” -kirjoituksen ohjeet muutamiin yleisiin käännösongelmiin. Tämän jälkeen WebKit kääntyikin ongelmitta. Vielä LD_LIBRARY_PATHin asettaminen osoittamaan ”WebKit/WebKitBuild/Releases/lib/”-hakemistoon, jotta QtLauncher löysi libWebKitQt:n ja selain oli käynnissä. Vaikka ohjeet olivat tehty käyttäen Ubuntua, onnistui kääntäminen samoilla ohjeilla myös 64-bittisessä Gentoossa.
Ei siis WebKit-selainta Windowsille, ohjeista huolimatta, vaan WebKit Linuxille. Voi hyvinkin olla, että tekiessäni checkoutin, oli kyseinen versio jostain hajalla ja ei siksi kääntynyt Windowsissa. Toisaalta veikkaan, että käyttäjässä oli vikaa. Onneksi kääntöprosessi on tehty kohtalaisen helpoksi, joten kääntämistä voi yrittää myöhemminkin vain parilla klikkauksella.
Linuxissa Qt-kirjastoa käyttävä WebKit on käytettävyydessä jotakuinkin hieman samaa tasoa, kuin aikaisemmin mainitsemani Swift-selain Windowsissa: näyttää web-sivut safarimaisesti ja sivuhistoriassa voi liikkua eteen- ja taaksepäin. Ja siihen selaimen toiminnallisuus rajoittuukin. Ulkoasukin on karu, sisältäen vain muutamat navigointinapit ja osoitekentän. Kokonaisuutena Swift tarjoaa kuitenkin parempaa selausta välilehtien ja viimeistellymmän ulkoasunsa ansiosta.
Odotin Linuxissa toimivalta WebKitiltä hieman enemmän, mutta kuten aikaisemmin kirjoitin, WebKit ja Safari ovat kaksi eri asiaa. Mielikuvat liikkuivat Safarimaisessa selaimessa, mutta sain pelkän selainmoottorin ja pari hassua nappia. Ohjesivuilla oli kyllä ruudunkaappauksia, mutta jotenkin sivuutin koko asian.
Periaatteessa WebKit-moottorilla Windowsissa tai Linuxissa renderöidyn web-sivun pitäis näyttää samalta kuin OS X:n Safarissa, mutta käytännössä tämä ei välttämättä toteudu. WebKitiä voi kuitenkin soveltaa nopeaan testaukseen, jos Safaria ei ole saatavilla. Linuxissa myös Konqueror, joka käyttää myös WebKitin pohjana olevaa KHTML-moottoria, soveltuu web-sivujen testaamiseen ja lukemani perusteella näyttää sivustot Safarimaisesti lomakkeita lukuunottamatta.
Parhain ja varmin testitulos web-sivujen testauksessa saavutetaan kuitenkin käyttämällä autenttista OS X -ympäristöä, virtualisoiden tai ilman. WebKit on kuitenkin vain osa Safarin tarjoamaa kokonaisuutta.
Lisäys 17.7.2007:
Apple julkaisi kesäkuussa WWDC:n yhteydessä Safari-selaimensa myös Windowsille. Nyt ei ole enää ei ole tarvetta viritellä WebKitiä ihan vain web-sivujen testaamiseksi. Safari 3 Public Beta tosin käynnistyi hieman ontuen, kun Windows-versiossa oli ikäviä toimivuusongelmia. Varsinaista Beta-tasoa.