[hunspell-fi-devel] Joukahainen, Voikko 1.0 (asiaa paketoijille), Soikko

Harri Pitkänen hatapitk at cc.jyu.fi
Tue Jul 4 13:41:38 EEST 2006


On Tuesday 04 July 2006 12:12, Teemu Likonen wrote:
> Ymmärrän taustalla olevan syyn mutta olen sitä mieltä, että tällainen
> ratkaisu tuottaa enemmän ongelmia kuin se korjaa tai ehkäisee.
>
> Debianilaisessa maailmassa tuo toteutetaan käytännössä niin, että
> Oo2-voikon debian/control-tiedostoon laitetaan kenttä
>   Conflicts: openoffice.org-core (>= uusi_upstream-versio)
> jossa uusi_upstream-versio laitetaan pykälää (?) suuremmaksi kuin
> nykyinen. Näin pakotetaan poistamaan Oo2-voikko ennen OOo:n
> päivittämistä. Samalla on tietysti tehtävä uusi versio Oo2-voikosta: se
> käännetään uuden OOo:n kanssa ja päivitetään taas Conflicts-kenttä
> pykälän eteenpäin.
>
> Edellisestä seuraa, että Oo2-voikon lähdekoodipaketit eivät enää
> itsestään sovi joka tilanteeseen vaan nimenomaan tietylle OOo:n
> versiolle. Sikäli kuin ymmärrän, sen aiheuttaa pelkästään tuo
> Conflicts-kenttä, koska sinänsä distron oman OOo:n kanssa käännetty
> Oo2-voikko käsittääkseni toimisi.

Ei kai tuota versiota tarvitse koodata Oo2-voikon lähdekoodipakettiin? 
Luulisi, että nuo voi laskea paketin käännösaikana 
(openoffice.org-dev -paketin upstream-versionumero + 1 tai vastaavaa). 
Tällöin binääripaketti pitää toki kääntää uudelleen jokaiselle OpenOffice.org 
upstream-versiolle, mutta näin on käytännössä pakko tehdä muutenkin.

> Konkreettinen tilanne: Ubuntu Dapperiin tehdään sille sopiva Oo2-voikko
> (mukaan lukien se Conflicts-kenttä). Dapperin OOo pysynee varsin
> muuttumattomana (2.0.2) jonkin aikaa, ja Dapperia sinänsä saatetaan
> käyttää pitkäänkin. Loppuvuodesta ilmestyy seuraava Ubuntu nimeltä
> Edgy. Sen jälkeen (tai ehkä jopa ennen) voi ilmestyä uudemmasta OOo:sta
> (2.0.3?) Dapperille backportaus. Conflicts-kentän vuoksi Oo2-voikko ei
> toimi tuon backportin kanssa, vaikka se kenties oikeasti toimisikin.

Ei luultavasti toimi, ainakaan ilman uudelleenasennusta. 2.0.2- ja 
2.0.3-versioiden välillähän on jokin yhteensopivuusongelma, joka vaati 
uudelleenasennuksen ainakin Oo2-soikolle.

> Backportia käyttävät eivät saa lähdekoodipaketista käännettyä
> Oo2-voikkoakaan toimimaan, vaikka se oikeasti olisi käännetty
> backportatun OOo:n openoffice.org-dev-paketin kanssa ja siten olisi
> yhteensopiva. "Kovakoodattu" Conflicts-kenttä estää. Paradoksaalista,
> koska distron työkaluilla lähdekoodista kääntämällä pitäisi nimenomaan
> saada se kaikkein toimivin.

Kuten edellä kirjoitin, kovakoodattu Conflicts-kenttä ei luultavasti ole 
tarpeen.

> On epäilemättä totta, että OOo:n versioiden välillä UNO-komponenttien
> yhteensopivuus on huteraa. OOo:n uusia versioita tulee pääasiassa
> Debian unstableen ja Ubuntun kehitysversioon (nyt/kohta Edgy). Näiden
> kanssa Oo2-voikon on tavallaan "luvallistakin" mennä välillä rikki, se
> on distron kehitysversioiden luonne välillä. Heille voisi joka
> tapauksessa suositella vain lähdekoodista kääntämistä ja paketin
> poistoa ennen OOo:n päivittämistä.
>
> Kaikki varmaankin ovat samaa mieltä, että jos ongelmia täytyy
> väistämättä jollekin aiheuttaa, niin mieluummin kehitysversioiden
> käyttäjille kuin suurelle yleisölle. Voisiko olettaa, että _julkaistun_
> distron mahdolliset OOo:n päivitykset eivät riko UNO-komponenttien
> yhteensopivuutta niin pahasti, että tätä mainittua Conflicts-kenttää
> tarvittaisiin?

Tietoturvapäivitysten osalta ainakin Debianissa näin kai voi turvallisesti 
olettaa. Siksi suosittelinkin laittamaan tuon konfliktin koskemaan vain uutta 
upstream-versiota, ei mitä tahansa uudempaan versiota.


Mutta minulla on vielä pahempi kauhuskenaario, joka voi toteutua jos tuota 
konfliktia ei aseteta ollenkaan. Kuvitellaanpa, että meillä on Kalle, joka on 
asentanut Debianin version X, ja siihen openoffice.org-voikon. Debianin 
kehittyessä versioon X+1 mennessä on tapahtunut gcc:n päivitys 
epäyhteensopivaan ABI-versioon. Kalle päivittää Debianinsa X+1 -versioon. 
Kaikki sujuu hyvin, kunnes hän yrittää käynnistää OpenOfficen. Se ei toimi, 
vaan antaa mystisen virheilmoituksen "segmentation fault" (tai saattaa toimia 
siihen asti kunnes Kalle yrittää tehdä jotain oikolukuun tai tavutukseen 
liittyvää). Kalle ei ole aivan neuvoton, vaan ymmärtää asentaneensa ohjelmia 
epävirallisista asennuslähteistä, ja poistaa nämä ohjelmat, mukaan lukien 
openoffice.org-voikon. Tätä poistettaessa tulee sama 
virheilmoitus, "segmentation fault", mutta paketti poistuu. OpenOffice ei 
silti ala toimia. Seuraavaksi Kalle yrittää poistaa ja asentaa OpenOfficen 
uudestaan. Tilanne ei parane, sama virheilmoitus tulee edelleen. Seuraavaksi 
Kalle poistaa kaikki OpenOfficen asetustiedostot, sekä /etc -hakemistosta 
että kotihakemistostaan, ja asentaa OpenOfficen uudestaan. Tämän jo luulisi 
auttavan, mutta ei. Tässä vaiheessa Kallelta loppuvat neuvot kesken, ja hän 
asentaa Debianinsa kokonaan uudestaan, mikä lopulta korjaa tilanteen.

Mikä meni pieleen? openoffice.org-voikkoa poistettaessa sen prerm-skripti 
suorittaa "unopkg remove" -komennon, jonka pitäisi poistaa Oo2-voikon 
tiedostot OpenOfficen 
UNO-komponenttihakemistosta /usr/lib/openoffice/share/uno_packages (tai 
jostain muusta hakemistosta, joissakin Debian-paketeissa tämä 
on /var -tiedostojärjestelmässä). Unopkg on kuitenkin sen verran tyhmä, että 
se yrittää käyttää tuossa hakemistossa olevaa vanhan C++ ABI:n mukaista 
jaettua kirjastoa oo2-voikko.so, joka aiheuttaa unopkg:n kaatumisen. Tiedosto 
jää siten myös poistamatta, ja Debianin paketinhallintatyökalut eivät sitä 
osaa poistaa koska tuota tiedostoa ei ole asentanut dpkg vaan unopkg. Siksipä 
kaatuilu ei loppunut Kallen kokeilemilla konsteilla, oikea korjaus olisi 
ollut antaa pääkäyttäjänä 
komento "rm -rf /usr/lib/openoffice/share/uno_packages". Tätähän ei juuri 
kukaan voi arvata jos ei sitä tiedä.

Yllä oleva skenaario ei ole edes mitenkään epätodennäköinen, päin vastoin se 
saattaa hyvinkin tulla kyseeseen jo Sarge -> Etch -päivityksessä. Ja koskee 
muuten myös Oo2-soikon nykyisiä paketteja.

> Mitä olemme mieltä? Siis sen lisäksi, että koko UNO-systeemi joutaisi
> jonnekin tosi syvälle. :)

Tästä olen kanssasi aivan samaa mieltä. Kannattaisi vain OpenOfficen 
kehittäjien ottaa mallia siitä, miten Firefoxissa on laajennukset toteutettu. 
Ei niitä sielläkään saatu ensimmäisellä kerralla oikein, mutta nykyään 
laajennukset on tarkkaan versioitu ja Firefox poistaa käytöstä 
automaattisesti (ja huom! yrittämättä käyttää epäyhteensopivan version 
binäärejä) kaikki laajennukset joita ei erikseen ole määritelty 
yhteensopivaksi ko. version kanssa.


Harri



More information about the devel mailing list