[Gelistirici] Package-diff-notify Betiği
Gökhan Özbulak
gozbulak at pardus.org.tr
28 Ara 2010 Sal 11:04:59 EET
Merhaba,
Paketçilerin, sahip oldukları paket(ler) ile ilgili güncel bilgiyi özet
şekilde dosyaya yazan ve(ya) e-posta yoluyla ileten bir Python betiği
uludag/trunk altında [1] yerini aldi. Betik, özetle, tanımlanmış dağıtım
depolarındaki pisi index dosyalarını kullanarak bir paketçiye ait paketleri
saptayıp, bu paketlere ait yama ve alt paket sayıları ile sürüm ve yayım
numaralarını dağıtım depoları arasında karşılaştırmalı olarak kullanıcıya
sunuyor. Bir pakete ait örnek çıktı aşağıdaki gibi:
package-name
-----
Package Names:
Pardus 2011 : package-name
Pardus Corporate 2 :
Pardus 2009 : obsolete-package-name
Packager:
Pardus 2011 : Packager <packager at pardus.org.tr>
Pardus Corporate 2 : Packager2 <packager2 at gmail.com>
Pardus 2009 :
Release:
Pardus 2011 : 8
Pardus Corporate 2 : 9
Pardus 2009 : 6
Version:
Pardus 2011 : 2.0.15
Pardus Corporate 2 :
Pardus 2009 : 2.0.10
Number of Sub-Package:
Pardus 2011 : 3
Pardus Corporate 2 : 2
Pardus 2009 : 1
Number of Patches:
Pardus 2011 : 4
Pardus Corporate 2 : 3
Pardus 2009 :
Betik, aynı paketin bakımını yapan farklı paketçileri ve eskimiş olarak
işaretlenmiş paketleri(obsolete) dikkate alarak gerçeklendi. Buna göre,
paketçi, paketin bakımını başka paketçilerle paylaşıyorsa ve(ya) paket daha
eski depo(lar)da farklı bir isim ile barınıyorsa, bunu betiğin ürettiği
çıktıda görebiliyor. Yukarıdaki çıktı incelenecek olursa "package_name" isimli
paket 2011 ve Corporate2 dağıtımlarında aynı isimle bulunurken 2009'daki
"obsolete-package-name" isimli paketi replace etmiş. Ayrıca "package-name",
"Packager" ve "Packager2" isimli iki ayrı paketçi tarafından güncelleniyorken,
2009'daki "obsolete-package-name" "Packager2" tarafından güncelleniyor. Bu
bilgileri, paketin farklı dağıtımlardaki sürüm ve yayım numaraları ile alt
paket ve yama sayısı takip ediyor. Yukarıdan da anlaşılacağı üzere dağıtımın
karşısındaki boşluk bir üstteki değeri temsil ediyor.
Betiğin, paketçilerin paket durumları hakkında bilgi sahibi olmaları ve
gereken müdaheleleri yapmaları için belirli aralıklarla calıştırılmasını
planlıyoruz (Burada siz geliştiricilerin yorumları da önemli tabi :)). Bunun
dışında paketçiler de betiği bireysel olarak çalıştırıp paketlerinin
durumlarını sorgulayıp, istediği paketleri filtreleyebilir ve belirli
bileşenleri hariç tutabilirler. Çeşitli kullanım şekilleri aşağıdaki gibi:
1) Paketçi, tüm paketleri ile ilgili bilgi almak istiyorsa (Varsayılan olarak
"desktop.kde" ve "kernel" bileşenlerindeki paketler hariç tutuluyor):
$ ./package-diff-notify -p "Packager name"
2) Paketçi, yalnız p1 ve p2 paketleri ile ilgili bilgi almak istiyorsa
$ ./package-diff-notify -p "Packager name" -k "p1,p2"
3) Paketçi, c1, c2 ve c3 bileşenleri altına düşen paketler dışındaki paketler
ile ilgili bilgi almak istiyorsa
$ ./package-diff-notify -p "Packager name" -x "c1,c2,c3"
4) Paketçi, üretilen çıktıyı paketlerinde belirttiği e-posta
adresine/adreslerine göndermek istiyorsa (Betik içerisindeki e-posta ile
ilgili ayarların yapılması gerekiyor, bkz. satır 51,52,53,54)
$ ./package-diff-notify -p "Packager name" -m
5) Paketçi, betik içerisinde tanımlanmış depo adreslerini ezmek istiyorsa
$ ./package-diff-notify -p "Packager name" repoURL1 repoURL2 repoURL3
6) Paketçi, uzak adres yerine yerel dosya sistemindeki pisi index dosyalarını
kullanmak istiyorsa (Index dosyaları, betik ile aynı dizinde barınıyor olmalı)
$ ./package-diff-notify -p "Packager name" -u
7) Paketçi, paket bilgilerini sadece e-posta olarak almak istiyorsa (dosyaya
yazma varsayılan davranış)
$ ./package-diff-notify -p "Packager name" -n -m
8) Betik hakkında detaylı bilgi ve yardım almak için
$ ./package-diff-notify -h
Son olarak betik xz ve bz2 formatlarındaki index dosyaları için çalışıyor,
direk xml vermek sorun olacaktır.
Betik ile ilgili fikirleriniz, aldığınız hata vs. şeyler olursa paylaşmaktan
çekinmeyim.
İyi çalışmalar
[1] http://svn.pardus.org.tr/uludag/trunk/scripts/package-diff-notify.py
--
Gökhan Özbulak / go
Pardus -- Tübitak/UEKAE
http://www.pardus.org.tr/eng
Gelistirici mesaj listesiyle ilgili
daha fazla bilgi