[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