[Gelistirici] 2009 çiftliği hazır a.k.a. fire in the hole

Barış Metin baris at pardus.org.tr
4 Mayıs 2009 Pzt 02:41:22 EEST


2009/5/4 Fatih Aşıcı <fatih at pardus.org.tr>:
> 04 May 2009 Pazartesi günü (saat 01:16:35) Barış Metin şunları yazmıştı:
>> > Aksi takdirde sadece pspec'teki bağımlılıklardan yola çıkılarak
>> > A'nın güncellenip güncellenemeyeceğine (C'yi A'ya bağımlılık yazmazsak)
>> > karar vermek imkansız.
>>
>> Neden? A->B->C seklinde bir bagimlilik soz konusu degil mi? A'dan C'ye
>> dogru gidebiliyorsam tersi de, biraz daha masrafli olsa da, mumkun.
>
> A: Qt uygulaması
> B: Qt
> C: libX11
>
> Eğer uygulama libX11 API'sini doğrudan kullanmıyorsa sadece Qt'ü güncellemek
> yetiyor. A her zaman güncellenmek zorunda değil.


>> --as-needed kullanmaya basladiktan sonra bagimliliklari daha acik
>> yazmak birlikte kullanmak nasil bir avantaj sagliyor anlamadim. Bizim
>> pakete yazdigimiz bagimliliklar ile linker parametresinin dogrudan
>> baglantisi nedir?
>
> --as-needed linker'ın bir hatasını kapatıyor aslında. Önceden yukarıda
> bahsettiğimiz uygulama libX11 API'sini hiç kullanmayıp sadece Qt API'si
> kullansa bile linker uygulamayı libX11 kitaplığına doğrudan bağlıyordu (Bu
> durumda objdump çıktısında da görünüyor). libX11 ABI kırdığında ise tüm
> uygulamaları yeniden derleyip kullanıcıya güncelletmek zorunda kalıyorduk.
>
> pspec'e bir X kitaplığını bağımlılık olarak yazdığımızda "Bu paket X
> kitaplığına doğrudan linklenmiştir." anlamına gelsin istiyoruz. Böylece X
> kitaplığı ABI kırdığında söz konusu paketin yeniden derlenmesi gerektiğini
> anlayabilelim. Eğer bu bağımlılığı Qt de bağımlı diye yazmazsak yukarıda
> söylediğim senaryoda olduğu gibi sadece qt güncellemesi ile düzelecek
> uygulamaları da boşu boşuna güncellemiş oluyoruz.
>
> Otomatize de edilebilir dediğin gibi; ama overhead'inin yüksek olmasından
> çekiniyorum açıkçası.

Tamam, simdi asil sorunu anladim sanirim. libX11'den bir sembol
kullaniyorsa A zaten libX11'e dogrudan bagimli demek oluyor. Qt'den
dolayi dolayli bir bagimlilik degil yalnizca. Dolayli bagimlilik ve
ldd ciktisi kontrolunden anladigim bu degildi.

Evet bu bilginin paketin olusturulmasi (derleme) sirasinda
cikartilmasi cok daha elverisli. Calisma esnasinda da bu bagimliligi
cikartabiliriz fakat gereginden fazla kontrol yapmamiz gerekir.

Her neyse, halen bu bagimlilik dogrulama isinin el ile yapilmamasi
gerektigini dusunuyorum. Bagimliliklari dogru yazmak zaten hata
yapmaya acik bir is. Pisi burada (derleme asamasinda) bu kontrolu
kendisi yapip, pspec.xml'i duzenelemese bile, dogru bagimliliklari
paketciye verebilir herhalde?

-- 
Barış



Gelistirici mesaj listesiyle ilgili daha fazla bilgi