[Gelistirici] Pardus 2008.2
Ekin Meroğlu
ekin at pardus.org.tr
29 Ara 2008 Pzt 22:25:18 EET
Merhaba;
> Defalarca abi / api kırmadığı dile getirildi
Bu konudan gerçekten sıkıldım - her seferinde ben teorik olarak kontrol
etmemiz gerekenleri listeliyorum, her seferinde "burada bu sorun yok, paket
neden alınmıyor ?" diyorsunuz.
Ben depoya almak için tüm gereklilikleri yazıyorum, özel olarak gtk2/glib2'nin
sorunlarını değil. Niye bu kadar detaylı ve genel yazıyorsun derseniz,
anlaşıldığından emin olamıyorum.
> > - yeni kitaplıkla derlenen (ve eski sürümle çalışmaz hale gelen)
> > uygulamaların olması gerektiği gibi kesin olarak bu yeni sürümlere
> > bağımlı olduğundan emin olmamız gerekiyor.
>
> Defalarca böyle bir şeyin gerekli olmadığı söylendi. Yeni sürüm gtk2 ile
> derleyip eski sürümün olduğu depoya paketi yolladık, faciamız buydu.
Depo bütünlüğünün en temel noktası bu : Depoya almak != kullanıcının
sistemine kurulduğundan emin olmak
"Defalarca böyle bir şeyin gerekli olmadığı"nı söyleyenler maalesef yanlış
biliyorlar, bu şekilde bir depo "depo" olmuyor. Siz depoyu sunarken bir
paketin sorunsuz çalışması için gerekli sürüm kitaplık ile birlikte
kurulacağından kesin olarak emin olmalısınız, kullanıcıda o sürüm yok ise
güncellemeyi zorlamalısınız. Yoksa zaten PiSi'de strict dep diye bir kavram
olmazdı, gereken tüm güncellemeleri depoya alır, kullanıcı tüm güncellemeleri
kursun der geçerdik.
Sadece yeni gtk2'yi depoya almamızın kullanıcı açısından hiç bir anlamı yok,
elle sadece (örneğin) libgnome'u güncelleyebilir bu durumda ve siz "allah
allah, depoya da almıştık halbuki..." dersiniz en fazla. Kullanıcıların pisi
up diyerek tüm güncellemeleri günü gününe takip edeceğinin hiçbir garantisi
yok.
Bu durumdaki paketlerin (yeni gtk2/glib2'ye linklenen ve linklenecek olan)
paketlerin bağımlılıklarının uygun şekilde düzeltilmesi gerekiyor.
> Defalarca da böyle bir şey yapmakta yanlış davrandığımızı da söyledim,
> abi / api kırımı yoktu diye =) az önce dediğim gibi, yeni glib2 ve gtk2
> ile paketleri derleyip, eski sürüm glib2 ve gtk2 paketlerinin yer aldığı
> depoya paketi gönderdik ve böyle bir hatayla karşılaştık.
Paketi "göndermek" ne demek bilmiyorum ama o paketin bağımlılıkları doğru
yazılmış olsaydı bu sorunun ortaya çıkacağını önceden farkedebilirdik
(bağımlı olduğu sürüm depoda yok ise paket kurulamaz, alınan hata nedeniyle
geliştiricilerin haberi olur.). O zaman farkedemedik, farkettiğimizde ise
anlattık fakat ikna edemedik. Bundan sonra benzer durumda sorunları önceden
farkedebilmemiz için almamız gereken önlemleri anlatmaya çalışıyorum ben.
> Malesef sizin kadar paketleme konusunda yetişkin olmadığımdan ve
> neredeyse bu paketlerle bu kadar ilgilenebilen -bu listeye bu konu
> hakkında bir şeyler karalayan- tek geliştirici olduğum için aklıma çözüm
> önerilerinden başka bir şey gelmiyor. Defalarca dediğim gibi bu üç adım
> sorunsuz bir şekilde tamamlanırsa geçişte problem olmayacak:
>
> - Gtk2 ve Glib2'yi devel'de güncelle.
> - gail bağımlılığı olanlara (3 tane paket var sanırım) gtk2 strict dep
> belirt ve release artır.
Bu adımlar _sadece_ bu paketlerin depoya girdiği anda
pisi up
diyen kullanıcıların sorununu çözer.
Bunu o anda yapmamış ve bir sonraki (yine örneğin ve yine gerekli
bağımlılıkları yazılmamış ise) libgnome güncellemesi sonrası sadece libgnome
güncelleyen bir kullanıcı ise eski gtk2/glib2 paketleri ve yeni gtk2/glib2'ye
linklenmiş libgnome ile kalakalır - sizin yukarıda facia diye tanımladığınız
durum.
Çünkü depoda yeni gtk2/glib2 var, derlenen paketler bu kitaplıklara
linkleniyor, ama herhangi bir kullanıcıda eski paketler var/olabilir, siz
derlenen pakete strict dep. yazmıyorsunuz, linklenen paket yükseltildiği
halde yanında yeni sürüm kitaplığı getirmiyor / kitaplık güncellemesini
zorlamıyor.
Doruk'un ve Gökçen'in o tartışmada konuyu anlattığı postalar aşağıda, özetle
aynı şeyi söylemişler :
http://liste.pardus.org.tr/gelistirici/2008-October/013684.html
http://liste.pardus.org.tr/gelistirici/2008-October/013680.html
Yine bu örnekten gidersek, bu güncelleme ile birlikte veya sonrasında depoya
giren ve yeni sürüm kitaplıklarla gelen yeni sembolleri (libgnome örneğinde
g_dgettext sembolü) kullanan tüm uygulamalar strict olarak yeni sürüm
kitaplığa bağlı olmalıdır. Yukarıdaki adımlarınıza bu eklenmeli, benim baştan
beri ilgili tüm paketler elden geçmeli dediğim nokta burası.
> Ben ikna edemedim, başaramadım, anlatamadım, beceremedim. Yapabileceğim
> bir şey de kalmadı, zaten çok da önemli güncellemeler değil ama benim
> asıl anlatmak istediğim, bu işin gerçekten basit olduğu.
Bu kadar basit olmadığını ben (ve birçok kişi) anlatamadı asıl. Aslında evet
basit, ama yaklaşık 2.5 aydır bu strict bağımlılıkların gerekliliğine ikna
edemedik kimseyi, tartışmada daha ileri gitmek mümkün olamıyor. Belki
paketler incelendiğinde iki paket çıkacak strict dep yazılması gereken, ama
biz incelemek yerine dönüp dönüp gerek var / gerek yok konuştuğumuzdan
önümüzü göremiyoruz bir türlü.
Tekrar edeyim - özel olarak bu güncellemeye karşı değilim, ama hala bu kadar
temel bir kuralı tartışıyorsak bu güncelleme için acele etmeyeceğim.
Söylediklerimin hepsi bu güncellemenin yaratacağı sorunlarla birebir
eşleşmiyor olabilir, ama depo kuralları bir bütün ve bu bütün anlaşılmadan
paket bakımı yapmak neredeyse imkansız.
--
İyi Çalışmalar;
Ekin Meroglu <ekin_at_pardus.org.tr>
... did i listen to pop music because i was miserable, or was i miserable
because i listened to pop music?... - rob [nick hornby / hi fi]
Gelistirici mesaj listesiyle ilgili
daha fazla bilgi