[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