tisdag 31 mars 2009

Bygg Chromium på OSX

Okej, nu kommer det ett sånt där dator-inlägg igen. Ni som inte gillar de inläggen får helt enkelt hålla för ögonen. ;)

Någon av er har kanske hört talas om Googles egna webbläsare? Heter Chrome. Just nu finns Chrome bara tillgängligt för Windows --- men versioner för såväl linux som osx arbetas på. Inget finns dock tillgängligt att testa ännu, "inga beta-versioner", så att säga.

Men källkoden finns fritt tillgänglig. :-D Vilket betyder att den som vill bygga Chrome själv --- eller Chromium, som de varianterna heter --- kan göra det. Själv använder jag både Gentoo och osx.

På Gentoo var det lika lätt som det brukar vara, men det var krångligare att bygga Chromium på osx än vad jag väntat mig. Hittade inte information någonstans om hela vägen man skulle gå, utan fick pussla ihop det härifrån och därifrån. Varför jag tänkte att jag skulle skriva här om hur man gör.

Först Gentoo, bara för att jämföra: lägg till repository THE. Kör sen
paludis -i google-chrome
:) Jojo, förenklade väl lite. Du måste lägga till =google-chrome-9999 ~x86 i keywords.conf --- men ändå. I praktiken är det där allt du behöver göra.

Okej. Nu då till osx.

Förberedelser:
  • Vara van vid att arbeta med terminalen. Delar av nedanstående kanske går att göra med grafiska gränssnitt, men jag tycker det blir bökigt så. Så det mesta kommer du att göra via terminalen! Hoppas det går bra. :-P
  • Mac OSX 10.5. Är ditt os äldre kommer det tyvärr inte att fungera. Så bara Leopard.
  • SVN : Du måste ha subversion installerat. Det hör till fabriksinställningarna, så att säga, så det borde inte vara ett problem. Har du det inte redan, installera det då.
  • Xcode : För att utföra själva bygget måste du ha Xcode 3.1.2 installerat. Har du det inte redan, måste du 1) registrera dig på Apple Developer Connection och 2) ladda ner det. Filen går på nära 1GB... (Ändå är det inte det största du kommer ladda ner förrän vi är klara...)

Förberedelser för att skaffa koden:
  • Skapa en mapp för byggen, exempelvis ~/dev
  • Vi gör bäst i att använda oss av googles egna gclient för att hämta hem den. Ifall man bara kör med ren svn så kommer xcodebuilder grejer inte att skapas. Använder man däremot gclient görs det automatiskt. Vi gillar automatiskt.
  • Skapa mapp för gclient, exempelvis: ~/dev/gclient-dev.
  • Gå till ovan nämnda mapp. Hämta gclient med svn :
    svn co http://gclient.googlecode.com/svn/trunk/gclient
  • Du borde nu ha en fungerande gclient. Testa genom att synkronisera gclient med sig själv:
    python gclient/gclient.py config http://gclient.googlecode.com/svn/trunk/gclient
    python gclient/gclient.py update
  • Jag kommer nu att hänvisa till ~/dev/gclient-dev/gclient/gclient.py som, kort och gott, "gclient" för enkelhetens skull. I själva verket har jag själv gjort en symbolisk länk som tillåter mig att köra just ~/dev/gclient-dev/gclient/gclient.py med, just precis, "gclient". Men det gör du som du vill. Känns det bra att skriva hela den långa ramsan varje gång, då gör du så. :)

Skaffa koden:
  • Gör en mapp vart du ska lägga det hela, exempelvis: ~/dev/chromium och gå till den mappen.
  • Berätta åt gclient att du vill ha hit chromium:
    gclient config http://src.chromium.org/svn/trunk/src
  • Hämta den! Men, innan du gör det, ha i åtanke att du nu kommer att hämta hem inte mindre än omkring 1,4GB med grejer.... Jo. Det är en så stor hämtning. (EDIT: Hoppla! Synkroniserade just igen, och nu var det uppe i inte mindre än 2,7GB!) Så det kommer med andra ord att ta ett litet tag förrän allt är klart. Kör:
    gclient sync
  • Hämta kaffe.
  • Ät middag.
  • Drick lite mer kaffe.
  • Så! Nu borde du ha en mapp ~/dev/chromium/src innehållande källkoden till Chromium!

Bygg Chromium:
  • Det här är lätt. Läs: få steg att göra. Men det är tungt för din dator. Läs: du kommer att ha gått om tid att dricka ytterligare koppar kaffe, med mera, medan datorn bygger ihop det hela.
  • Gå till mappen ~/dev/chromium/src/ och kör:
    xcodebuild -project all.xcodeproj -configuration Release
  • När den är klar, så är det klart! Nu har du byggt en helt egen Chromium, bara att tuta och köra! Du hittar den i ~/dev/chromium/src/xcodebuild/Release; du kan t.ex kopiera den till ditt skrivbord, och köra den därifrån:
    cp -R ~/dev/chromium/src/xcodebuild/Release/Chromium.app ~/Desktop/
  • Ifall du kopierade enligt ovan, borde du nu ha en snygg ikon på ditt skrivbord; kör Chromium genom att dubbelklicka på den.

Fungerar det? Det borde det. Snabb är den också! Precis som utlovat. :) Vet inte varför, men jag var förvånad över att den höll måttet. Det är så mycket upphaussning av diverse, och alldeles särskilt kring såväl Googles grejer som Mac-mojänger, att jag helt enkelt förväntade mig allt annat än uppfyllda önskningar.

Allt är givetvis ändå inte frid och fröjd. Googles Chrome projekt har definitivt inte kommit tillräckligt långt på Linux eller Mac för att Chrome/Chromium skulle kunna vara förstahandswebbläsaren. Det kraschar på tok för ofta; alla sidor fungerar inte; flash finns inte. Och så vidare, och så vidare. Det är betydligt mer som inte fungerar än vad som fungerar. Men det är som det ska vara! Chrome för OSX är inte släppt ännu; det här är bara en förhandstitt på (delar av) vad som komma skall, och ska ses som sådant.

Google mail fungerade fint; liksom reader. Lite kuriosa: även om gmail funkade över https, så gjorde reader det inte! Men fungerade över http som vanligt. Lite knepigt.

Det sagt, så har det framskridit med stormsteg den senaste tiden. Det är inte alls länge sen som man överhuvudtaget inte fick upp sidor!Så vänta en månad eller två, då börjar det kanske redan likna något! En betaversion ska visst komma ut omkring höst eller så.

Vill du följa med i utvecklingen, så är det --- efter att en gång ha hämtat källkoden --- lätt och smidigt att uppdatera. Bara navigera in i mappen ~/dev/chromium; ta bort mappen ~/dev/chromium/src/xcodebuild (för att radera det gamla du byggt); kör gclient sync och bygg det hela igen enligt instruktionerna ovan!

Uppdatering (1 maj 2009): Chromium börjar bli riktigt användbar nu! Allt färre sidor kraschar; allt fler fungerar precis som de ska. Snabb är den också. Kör revision 14.839 som bäst.

Vad jag skulle säga var dock det, att mellan stora uppdateringar kan det ibland vara bra att radera gamla inställningar! Annars kan Chromium haka upp sig på dem; det kan te sig som om det fungerar sämre än vad som egentligen är möjligt. Så, om det krånglar mer än vanligt, radera gamla inställningar och prova på nytt! Så här:
rm -rf "~/Library/Application Support/Chromium
Kanske kan en sån enkel lösning hjälpa.


Sidor jag haft nytta av : Get the code; Chromium OSX Builds; Google Chromium for Gentoo; gclient; Build instructions for Chromium on Mac OS X; Chrome for OSX: State of the Browser.