[Gelistirici] [RFC] Ortak kaynak kullanan paketler
Fatih Aşıcı
fatih at pardus.org.tr
24 Eki 2008 Cum 20:11:27 EEST
Selamlar,
system.base/devel bileşenlerinin bütünlüğünü korumak amacıyla ara sıra yapmak
zorunda kaldığımız hacky yöntem (aynı kaynağı kullanan ikinci bir paket
eklemek) yerine başka bir çözüm yolu aklıma geldi.
Sorun ile en son cmake paketinde karşılaştım. Arşivle gelen grafik arayüzünü
qt'e bağımlı olduğu için derletmiyorum. Bu gibi durumlarda tamamen ayrı bir
cmake-gui paketi yapmak (ve her güncellemede yamaları vs. sync etmek) yerine
asıl cmake paketine ait pspec.xml ve actions.py dosyalarının kullanılması
sağlanabilir. Bunun için depoda yine ayrı bir cmake-gui paketi tutup içine de
sadece
- pspec.xml
- translations.xml
- files
- gui'ye özel yamalar, dosyalar, vs
koyabiliriz. pspec.xml içine ise Merge ya da Inherit gibi bir tag ekleyerek
cmake paketini temel aldığımızı belirtebiliriz:
<PISI>
<Source>
<Name>cmake-gui</Name>
<Merge versionFrom="2.6.2">cmake</Merge>
<BuildDependencies>
<!-- gui'ye özel build bağımlılıkları.
Bunlar cmake'in build deplerine eklenecek. -->
</BuildDependencies>
<Patches>
<!-- gui koduna yapılacak yamalar.
Bunlar da yine cmake'e yapılan yamalara ek olacak. -->
</Patches>
</Source>
<Package>
<!-- cmake-gui paketi -->
</Package>
<History>
...
</History>
</PISI>
Burada pisi Merge tagını gördüğünde kaynak depodaki cmake paketinin Source
tagı ile bu paketin Source tagını merge edecek ve actions.py bulunmadığı
durumda (ya da her zaman?) cmake paketindeki actions.py dosyasını build için
kullanacak. Bu durumda cmake paketindeki actions.py'de aşağıdakine benzer bir
denetim yapılması gerekiyor:
def setup():
opts = "--enable-hede --enable-hüdü"
if get.srcNAME() == "cmake-gui":
opts += " --enable-gui"
autotools.configure(opts)
...
Böylece tek bir actions.py kullanmış ve depoda kod tekrarını da önlemiş
olacağız.
Yorumlar, fikirler?
-------------- sonraki bölüm --------------
A non-text attachment was scrubbed...
Name: kullanılamıyor
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
URL: <http://liste.pardus.org.tr/gelistirici/attachments/20081024/bc965b8a/attachment-0002.pgp>
Gelistirici mesaj listesiyle ilgili
daha fazla bilgi