28
Ara
Bugün Necdet Hoca pardusun 64 bit üzerinde çalışan sürümünün olmadığını Gebze'de yaptıkları toplantıda bu görevi almayı düşündüklerini ve önümüzdeki dönem bu konu üzerinde çalışacağımızı söyledi.
Bunun için piside paket kurma üzerinde çalıştım.
Öncelikle paketleme yapılacak olan programı çok iyi bilmemiz gerekiyor.Hangi kaynaktan indirildiğini,sha1sum numarasını ve kullanılacak olan dosyanın kullandığı başka programlar varsa eğer(buna bağımlılık deniyor.) bunları bilmeliyiz.Programın kaynak kodundan ve internet sitesinden araştırma yaparak bunları bulmamız mümkün.
İnternetten araştırma yaparak actions.py ve pspec.xml dosyalarını oluşturmam gerektiğini öğrendim.
*actions.py içerisinde programın setup,build ve install aşamasında programın kurulumu için yapılacak olan aşamalar yazılır.
*pspec.xml içerisinde ise paketin nerden geldiği,oluşturan kişinin adı soyadı iletişim bilgileri vs. bulunmaktadır.
Yama eklemek istediğimiz takdirde yapılan değişiklikleri diff komutu ile bulup .patch isimli bir dosyaya atıyoruz actions.py ve pspe.xml dosyalarının bulunduğu dizine files isimli yeni bir dizin açıyoruz.Patch uzantılı dosyamızı buraya atıyoruz.
Bu yamaların pisi tarafından eklenebilmesi için pspec.xml dosyamızda da değişiklik yapmamız gerekiyor.Bu yüzden "source" takısının altına takısı açıyoruz.
yama.patch şklindeki eklemeyi yapıp patches takısını kapatıyoruz.
Tüm bunları yapmak için uğraşırken en fazla actions.py dosyasının yazımında zorlandım.Bu konuda http://tr.pardus-wiki.org/Pardus:ActionsAPI adresinde bulunan fonksiyonları kullanmak zorundayız.
pspec.xml yazarken dikkat etmemiz gereken nokta ise bilgilerin doğruluğu.Özellikle sha1sum konusunda önemli hatalar meydana gelebiliyor.
Bugün örneği kullanarak bir pisi paketi oluşturdum.
Sırada xten-xlite uygulamasının paketi var.
Pardus 64 bit projesinde paketçi olarak çalışıcağımız için paketleme konusunda deneyim kazanmamız gerekmekte.Bu yüzden bize dendiği üzere Pardus paket deposundan 10 paket seçerek uğraşmaya başladık.Madplay isimli bir paket seçmiştim.Bir audio decode imiş kendileri.Bu paketi yapmaya çalışırken aşağıda ki hatayı aldım ve çözümü ilgimi çektiği için burdan da paylaşmak istedim.

Kurulum dizini (/var/pisi/paketadı/install) altında terkedilmiş dosyalar var:
şeklinde bir hata alırsak eğer.

- pspec.xml dosyasında "Files" bölümünde yolunu belirtmediğiniz dosyalar
olabilir,
- kaynak kodda "authors", "readme*" gibi dosyalar olup bunlar
pisitools.dodoc ile gerekli yerlere gönderilmemiş olabilir,
- doc veya man gibi klasörlerin pakete alınmaması gibi durumlar olabilir.
Pspec.xml dosyasında yollar eksiksiz yazılmalı,
actions.py dosyasında pisitools.dodoc ile dosyalar sahipsiz
bırakılmamalı, gereksiz dosyalar yine de varsa pisi actionsapi'deki diğer
yollarla silinmeli imiş.İlgili arkadaşlara faydalı olur umarım.
22
Kas
Bugünkü görevime başlamadan önce pspec.xml dosyasındaki bilgilerin doğruluğunu kontrol ederek tekrar bir düzenleme yaptım.Lisans ve açıklamalar kısmından emin olduktan sonra nasıl resim koyabilirim die derin düşüncelere daldım.
Genelde program paketlerinin içinde icons isimli bir dizinde bulunan resimler benim paketlediğim programda olmadığı için internetten programı temsilen bir resim buldum.
Resmi eklemek için en uygun yerin files dizini olduğunu düşündüm.Böylelikle pspec.xml içerisinde etiketleri ile tanımladığım taktirde resimi de paketime dahil etmiş olucaktım.
Daha sonra x-lite.desktop isimli bir dosya oluşturdum.Bu dosyanın içeriği
*[Desktop Entry]
Name=X-Lite
Comment=Communication application for PiSi
GenericName=VoIP Telephony
GenericName[tr]=VoIP Telefonu
Exec=xtensoftphone
Icon=x-lite.png
Terminal=0
Type=Application
Encoding=UTF-8
Categories=Network;Application;

Burada önemli olan kısım Exec,Icon ve Categories kısımları.
Exec kısmına çalıştırılabilir dosyamızın adını
Icon kısmına files içine eklediğimiz resim dosyasını
Categories kısmına da uygulamamızın ne tür bir uygulama olduğunu yazıyoruz.

Benim buda yaptığım hata exec kısmını yanlış doldurmaktı.Paketi hazırlama ve kurulum aşamasında bir sorun çıkmadı.Ama uygulamanın simgesinin üzerinde tıkladığımda hiç bir tepki vermiyordu.
Exec kısmını düzeltip programı tekrar paketledim ve mutlu son:)
İlk pisi paketimi hazırlamış oldum.:)

İkinci görevim cpulimit isimli konsoldan çalışan işlemciye limit koymamızı sağlayan bir programdı.
Önce herzamanki gibi programı kendim kurup çalıştırdım.
README dosyasını inceledim.Lisansı,sürümü bağımlılıkları hakkında bilgi edindim.
Açık konuşmak gerekirse programı ilk başta kurarken bile zorlandım.Çünkü konsoldan yapmam gerekiyodu ve daha önce pek yaptığım söylenemezdi.Uzun uğraşlar sonucunda paketi kurdum hangi dosyaları nereye atıyo gördüm çalıştırdım denedim.
Daha sonra pspec.xml ve actions.py dosyalarımı oluşturmaya başladım.
Konsoldan çalışan bir program olduğu için .desktop uzantılı bir dosyaya ihtiyaç duymadım.Herhangi bir yama yada resim kullanmadığım içinde files dizini bile oluşturmadım.
Herşeyi yaptıktan sonra daha önce karşılaştığım bir takım hatalarla karşılaştım ama daha önceden deneyimli olduğum için çözmek zamanımı almadı bu kez.
Akşam 5 sularında cpulimit.pisi uzantılı pisi paketimi elde ettim:)
Bir günde 2 paket yapmak moral verici ve yüreklendirici bir şey.
Hocamla birlikte çalıştırıp denedik ve bugünkü görevimde bitmiş oldu.
Pisi paketleme işinin deneyim ve denemelere bağlı olduğunu öğrenmiş oldum.İnsan aşina olduktan,farklı programlar üzerinde çalıştıktan sonra fazla zorlanmıyacağını düşünmeye başladım.
Ewt bugün xten-xlite uygulamasını tanımakla işe başladım.

Bir VoIP iletişim uygulaması.

Önce programı kendim kurdum.Hangi dosyaları nereye atıyor bunları gördüm.X-lite'ın Skype'a benzer özellikleri var.Bu yüzden pardus paket deposundan skype'ın actions.py ve pspec.xml dosyalarını inceledim.

Parduswiki de bulunan http://tr.pardus-wiki.org/NASIL:PiSi_Hello_World belgesini açık tutup kendime rehber ettim.

Sürekli olarak forumlardaki önerilere baktım.Daha sonra dosyaları oluşturmaya başladım.

Pspec.xml dosyasını kopyalayıp kendi programıma göre düzenledim.İşin önemli bir kısmı bitmişti.ama bilgilerin doğruluğu şüpheliydi.Yükleme aşamasında görücektim herşeyi:)

Actions.py dosyasını oluştururkende programın içinde bulunan README dosyasını okudum.Bu dosyada install aşamasında neler yapılıcağı zaten yazıyor.README de yazanlara göre actions.py dosyasını oluşturdum.

Ardından files adında bir dizin oluşturdum.Bu dizin içinde x-lite.desktop adında bir dosya yazdım.Bu dosyayı yazma sebebim program kurulduktan sonra programlar kısmında görmek istememizdi.

Sıra geldi işin en heyecanlı kısmına.Yazdıklarımızın gerekten doğru olup olmadığını anlamaya.Bunun için konsola gelip pisi build pspec.xml yazdım.Ve ilk gördüğüm şey bir hata mesajıydı.

Hata yaptığım yerler.

1)sha1sum numarasının yanlış yazmından kaynaklı "check_file_hash başarısızlığa uğradı" hatası
2)Dosyayı indirdiğimiz kaynakla alakalı "not a gzip file" hatası
3)taz.gz dosyası ile içinden çıkan klasörün farklı olması durumunda ortaya çıkan bazı hatalar.

Bu hataları forumlardan araştırarak çözdüm.
1. si için konsoldan sha1sum paketadi.tar.gz komutunu
2.si için biraz hocamın yardımı
3.sü için ise actions.py de def setup(): tan önce workDir("*") fonksiyonunu kullandım.

Tüm bunları çözüp tekrar inşa ettikten sonra(pisi build pspec.xml) elimde .pisi uzantılı bir paket oluşmuştu.Böylelikle ilk paketimi yaptım ama eksiklerim var.Daha uygulamalar kısmına bir icon ve resim yerleştirme var.