[Gelistirici] Gnome ActionsAPI

Eren Türkay turkay.eren at gmail.com
28 Haz 2007 Per 10:31:59 EEST


Selam,

Gnome paketlerinin artması sebebiyle belli başlı sürekli yapılması
gereken işleri her actions.py'de tekrarlamak çok zaman kaybettiriyor ve
amelelik oluyor. Kde için olduğu gibi Gnome için de sürekli tekrarlanan
işleri otomatiğe bağlayacak bir actionsapi olması iyi olacak.

Nedir bu otomatik yapılacak işler?

1- Uygulama Gconf kullanıyorsa, make install esnasında Gconf şemaları
yükleniyor (aslında yüklenmiyor, sandbox violation verip bu işlem
yarıda kesiliyor, süreç devam ediyor.) Bu şemaların make install
esnasında yüklenmeyip post-install'da yüklenmesi gerekiyor. Bunun için
"GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1" değişkenini export edip
install işlemine devam etmek lazım. Yalnız denediğim uygulamalarda bu
veriable'i export etmeme rağmen gconf şemalarının update işlemini
gerçekleştirdi, uygulamalarda --disable-schemas-install
parametresi var ve işe yarıyor. Yani api'de hem o veriable'ı set
edeceğiz hem de configure fonksiyonunda --disable-schemas-install
vereceğiz. (diğer dağıtımlar da o veriable'ı set ediyor)

2- Scrollkeeper da aynı şekilde make install esnasında database'ini
güncelliyor. Bunun da post-install'da çalışması lazım. Bazen
--disable-scrollkeeper çalışmıyor ve yine update ediyor. Buna benim
aklıma gelen en iyi yöntem configure esnasında Makefile.in'de bulunan
scrollkeeper-update komutlarını "echo" ile sed etmek. Böylece işi
garantiye almış olacağız. (evet hacky, kabul ediyorum ama gnome ile
başetmek için gerekiyor)

3- Icon cache'i de update edip Install dizinine atıyor. Bu eğer
halledilmez ve gözden kaçarsa "icon-theme.cache" dosyası bir diğer gtk
paketi ile çakışarak kurulumu etkiliyor. Bunu da install
dizininde oluşan "/usr/share/hicolor/icon-theme.cache" dosyasını
gnome.install()'da silerek halledebiliriz.

Tüm bunları yaptıktan sonra her gnome paketine COMAR betiği koymayı da
unutmuyoruz tabi :)

Şunlara bakmak da faydalı olabilir;
http://mirrors.usc.edu/pub/linux/distributions/gentoo/eclass/gnome2.eclass
http://mirrors.usc.edu/pub/linux/distributions/gentoo/eclass/gnome2-utils.eclass

Yorumlar, öneriler?

Not: "Gnome desteklemiyoruz, KDE dağıtımıyız",  "zaten 10-15 paket var
amelelik yapın biraz ne olacak" gibi söylemlerden kaçınırsanız
sevinirim :)



Gelistirici mesaj listesiyle ilgili daha fazla bilgi