Vaikka Ubuntua "ruletan" niin on oikeesti tosi nolo tämä mokkulasotku Ubuntulta. Aivan sama onko "syyllinen" Ubuntu tai Canonical..... ois kiva tietää mistä loppujen lopuksi tällainen juttu juontaa juurensa. Kellään tietoa?
No se on vähän pitempi ketju se. Vikahan oli siis ytimessä eli Kernelissä ja tarkemmin USB-serial ajureissa. Vika tuli regressiona Kernelin 2.6.31.2 versioon, versio 2.6.31.1 siis toimi. 2.6.31 on siis julkaistu ydin ja 2.6.31.X on aina vikakorjaus. Siten tämäkin vika tuli vikakorjauksen myötä - ainakin mitä versioihin on katsominen. Vikakorjauksina ei sitten todellakaan saa sinne pistää mitään muuta koodia kuin tarkasti harkittuja korjauksia. En ole katsonut tai perehtynyt mitä muutoksia sinne on tehty, mutta mieleen tulee kaksi syytä 1) todellinen vikakorjaus rikkoin tämän sivuvaikutuksena 2) kehittäjät tekivät heidän mielestään niin pienen parannuksen että uskalsivat sen pistää vikakorjauksena sisään (vastoin sääntöjä). Epäilen että siellä korjattiin oikeaa vikaa, mutta olisiko otettu tarpeettoman suuria riskejä ja muutoksia - aina on turvallisempaa tehdä purkka-paikkaus korjauksena ja seuraavaan julkaisuun korjata se "oikein".
Toinen asia on sitten kuinka se päätyi Ubuntun 9.10 julkaisuun. Se oli kuitenkin suhteellisen pitkään tiedossa jo ennen julkaisua ja ilmeisesti vian korjaava/kiertävä "pätsi" olisi kerennyt vielä matkaan ilman aikataulun siirtoa. Toinen vaihtoehto olisi ollut odottaa ja siirtää julkaisua muutamalla päivällä tai jopa viikolla parilla jotta korjaus olisi kerennyt kernel.org:in viralliseen ytimeen. Nämä on aina rajanvetoja projektin johdossa. Ilmeisesti Huawein USB-modeemit eivät olleet vielä niin iso ongelma...
Ytimen kehityksestä ja aikatauluista vielä pari sanaa, kun monia varmaan kiinnostaa ja tietokaan ei ihan joka paikasta nopeasti löydä. Tällähetkellä mennään 2.6.32 kehityksessä loppumetreillä, sinne pistetään enään korjauksia, ja porukka tekee täysillä jo seuraavaa versiota eli 2.6.33. Ytimestä tulee uusi julkaisuversio ulos noin 3kk välein ja täten seuraava ydin (2.6.32) julkaistaneen viikolla 51. Julkaisun jälkeen alkaa ns. "merge window", eli sellainen aika jolloin ytimeen voi lisätä uutta koodia ja toiminnallisuutta. Tämä uuden koodin lisäämisen aika kestää kaksi viikkoa, sitten Linus pyöräyttää siitä kasaan ensimmäisen release canditaatin ja vikakorjaukset alkavat. Sen seuraavat 2.5kk, eli julkaisuun asti, pistetään korjauksia sisään ja tietyillä ehdoilla jotain pienempiä muutoksia myös ja 1-2 viikon välein tulee aina uusi RC ulos. Sinne saa RC vaiheessa tosiaan tehdä pieniä muutoksia kuten lisäillä laitteille ajureihin uusia ID-numeroita (esim. USB ID, PCI ID), mutta kaikki projektit eivät edes niitä tee, kuten v4l-dvb, vaikka IMHO saisi tehdä
Monesti jos tulee kiire, niinkuin pakkaa tulemaan, tapaan pukata sen melkein valmiin koodin merge windowin aikana sisälle ja viilailla loppuun ensimmäisten release candidate julkaisujen aikaan. Jotta pakka ei olisi niin siisti niin siellä on nykyisin vielä "staging" joka on sellainen epävirallinen haara uusille ajureille. Sinne pystyy vapaammin laittamaan ajureita ja kehittämään niitä siten että käyttäjillä on kuitenkin joku versio käytössä. Ja jos ei saa ajuria valmiiksi ja into loppuu niin se poistetaan stagingista, toinen vaihtoehto on että ajuri valmistuu ja siirretään viralliseen ytimeen. Tuo staging on uusi juttu, ainakin linux-media alijärjestelmässä, en tiedä onko muut käyttäneet pitempään.
Antti