diff --git a/doc/pisi.lyx b/doc/pisi.lyx
deleted file mode 100644
index 406cf975..00000000
--- a/doc/pisi.lyx
+++ /dev/null
@@ -1,2799 +0,0 @@
-#LyX 1.3 created this file. For more info see http://www.lyx.org/
-\lyxformat 221
-\textclass article
-\language turkish
-\inputencoding auto
-\fontscheme pslatex
-\graphics default
-\paperfontsize default
-\spacing single
-\papersize Default
-\paperpackage a4
-\use_geometry 0
-\use_amsmath 0
-\use_natbib 0
-\use_numerical_citations 0
-\paperorientation portrait
-\secnumdepth 3
-\tocdepth 3
-\paragraph_separation skip
-\defskip medskip
-\quotes_language english
-\quotes_times 2
-\papercolumns 1
-\papersides 1
-\paperpagestyle default
-
-\layout Title
-
-PISI
-\newline
-(Packages Installed Succesfully as Intented)
-\layout Author
-
-S.
- Çağlar Onur, Onur Küçük, Barış Metin, A.
- Murat Eren, Eray Özkural, Gürer Özen
-\layout Date
-
-(Pre-Alpha)
-\layout Standard
-\pagebreak_top \pagebreak_bottom
-
-\begin_inset LatexCommand \tableofcontents{}
-
-\end_inset
-
-
-\layout Section
-
-Giriş
-\layout Standard
-
-Paket, bir uygulamayı ya da işletim sisteminin bir parçasını tüm bileşenleriyle
- toplu olarak ifade eden bir kavramdır.
- Uygulamaların bir yerden bir yere taşınması (örneğin bir CD yada ağ kaynağından
- gelip, sisteme kurulması) sırasında bazı bileşenlerin geride unutulmamasını
- sağlar.
- Bir sistemdeki onbinlerce dosyayı, görevleri ve ait oldukları uygulamalar
- bazında birkaç yüz pakete ayırarak yönetilebilir kılar.
- Kullanıcının büyük bir sistemde neler bulunduğuna hakim olabilmesini kolaylaştı
-rır.
-\layout Standard
-
-Bu paketleri kurup kaldırmak, çeşitli kaynaklardan temin etmek, sorgulamak,
- sistemdeki değişiklikleri takip etmek için, paket yöneticisi adını verdiğimiz
- bir uygulamaya ihtiyaç vardır.
-\layout Section
-
-Paket Yöneticisi Gereksinimleri
-\layout Standard
-
-Bu kısımda önceki bölümde tanımlanan paket yöneticisi kavramının, sunması
- beklenen gereksinimler listelenmiştir.
-\layout Subsection
-
-Kullanıcı Gereksinimleri
-\layout Standard
-
-Kullanıcı gereksinimleri, bilişim okuryazarı olarak daha önce tanımladığımız
-\begin_inset Foot
-collapsed true
-
-\layout Standard
-
-
-\begin_inset LatexCommand \url[http://www.uludag.org.tr/belgeler/okuryazar/okuryazar.html]{}
-
-\end_inset
-
-
-\end_inset
-
- kullanıcı profiline bağlı kalınarak çıkarılmıştır.
-\layout Itemize
-
-Bilişim okuryazarının temel isteği, sisteme istediği uygulamaları kolayca
- kurabilmekten ibarettir.
-\begin_deeper
-\layout Itemize
-
-Kur emri, komut satırından, grafik arayüzlerden, ya da sistemin otomatik
- olarak bir pakete ihtiyaç olduğunu saptamasıyla kolayca verilebilmeli,
- bu görev mümkün olduğunca soru sorulmadan ve kullanıcıyı rahatsız etmeden
- yerine getirilmelidir.
-\layout Itemize
-
-Kullanıcı, paketin sistemde doğru şekilde çalışabilmesi için gerekli olan
- yapılandırma gereksinimlerinin karşılanmasından mümkün olduğunca yalıtılmalıdır.
- Yapılandırma ile ilgili görevler paket yöneticisi dışındaki bir araçla
- otomatik sağlanmalı, ya da kullanıcının verdiği emirlerle sonradan yapılabilmel
-idir.
-
-\layout Itemize
-
-Kurulum mümkün olduğunca hızlı olmalıdır.
-\end_deeper
-\layout Itemize
-
-Kurulu programların yeni sürümleri çıktıkça, veya üzerinde düzeltmeler ve
- güvenlik onarımları yapılmış yeni paket sürümleri yayımlandıkça, kullanıcı
- elindeki uygulamaları güncellemek isteyecektir.
-\begin_deeper
-\layout Itemize
-
-Kullanıcı vakti yada ağ bağlantı hızı yetersiz olduğunda acil önem taşıyan
- ve yapılması gerekli güncellemeleri, diğerlerinden kolayca ayırabilmelidir;
- bunun yapılabilmesi için paketin her sürümündeki güncellemelerin önem derecesi
- (yeni özellikler, hata düzeltmeleri, güvenlik açığı düzeltmesi) paketleme
- esnasında belirtilebilmelidir.
-\layout Itemize
-
-Bir paketin eski veya deneysel sürümlerini kurmak bilişim okuryazarının
- bir ihtiyacı değildir.
- Dolayısıyla eski sürümler ve geliştirme sürümleri alternatifleri ile kullanıcın
-ın kafasının karıştırılmaması için; kullanıcı paketler deposunda her eriştiğinde
- en son düzeltmeleri içeren son ve tek bir sürüme ulaşabilmelidir.
- Bu hem basitlik sağlar, hem de kullanıcının istemeyerek yanlış bir paket
- kurmasının önüne geçer.
-\layout Itemize
-
-Paket güncelleme ile ilgili paket bazında ayrı ayrı politikalar belirlenmesi
- yukarda bahsedilen kullanıcı profilinden bakıldığında gereksiz ve kafa
- karıştırıcıdır.
-\end_deeper
-\layout Itemize
-
-Nerdeyse her uygulama kendi sürüm numarası verme politikasına sahip olduğundan,
- paketin asıl sürüm numarası yanında, düzenli olarak artacak bir numara
- daha vererek, kullanıcının kolayca hangi sürümlerin yeni olduğunu ayırt
- edebilmesi sağlanabilmelidir (aynı uygulama sürümünün çeşitli hata düzeltmeleri
- içeren farklı paket sürümleri olabileceği de düşünülürse bunun önemi daha
- net bir şekilde ortaya çıkmaktadır).
-\layout Itemize
-
-Kullanıcı, artık ihtiyaç duymadığı bir uygulamayı, yer ve takip tasarrufu
- amacıyla kaldırmak isteyebilir.
- Kullanıcının bu seçimi kolayca yapabilmesi için, hiç bir paket tarafından
- ihtiyaç duyulmayan paketler, kurulu paketlerin kapladığı alan gibi bilgiler
- paket yöneticisinden kolayca alınabilmelidir.
-\layout Itemize
-
-Kullanıcı sistemde nelerin kurulu olduğunu, hangi paketleri kurabileceğini,
- kurulu paketlere ait bilgileri, sistemdeki bir bileşen veya dosyanın hangi
- uygulamaya ait olduğunu ve benzeri paket yöneticisinden kolayca alabilmelidir.
-\layout Itemize
-
-Paketler farklı hedeflere kurulabilecek biçimde
-\begin_inset Quotes eld
-\end_inset
-
-
-\emph on
-relocatable
-\emph default
-
-\begin_inset Quotes erd
-\end_inset
-
- özellik taşımalıdır (bu, farklı hedeflere kurulum, ya da başkasına ait
- sistemde ev dizinine kurulum gibi yeteneklerin sağlanması için gereklidir).
-\layout Itemize
-
-Paket bileşenlerinin değişip değişmediği kontrol toplamları, özet fonksiyonları
- yardımıyla tespit edilebilmelidir.
- Paket yöneticisinin böyle bir durumu kontrol edebilmesi, ve örneğin bir
- kullanıcı hatası sonucu silinen/değişen dosyaları tekrar temin edip düzeltebilm
-esi kullanıcıya kolaylık sağlar.
-\layout Itemize
-
-Uygulamayı kod olarak çekip, sisteme özel değişik ayarlar ile derleyebilecek
- Gentoo benzeri bir özellik gereklerimiz arasında değildir.
- Bu tür bir özellik aynı kodun farklı makinalarda farklı ikili paketler
- oluşturmasına ve teknik destek sağlamanın zorlaşmasına yol açacaktır.
-\layout Subsection
-
-Paketleyici/Geliştirici Gereksinimleri
-\layout Itemize
-
-Paket hazırlamak kolay olmalıdır.
- Paket hazırlanırken ve inşa edilirken gerekli dosyalar bir çok ayrı kaynaktan
- temin edilebilmelidir.
-
-\layout Itemize
-
-Pakete ait bilgiler iyi tanımlanmış bir formatta, kolayca erişilebilir olarak
- tutulmalıdır.
- Böylece paketleri işleyen araçlar yapmak kolaylaşacak, ilerde veri bağımlılığı
- sorunları olmayacaktır.
-\layout Itemize
-
-Kolayca paket oluşturabilmek için, tercihen bir grafik arayüz ile paket
- hazırlanabilmelidir.
- Paket yöneticisi, üst geliştirici kodunu alıp, gerekli bilgileri hazırlatacak,
- gerekli işaretlemeleri kolayca yapabilecek bir araç sunmalıdır.
-\layout Itemize
-
-Paket yöneticisinin geliştirme sistemi, paketleyici hatalarının gözden kaçmasını
- zorlaştıracak araçlar sunmalıdır.
-\layout Subsection
-
-Paket Kaynağı Gereksinimleri
-\layout Itemize
-
-Paketler CD, Internet, uzak dosya sistemi gibi çeşitli kaynaklardan kurulabilmel
-idir.
- Temel olarak iki tip kaynak sözkonusudur.
-\layout Itemize
-
-İlk tip, pakedi tek bir dosya olarak taşıyabilen ve programı depolama aygıtları,
- e-posta ve benzeri yollarla dağıtmaya uygun bir arşiv dosyasıdır.
-\begin_deeper
-\layout Itemize
-
-Bu arşiv içinden, arşiv hakkında bilgi alınabilecek dosyalara, bütün arşivi
- açmadan erişilebilmelidir.
-\layout Itemize
-
-Mümkünse arşivin yaygın olarak bilinen ve kullanılan araçlarla açılabilmesinde
- yarar vardır.
-\end_deeper
-\layout Itemize
-
-İkinci tip kaynak ise Internet yada yerel ağ üzerinden bir paket grubunun
- indeks bilgilerini ve kendilerini sunabilecek bir
-\begin_inset Quotes eld
-\end_inset
-
-depo
-\begin_inset Quotes erd
-\end_inset
-
- sunucusudur.
-\begin_deeper
-\layout Itemize
-
-Depodaki değişikliklerin listesi, yerel paket listesiyle mümkün olan en
- az veri iletimi ile senkron edilebilmelidir.
- Bu ağ kaynaklarının verimli kullanımı ve yeni sürümlerin hızlıca takip
- edilebilmesi için gereklidir.
-\end_deeper
-\layout Itemize
-
-Paketler birden fazla kaynaktan temin edilebilmelidir.
-\layout Subsection
-
-Güvenlik Gereksinimleri
-\layout Itemize
-
-CD, Internet gibi değişik yollarla temin edilen paketlerin kim tarafından
- paketlendiği bilgisi ve içeriğinin yolda değişmediği garantisi için bir
- dijital imza sistemi desteklenmelidir.
-\layout Itemize
-
-Gerektiğinde pakedi oluşturan kişinin imzası dışında, üçüncü parti kurum
- veya kişilerin de pakedi deneyip, güvendiğini belirtebilmesi için, birden
- fazla kişi tarafından pakedin imzalanabilmesi gereklidir.
-\layout Subsection
-
-Kurumsal Gereksinimler
-\layout Itemize
-
-Paket yöneticisi birden fazla paket kaynağı ile aynı anda sorunsuz bir şekilde
- çalışabilmelidir.
-\layout Itemize
-
-Kurumlar ya da bireyler tarafından
-\emph on
-ön tanımlı depoda da bulunan
-\emph default
- kimi paketlerin değiştirilmiş versiyonlarının bulunduğu depolar
-\emph on
-overlay
-\emph default
- olarak tanımlanabilmelidir.
-\layout Itemize
-
-Ön tanımlı depoda
-\emph on
-bulunmayan
-\emph default
- çeşitli paketlerin bulunduğu depolar
-\emph on
-addon
-\emph default
- olarak tanımlanabilmelidir.
-\layout Section
-
-Neden PİSİ?
-\layout Standard
-
-Hali hazırda varolan ve geniş bir kullanım oranına sahip paket yöneticileri
- (RPM, DPKG ve Portage) yukarda saydığımız gereksinimlerin kimilerini bizim
- olması gerektiğini düşündüğümüz basitlikte yerine getirememekte, kimilerini
- de hiç vaad etmemektedirler.
- Bu paket yöneticilerinin geliştirilmesi ve istenen noktaya getirilmeye
- çalışılması yeni ve ayakları yere daha sağlam basan bir paket yöneticisini
- yeniden yazmaktan daha kolay değildir.
-\layout Standard
-
-Daha önemlisi, varolan paket yöneticilerinin paket formatlarında
-\emph on
-görev
-\emph default
-leri ve
-\emph on
-bilgi
-\emph default
-leri birbirinden düzgün bir biçimde ayrılmadıkları görülmektedir.
- Bu araçlar basit olarak hazırlanmış ve zaman içinde ortaya çıkan ihtiyaçları
- karşılamak için sürekli yeni özellikler eklenerek bugünkü hallerine gelmişlerdi
-r.
- Bunun getirdiği karmaşıklığı temizlemek için aşağıdaki iki ilkeyi temel
- alan yeni bir paket yöneticisinin yazılmasına verilmiştir:
-\layout Itemize
-
-
-\series bold
-Kurulum ve yapılandırma birbirinden ayrı iki görevdir
-\series default
-.
- Kurulum, yalnızca programların kurulumu, güncellenmesi ve kaldırılması
- esnasında iş görürken, yapılandırma hem kurulumda hem de çalışan sistemde
- söz konusudur.
- Bu ayrı görevleri sorumluluk sınırları belirlenmiş ayrı araçların yerine
- getirmesi uygundur.
- Uludağ projesi için yapılandırma işlerini yürütecek araç
-\series bold
-ÇOMAR
-\series default
-'dır.
-
-\series bold
-PİSİ
-\series default
- bu görevleri
-\series bold
- ÇOMAR
-\series default
-'a devredecektir.
-\layout Itemize
-
-
-\series bold
-Paket meta bilgileri ile paketin derlenme ve kurulumunu yöneten betikler
- iç içe geçmemelidir
-\series default
-.
- Varolan paket yöneticilerinde paket tanımlama dosyaları kod ile bilginin
- birbirine karıştığı, araçlarla işlemesi, içinden bilgi çıkarılması zor,
- net ve kesin tanımlanmamış biçimlerdedir.
-\layout Section
-
-PİSİ Tasarımı
-\layout Subsection
-
-Paket Oluşturma
-\layout Standard
-
-Bu kısımda bir
-\series bold
-PİSİ
-\series default
- paketinin oluşturulması ve kullanılması esnasında gerek duyulacak meta
- dosyalar ve süreçler netleştirilmeye çalışılmıştır.
-\layout Subsubsection
-
-PSPEC Dosyası
-\layout Standard
-
-
-\series bold
-PSPEC (PİSİ SPECification)
-\series default
- dosyası paketin oluşturulması için gerekli olan temel bilgiyi tanımlar.
- Oluşturulacak paketin ne olduğu, kaynağı, kim tarafından paketlendiği,
- kaynağa uygulanan yamalar, hangi başka paketlere ne tür bağımlılıklar içerdiği
- gibi bilgileri içerir.
-\layout Standard
-
-Bir
-\series bold
-PSPEC
-\series default
- dosyasından, dolayısı ile bir kaynaktan birden fazla paket oluşturulabilir.
- Örneğin kcontrol paketi kdebase-kaynaksürümü.paketsürümü.tar.gz kaynağından
- oluşturulabilecek yalnızca bir pakettir.
-\layout Standard
-
-Dosya biçimi XML'dir ve aşağıdaki etiketleri içerir.
- Her
-\series bold
-PSPEC
-\series default
- dosyasında tüm etiketlerin bulunması zorunlu değildir.
- Bulunması zorunlu olan etiketler aşağıda (*) ile belirtilmiştir.
-\layout Standard
-
-
-\series bold
-PSPEC
-\series default
- dosyaları
-\series bold
-PSPEC
-\series default
- deposunda pakete ait dizinde
-\series bold
-pspec.xml
-\series default
- adı ile tutulurlar.
-\layout Standard
-
-Her
-\series bold
-PSPEC
-\series default
- dosyası
-\series bold
-PİSİ
-\series default
- etiketi (tag) altında bir
-\emph on
-Source
-\emph default
- ve
-\bar under
-en az
-\bar default
- bir
-\emph on
-Package
-\emph default
- olmak üzere iki ana bölüm içermek zorundadırlar.
-\layout Paragraph
-
-PISI
-\layout Subparagraph
-
-Source
-\layout Itemize
-
-
-\series bold
-Name
-\series default
-: (*) Uygulamanın adı.
-\layout Itemize
-
-
-\series bold
-Homepage:
-\series default
-Uygulamanın web sitesinin URL'sini belirtir.
-\layout Itemize
-
-
-\series bold
-Summary:
-\series default
- (*) Tek satırlık açıklayıcı bilgi.
- Çoklu dil desteğine sahiptir.
-\layout Itemize
-
-
-\series bold
-Description:
-\series default
- (*)
-\series bold
-
-\series default
-Uygulama hakkında özet açıklama.
- Çoklu dil desteğine sahiptir.
-\layout Itemize
-
-
-\series bold
-IsA:
-\series default
-Paketin bir kategori/sistem/kolleksiyon'a aitliğini belirtir.
-
-\emph on
-Örn:
-\emph default
-
-\begin_inset Quotes eld
-\end_inset
-
-k3b is a KDE program
-\begin_inset Quotes erd
-\end_inset
-
-
-\layout Itemize
-
-
-\series bold
-PartOf:
-\series default
-Paketin hangi bütünün/grubun parçası olduğunu belirtir.
- Aitlik özellikleri için Freshmeat'in Trove kategorileri örnek verilebilir.
- Örn:
-\begin_inset Quotes eld
-\end_inset
-
-LyX and TeTex are parts of Tex:Distrubiton
-\begin_inset Quotes erd
-\end_inset
-
-
-\newline
-
-\series bold
-IsA
-\series default
- ve
-\series bold
-ParfOf
-\series default
- bir
-\series bold
-PİSİ
-\series default
- paketinin farklı türdeki aitliklerini ifade eder.
-
-\series bold
-PartOf
-\series default
- ile belirtilen bir
-\series bold
-Component
-\series default
-'in tümünü sisteme kurabilirsiniz.
- Fakat
-\series bold
-IsA
-\series default
- ile belirtilen aitlikleri yanlızca sorgulayabilirsiniz.
-\newline
-
-\emph on
-Source ve Package
-\emph default
- tagları içerisinde yalnızca birer tane
-\series bold
-PartOf
-\series default
- tanımlanabiliyor olmasına karşın, birden fazla
-\series bold
-IsA
-\series default
- tanımlanabilir.
-\layout Itemize
-
-
-\series bold
-Packager:
-\series default
- (*)
-\series bold
-
-\series default
-Paketi oluşturan kişilerin adı/soyadı ve e-posta adresi belirtir.
-\begin_deeper
-\layout Itemize
-
-
-\series bold
-Name:
-\series default
- (*) Paket oluşturan kişinin adı ve soyadı.
-\layout Itemize
-
-
-\series bold
-Email:
-\series default
- (*) Paket oluşturan kişinin e-posta adresi.
-\end_deeper
-\layout Itemize
-
-
-\series bold
-License
-\series default
-: (*) Uygulamanın lisansını belirtir (GPL, BSD, vb).
-\layout Itemize
-
-
-\series bold
-Archive:
-\series default
- (*) Uygulamanın orjinal kaynak kodunun bulunduğu URL'yi belirtir.
-
-\series bold
-archType
-\series default
- arşiv tipini (tar.gz, tar.bz2, zip, vb) belirtirken,
-\series bold
-sha1sum
-\series default
-, sha1 ile alınmış özet değerini belirtir.
- Her iki attribute (archType ve sha1sum) zorunludur.
-\layout Itemize
-
-
-\series bold
-Patches
-\series default
-: Orjinal koda uygulanacak yamaların
-\series bold
-sıralı
-\series default
- bir listesini içerir.
- Yamalar bu bölümde tanımlanan sıra ile kaynak koda uygulanır.
-\begin_deeper
-\layout Itemize
-
-
-\series bold
-Patch
-\series default
-: Yamanın dosya adını içerir.
-
-\series bold
-compressionType
-\series default
- ile varsa sıkıştırma biçimi (gz, bz2, vb) verilebilir.
-
-\series bold
-level
-\series default
- ile yamanın patch komutuna seviye verilebilir, level verilmez ise seviye
- 0 olarak kabul edilir.
- Örnek:
-\newline
-popt-1.7-uclibc.patch.gz
-\end_deeper
-\layout Itemize
-
-
-\series bold
-AdditionalFiles:
-\series default
-Kaynak ile gelmeyen ama paketin çalışması, ek özellik kazanması v.s.
- için gerekli dosyaları belirtir.
- (
-\emph on
-örn
-\emph default
-; init betikleri )
-\begin_deeper
-\layout Itemize
-
-
-\series bold
-AdditionalFile:
-\series default
- Files dizini altından alınacak dosyayı belirtir.
-
-\series bold
-target
-\series default
- attribute dosyanın nereye konulacağını belirtir, zorunludur.
-
-\series bold
- permission
-\series default
-attribute varsa dosyanın hangi haklarla saklanacağını belirtir.
-
-\series bold
- owner
-\series default
- attribute varsa dosyanın sahip/grup bilgilerini belirtir.
- Örnek:
-\newline
-bashrc
-\end_deeper
-\layout Itemize
-
-
-\series bold
-BuildDependencies
-\series default
-: Pakedi oluşturmak için gereken bağımlılıkları listeler.
-\begin_deeper
-\layout Itemize
-
-
-\series bold
-Dependency
-\series default
-: Bir bağımlılığı tanımlar.
- Burada bahsedilen bağımlılık paket bağımlılığı olabilir.
-
-\series bold
-versionFrom
-\series default
- ve
-\series bold
-versionTo
-\series default
- attribute bilgileri ile paketin hangi sürüm numarasına bağımlı olduğu ifade
- edilebilir.
- Örnek:
-\newline
-automake
-\end_deeper
-\layout Itemize
-
-
-\series bold
-History
-\series default
-: (*) Pakete yapılan güncellemelerin bir listesini verir.
-
-\series bold
-History
-\series default
- altındaki güncellemeleri belirten
-\series bold
-Update
-\series default
- taglarının mutlaka tarihe göre sıralı olması gerekmektedir.
- En son güncelleme en üstte bulunmalıdır.
- Çünkü en son güncellemeden alınan
-\series bold
-Version
-\series default
- ve
-\series bold
-Release
-\series default
- bilgisi pakete uygulanacaktır.
-\begin_deeper
-\layout Itemize
-
-
-\series bold
-Update
-\series default
-: (*) Bir güncellemeyi tarif eder.
-\begin_deeper
-\layout Itemize
-
-
-\series bold
-Type:
-\series default
- Güncellemenin tipini belirtir (
-\series bold
-\emph on
-Security, Bug, Enhancement, Normal
-\series default
-\emph default
- v.s).
- Eğer bu etiket tanımlı değilse tip
-\series bold
-\emph on
-Normal
-\series default
-\emph default
- olarak kabul edilir.
-\layout Itemize
-
-
-\series bold
-Date
-\series default
-: (*) Güncellemenin tarihi.
-\layout Itemize
-
-
-\series bold
-Version:
-\series default
- (*) Uygulamanın sürüm numarası.
-\layout Itemize
-
-
-\series bold
-Release:
-\series default
- (*) Pakedin sürüm numarası.
-\end_deeper
-\end_deeper
-\layout Subparagraph
-
-Package:
-\series medium
- (*)
-\series default
-
-\series medium
-Uygulamadan oluşturulacak bir pakedi tanımlar.
- Her
-\series default
-PSPEC
-\series medium
- dosyası en az bir
-\series default
-Package
-\series medium
- etiketi içermek zorundadır.
-\layout Subparagraph
-
-Package
-\series medium
- içerisindeki bazı taglar
-\emph on
-Source
-\emph default
- içerisindekileri tekrarlayabilir.
- Bu tekrarlamaların bazıları üzerine yazılırken (override) bazıları birleştirile
-cektir (merge).
-\layout Itemize
-
-
-\series bold
-Name
-\series default
-(tanımlı ise
-\emph on
-Source
-\emph default
- bölümündekinin yerine kullanılır)
-\layout Itemize
-
-
-\series bold
-Summary
-\series default
-(tanımlı ise
-\emph on
-Source
-\emph default
- bölümündekinin yerine kullanılır)
-\layout Itemize
-
-
-\series bold
-Description
-\series default
-(tanımlı ise
-\emph on
-Source
-\emph default
- bölümündekinin yerine kullanılır)
-\layout Itemize
-
-
-\series bold
-License
-\series default
-(tanımlı ise
-\emph on
-Source
-\emph default
- bölümündekinin yerine kullanılır)
-\layout Itemize
-
-
-\series bold
-IsA
-\series default
-(tanımlı ise
-\emph on
-Source
-\emph default
- bölümündeki ile birleştirilir)
-\layout Itemize
-
-
-\series bold
-PartOf
-\series default
-(tanımlı ise
-\emph on
-Source
-\emph default
- bölümündekinin yerine kullanılır)
-\layout Itemize
-
-
-\series bold
-Conflicts:
-\series default
- Paketin çalışması/işlevini yerine getirmesi için, sistemde olmaması gereken
- paketleri belirtir, bu örneğin aynı dosyayı iki paketin de taşıması durumunda
- olabilir.
-
-\begin_deeper
-\layout Itemize
-
-
-\series bold
-Package:
-\series default
- Olmaması gereken paket adını verir.
-\end_deeper
-\layout Itemize
-
-
-\series bold
-Provides:
-\series default
-Paketin sağladığı
-\series bold
-ÇOMAR OM
-\series default
- bacaklarının bir listesini verir.
-\layout Itemize
-
-
-\series bold
-RuntimeDependencies
-\series default
-: Pakedin çalışabilmesi için gereken bağımlılıkların bir listesini verir.
-
-\begin_deeper
-\layout Itemize
-
-
-\series bold
-Dependency
-\series default
-: Bir bağımlılık tanımlar.
-
-\series bold
-BuildDependency
-\series default
- ile aynı yapıdadır
-\end_deeper
-\layout Itemize
-
-
-\series bold
-InstallDependencies
-\series default
-: Pakedin çalışabilmesi için gereken bağımlılıkların bir listesini verir.
-
-\begin_deeper
-\layout Itemize
-
-
-\series bold
-Dependency
-\series default
-: Bir bağımlılık tanımlar.
-
-\series bold
-BuildDependency
-\series default
- ile aynı yapıdadır
-\end_deeper
-\layout Itemize
-
-
-\series bold
-Files
-\series default
-: (*) Pakedin kurulacak dosyalarının tiplerini belirlemek için kullanılır.
- Dosya tipleri ile ilgili bigi
-\begin_inset LatexCommand \ref{FType}
-
-\end_inset
-
- kısmında verilmiştir.
-\begin_deeper
-\layout Itemize
-
-
-\series bold
-Path
-\series default
- (*):
-\series bold
-
-\series default
-Bir dosya/dizin yolunu tarif eder.
- Verilebilecek olan
-\series bold
-fileType
-\series default
- attribute ise path'in tipini belirtir.
- Belge, paylaşımlı kütüphane, çalıştırılabilir, vb...
- Eğer fileType verilmezse path tipi
-\begin_inset Quotes eld
-\end_inset
-
-other
-\begin_inset Quotes erd
-\end_inset
-
- olarak tanımlanır.
- Örnek:
-\newline
-/usr/lib
-\end_deeper
-\layout Paragraph
-
-Örnek bir PSPEC Dosyası
-\layout LyX-Code
-
-
-\size scriptsize
-
-\layout LyX-Code
-
-
-\size scriptsize
-
-\layout LyX-Code
-
-
-\size scriptsize
-
-\layout LyX-Code
-
-
-\size scriptsize
-
-\layout LyX-Code
-
-
-\size scriptsize
- popt
-\layout LyX-Code
-
-
-\size scriptsize
- http://www.rpm.org/
-\layout LyX-Code
-
-
-\size scriptsize
-
-\layout LyX-Code
-
-
-\size scriptsize
- Pardus Man
-\layout LyX-Code
-
-
-\size scriptsize
- bilgi@uludag.org.tr
-\layout LyX-Code
-
-
-\size scriptsize
-
-\layout LyX-Code
-
-
-\size scriptsize
- As-Is
-\layout LyX-Code
-
-
-\size scriptsize
- library:util:optparser
-\layout LyX-Code
-
-
-\size scriptsize
- rpm:archive
-\layout LyX-Code
-
-
-\size scriptsize
- Popt command line option parser
-\layout LyX-Code
-
-
-\size scriptsize
- Command line option parsing library.
-\layout LyX-Code
-
-
-\size scriptsize
- While it is similiar to getopt(3), it contains a number of enhancements,
- including:
-\layout LyX-Code
-
-
-\size scriptsize
- 1) popt is fully reentrant
-\layout LyX-Code
-
-
-\size scriptsize
- 2) popt can parse arbitrary argv[] style arrays while getopt(2) makes
- this quite difficult
-\layout LyX-Code
-
-
-\size scriptsize
- 3) popt allows users to alias command line arguments
-\layout LyX-Code
-
-
-\size scriptsize
- 4) popt provides convience functions for parsing strings into argv[]
- style arrays
-\layout LyX-Code
-
-
-\size scriptsize
-
-\layout LyX-Code
-
-
-\size scriptsize
- ftp
-://ftp.rpm.org/pub/rpm/dist/rpm-4.1.x/popt-1.7.tar.gz
-\layout LyX-Code
-
-
-\size scriptsize
-
-\layout LyX-Code
-
-
-\size scriptsize
- popt-1.7-uclibc.patch.gz
-\layout LyX-Code
-
-
-\size scriptsize
-
-\layout LyX-Code
-
-
-\size scriptsize
-
-\layout LyX-Code
-
-
-\size scriptsize
- automake
-\layout LyX-Code
-
-
-\size scriptsize
-
-\layout LyX-Code
-
-
-\size scriptsize
-
-\layout LyX-Code
-
-
-\size scriptsize
-
-\layout LyX-Code
-
-
-\size scriptsize
- 06/14/2005
-\layout LyX-Code
-
-
-\size scriptsize
- 1.7
-\layout LyX-Code
-
-
-\size scriptsize
- 3
-\layout LyX-Code
-
-
-\size scriptsize
-
-\layout LyX-Code
-
-
-\size scriptsize
-
-\layout LyX-Code
-
-
-\size scriptsize
- 06/10/2005
-\layout LyX-Code
-
-
-\size scriptsize
- 1.7
-\layout LyX-Code
-
-
-\size scriptsize
- 2
-\layout LyX-Code
-
-
-\size scriptsize
-
-\layout LyX-Code
-
-
-\size scriptsize
-
-\layout LyX-Code
-
-
-\size scriptsize
-
-\layout LyX-Code
-
-\layout LyX-Code
-
-
-\size scriptsize
-
-\layout LyX-Code
-
-
-\size scriptsize
- popt
-\layout LyX-Code
-
-
-\size scriptsize
-
-\layout LyX-Code
-
-
-\size scriptsize
- gettext
-\layout LyX-Code
-
-
-\size scriptsize
-
-\layout LyX-Code
-
-
-\size scriptsize
-
-\layout LyX-Code
-
-
-\size scriptsize
- /usr/lib
-\layout LyX-Code
-
-
-\size scriptsize
- /usr/share/doc
-\layout LyX-Code
-
-
-\size scriptsize
- /usr/share/man
-\layout LyX-Code
-
-
-\size scriptsize
- /usr/share/locale
-\layout LyX-Code
-
-
-\size scriptsize
- /usr/include/popt.h
-\layout LyX-Code
-
-
-\size scriptsize
-
-\layout LyX-Code
-
-
-\size scriptsize
-
-\layout LyX-Code
-
-
-\size scriptsize
-
-\layout Standard
-
-Yukarıdaki örnek dosyada
-\emph on
-Package
-\emph default
- içerisinde tanımlanmayan taglar
-\emph on
-Source
-\emph default
- içerisinden alınarak kullanılacaktır.
- Bir kaynak paketten birden fazla ikili (binary) paket oluşturmak için
-\emph on
-Package
-\emph default
- etiketleri farklı isimler (Name) verilerek arttırılabilir.
-
-\emph on
-Paketler
-\emph default
-
-\series bold
-Files
-\series default
- içerisinde bulunan
-\series bold
-Path
-\series default
- taglarına göre bölümlendirilecektir.
-\layout Subsubsection
-
-actions.py Dosyası
-\layout Standard
-
-Bu dosya bir Python betiği olup, kaynağın kurulması, derlenmesi, test edilmesi,
- sisteme kurulması gibi işlevleri yerine getiren fonksiyonlardan oluşur.
-
-\layout Standard
-
-Paketin oluşturulması sırasında derleme sistemi
-\series bold
-actions.py
-\series default
- içerisindeki 3 fonksiyon adını arar ve çalıştırır;
-\series bold
-setup, build, install
-\series default
-.
- Bu fonksiyonlardan install'ın tanımlanması zorunlu olmakla birlikte setup
- ve build sadece tanımlanmışsa çalıştırılır.
-
-\layout Standard
-
-
-\series bold
-actions.py
-\series default
-'ler tarafından kullanılmak üzere
-\series bold
-PİSİ
-\series default
- tarafından hazır bir
-\series bold
-API
-\series default
- ActionsAPI adında sunulacaktır.
-\layout Paragraph
-
-Örnek bir actions.py dosyası:
-\layout LyX-Code
-
-
-\size scriptsize
-from pisi.actionsapi import gnuconfig
-\layout LyX-Code
-
-
-\size scriptsize
-from pisi.actionsapi import autotools
-\layout LyX-Code
-
-\layout LyX-Code
-
-
-\size scriptsize
-def setup():
-\layout LyX-Code
-
-
-\size scriptsize
- gnuconfig.gnuconfig_update()
-\layout LyX-Code
-
-
-\size scriptsize
- autotools.configure(
-\begin_inset Quotes eld
-\end_inset
-
---with-nls
-\begin_inset Quotes erd
-\end_inset
-
-)
-\layout LyX-Code
-
-\layout LyX-Code
-
-
-\size scriptsize
-def build():
-\layout LyX-Code
-
-
-\size scriptsize
- autotools.make()
-\layout LyX-Code
-
-\layout LyX-Code
-
-
-\size scriptsize
-def install():
-\layout LyX-Code
-
-
-\size scriptsize
- autotools.install()
-\layout Subsubsection
-
-ChangeLog Dosyası
-\layout Standard
-
-Pakedin sürümlerindeki değişikliklerin açıklamalarını içerir.
- Bu dosya bilindik
-\series bold
-ChangeLog
-\series default
- stilindedir ve
-\series bold
-PSPEC
-\series default
- içindeki
-\series bold
-History
-\series default
- bilgisi ile ilgili değildir.
-\layout Subsection
-
-metadata.xml
-\layout Standard
-
-
-\series bold
-Metadata
-\series default
- dosyası bir uygulamanın paket haline geldikten sonra yanında taşıyacağı
- ve paket ile ilgili bilgileri barındıran dosyadır.
-
-\layout Standard
-
-
-\series bold
-Metadata
-\series default
- dosyası sadece oluşturulan paket ile ilgili bilgileri tutmaktan sorumludur.
- Paket hakkında temel bilgi bu dosyadan alınacaktır.
-\layout Standard
-
-Bu bilgilerin büyük kısmı
-\series bold
-PSPEC
-\series default
- dosyasının işlenmesi sonucu ile
-\series bold
-Metadata
-\series default
- dosyasına yazılmaktadır.
-
-\series bold
-Metadata PSPEC
-\series default
- dosyasından alınan bilgilerin yanında kaynak derlendikten ve paket oluşturulduk
-tan sonra alınabilecek diğer bilgileri de içerir (paketin kurulduktan sonra
- sistemde kaplayacağı alanın boyutu gibi).
-\layout Standard
-
-
-\series bold
-Metadata
-\series default
- dosyasının içeriği şöyle tanımlanmıştır;
-\layout Standard
-
-
-\series bold
-PISI
-\layout Subparagraph
-
-Source:
-\series medium
-Bu bölümdeki bilgiler
-\series default
-PSPEC
-\series medium
- dosyasının
-\emph on
-Source
-\emph default
- bölümünden alınır.
-\layout Itemize
-
-
-\series bold
-Name
-\layout Itemize
-
-
-\series bold
-Homepage
-\layout Itemize
-
-
-\series bold
-Summary
-\layout Itemize
-
-
-\series bold
-Description
-\layout Itemize
-
-
-\series bold
-Packager
-\begin_deeper
-\layout Itemize
-
-
-\series bold
-Name
-\layout Itemize
-
-
-\series bold
-Email
-\end_deeper
-\layout Subparagraph
-
-Package
-\layout Itemize
-
-
-\series bold
-Name
-\layout Itemize
-
-
-\series bold
-Summary
-\layout Itemize
-
-
-\series bold
-Description
-\layout Itemize
-
-
-\series bold
-License
-\layout Itemize
-
-
-\series bold
-History
-\begin_deeper
-\layout Itemize
-
-
-\series bold
-Update
-\begin_deeper
-\layout Itemize
-
-
-\series bold
-Type
-\layout Itemize
-
-
-\series bold
-Date
-\layout Itemize
-
-
-\series bold
-Version
-\layout Itemize
-
-
-\series bold
-Release
-\end_deeper
-\end_deeper
-\layout Itemize
-
-
-\series bold
-Conflicts
-\layout Itemize
-
-
-\series bold
-Provides:
-\series default
- Paketin hangi OM bacaklarını sağladığını belirtir.
-\layout Itemize
-
-
-\series bold
-RuntimeDependencies
-\begin_deeper
-\layout Itemize
-
-
-\series bold
-Dependency
-\layout Itemize
-
-
-\series bold
-InstallDependencies
-\begin_deeper
-\layout Itemize
-
-
-\series bold
-Dependency
-\end_deeper
-\layout Itemize
-
-
-\series bold
-Files
-\begin_deeper
-\layout Itemize
-
-
-\series bold
-Path
-\end_deeper
-\layout Itemize
-
-
-\series bold
-Distribution:
-\series default
- Paketin ait olduğu dağıtımı belirtir (Pardus).
-\layout Itemize
-
-
-\series bold
-DistributionRelease:
-\series default
- Paketin ait olduğu dağıtımın hangi sürümü için oluşturduğunu belirtir (1.0).
-\layout Itemize
-
-
-\series bold
-Architecture:
-\series default
-Paketin hangi mimari için yapıldığını belirtir.
-\layout Itemize
-
-
-\series bold
-InstallSize:
-\series default
-Paketin sisteme kurulduğunda kaplayacağı alanın tahmini boyutunu belirtir.
-\end_deeper
-\layout Standard
-
-Yukarıda tanımlanan
-\series bold
-Metadata
-\series default
- dosyası, belirlenecek paket formatının içinde
-\series bold
-\emph on
-XML
-\series default
-\emph default
- dosyası olarak tutulacaktır.
-
-\series bold
-Metadata
-\series default
- XML dosyalarının yapısı
-\series bold
-PSPEC
-\series default
- dosyası ile hemen hemen aynıdır.
- Yalnızca Metadata paket oluşumundan sonra elimizde olan bazı ek bilgileri
- de içerir.
-
-\layout Subsection
-
-files.xml
-\layout Standard
-
-Kaynak derlendikten sonra oluşan dosyaların oluşturulan pakete göre
-\series bold
-(Package)
-\series default
- sınıflandırılması gerekmektedir.
- Tek bir kaynaktan birden fazla paket oluşturulması, kaynağın derlenmesinden
- sonra oluşan dosyaların sınıflandırılması ile olur.
-\layout Standard
-
-files.xml dosyası paket geliştirme aracı/araçları ile oluşturularak paket
- içerisine yerleştirilir.
-\layout Itemize
-
-
-\series bold
-Files
-\begin_deeper
-\layout Itemize
-
-
-\series bold
-Package:
-\series default
-Dosya serisinin hangi
-\series bold
-\emph on
-SubPackage
-\series default
-\emph default
-'i oluşturduğunu belirtir.
- (örn.
- mysql-devel, mysql-client, mysql-server , mysql-doc)
-\layout Itemize
-
-
-\series bold
-File:
-\series default
- Pakete dahil edilecek bir dosyayı tarif eder.
-\begin_deeper
-\layout Itemize
-
-
-\series bold
-Path:
-\series default
- Dosyanın, paket içerisindeki yerini belirtir.
-
-\series bold
-PISI
-\series default
- gereklerinden biri paketin belirtilen konuma kurulabilmesi olduğu için
- konum bilgisi bağımlı (rölatif) olarak verilir.
-\layout Itemize
-
-
-\series bold
-Type
-\begin_inset LatexCommand \label{FType}
-
-\end_inset
-
-:
-\series default
- Dosyanın tipini belirtir.
- Paket sisteme kurulduğunda, veritabanına bu tip tanımı ile işaretlenerek
- yerleştirilecektir.
- Bu tip tanımları şunlardan birisi olabileceği gibi boş da bırakılabilir:
-
-\noun on
-executable, conf, doc, sharedLib, localeData, programData, header
-\noun default
-.
-\layout Itemize
-
-
-\series bold
-Size:
-\series default
-Dosyanın byte cinsinden boyutunu saklar.
-\layout Itemize
-
-
-\series bold
-SHA1Sum: Path
-\series default
- ile belirtilen dosyanın SHA1 algoritması ile elde edilmiş
-\emph on
-cryptographic
-\emph default
-özet değerini saklar.
-\end_deeper
-\end_deeper
-\layout Standard
-
-files.xml dosyalarının doğrulanması için kullanılabilecek bilgi
-\emph on
-pisi-files.dtd
-\emph default
- dosyasında tanımlanmıştır.
-\layout Standard
-
-TODO: Örnek
-\layout Subsection
-
-PSPEC Deposu
-\layout Standard
-
-Paketleri oluşturmak için gerekli
-\series bold
-PSPEC
-\series default
- dosyaları hiyerarşik bir yapıda bir
-\emph on
-subversion
-\emph default
- deposunda sunulacaktır.
- Geliştirme işlemleri bu depo üzerinde yapılacaktır.
-
-\series bold
-PSPEC
-\series default
- deposunda paketler
-\emph on
-
-\begin_inset Quotes eld
-\end_inset
-
-
-\series bold
-\emph default
-ilk harflerine göre
-\series default
-\emph on
-
-\begin_inset Quotes erd
-\end_inset
-
-
-\emph default
- konumlandırılırlar.
- Her paket kendine ait bir dizinde
-\series bold
-PSPEC
-\series default
- dosyası, paket oluşturma için gerekli olan ek dosyalar ve yamaların içinde
- bulunduğu files
-\series bold
-/
-\series default
- dizini ve paket oluşturmada kullanılacak betiklerin bulunduğu actions
-\series bold
-/
-\series default
- dizinine sahiptir.
-\layout Standard
-
-Bir geliştiricinin
-\series bold
-Pardus Linux
-\series default
-'a paket yapması için yalnızca
-\series bold
-PSPEC
-\series default
- depo sıradüzeninde paket için gerekli olan dosyaları sağlaması yeterlidir.
-
-\series bold
-Pardus Linux
-\series default
-'un belirli zamanlarda kullanıcılara sunulacak sürümlerini oluşturmak için
- bu
-\series bold
-PSPEC
-\series default
- deposundaki bu bilgiler kullanılarak
-\series bold
-PİSİ
-\series default
- paketleri oluşturulacaktır.
-
-\layout Standard
-
-Bir yazılımın birden fazla sürümünün depoya eklenmesi gerekiyorsa, farklı
- paket isimleri ile depoya yerleştirilirler.
- (gtk1, gtk2 gibi...)
-\layout Subsubsection
-
-Örnek PSPEC Deposu Sıradüzeni
-\layout Itemize
-
-
-\series bold
-a
-\series default
-/
-\begin_deeper
-\layout Itemize
-
-
-\series bold
-a
-\series default
-cpid/
-\begin_deeper
-\layout Itemize
-
-pspec.xml
-\layout Itemize
-
-actions.py
-\layout Itemize
-
-ChangeLog
-\layout Itemize
-
-
-\series bold
-files/
-\begin_deeper
-\layout Itemize
-
-acpid.init
-\end_deeper
-\layout Itemize
-
-
-\series bold
-patches/
-\begin_deeper
-\layout Itemize
-
-acpid-1.0.2-branch.patch
-\end_deeper
-\layout Itemize
-
-
-\series bold
-comar/
-\begin_deeper
-\layout Itemize
-
-acpid.csl
-\end_deeper
-\end_deeper
-\end_deeper
-\layout Subsection
-
-Category ( IsA )
-\layout Standard
-
-FIXME: Daha anlamlı cümleler ve temiz anlatım
-\layout Standard
-
-Bir uygulamanın yaptığı işi, ait olduğu kategoriyi belirtir yani uygulamaların
- sıfatlarıdır.
- Bu bilgi kullanılarak bir işi ya da işler grubunu yapan uygulamalar sorgulanabi
-lir.
- Örneğin PDF Gösteren uygulamaları göster, Ogg çalan ve konsoldan çalışan
- uygulamalar hangileridir gibi.
-\layout Subsection
-
-Component ( PartOf )
-\layout Standard
-
-FIXME: Daha anlamlı cümleler ve temiz anlatım
-\layout Standard
-
-Bir paketler bütününden oluşan anlamlı ve kurulabilir birliği temsil eder.
- Yani uygulamaları kapsüller.
- Örneğin KDE Component'ı içinde kdebase, kdepim, kdemultimedia v.s gibi kaynaklar
-ı bulundurur, kdebase ise kcontrol, konqueror v.s.
- gibi paketlerden oluşur.
- Bu bilgi kullanılarak örneğin KDE Component'ını sisteme kur, kaldır, güncelle
- gibi eylemler gerçekleştirilebilir.
-\layout Subsection
-
-İkili Paket Deposu
-\layout Standard
-
-Oluşturulan ikili paketler
-\series bold
-PSPEC
-\series default
- dosyalarının tutulduğu hiyerarşik yapının aynısına sahip bir depoda sunulacaktı
-r.
- Paketlerin içerisinde bulunan
-\emph on
-metadata.xml
-\emph default
- dosyaları depodaki paketlerden alınarak ve birleştirilerek
-\series bold
-pisi-index.xml
-\series default
- isminde bir içerik (depo içeriği) dosyası düzenli aralıklar ile oluşturulacaktı
-r
-\layout Standard
-
-İçeriğinde mevcut sürümün bilgilerini içerecek bir dosya oluşturulacaktır.
- Bu dosya dağıtımın tüm paketleri için şu bilgileri içerecektir;
-\layout Itemize
-
-
-\series bold
-Name
-\layout Itemize
-
-
-\series bold
-Summary
-\series default
-
-\layout Itemize
-
-
-\series bold
-Description
-\layout Itemize
-
-
-\series bold
-Version
-\layout Itemize
-
-
-\series bold
-Release
-\layout Itemize
-
-
-\series bold
-License
-\layout Itemize
-
-
-\series bold
-RuntimeDependencies
-\layout Itemize
-
-
-\series bold
-InstallDependencies
-\layout Itemize
-
-
-\series bold
-Provides
-\layout Itemize
-
-
-\series bold
-History
-\layout Itemize
-
-
-\series bold
-Conflicts
-\layout Itemize
-
-
-\series bold
-PackageSize
-\layout Itemize
-
-
-\series bold
-InstalledSize
-\layout Standard
-
-
-\series bold
-pisi-index.xml
-\series default
- dosyasının biçimi XML'dir.
- Dosyanın doğrulanması için kullanılabilecek bilgi
-\emph on
-pisi-index.dtd
-\emph default
- dosyasında tanımlanmıştır.
-\layout Standard
-
-Bu dosya değiştirilmeyecek ve sadece Dağıtım Sürüm değiştirdiği zaman yenisi
- oluşturulacaktır.
- Aktif sürüm sırasında tüm değişiklikler
-\series bold
-ChangeSet
-\series default
- olarak sunulacaktır.
- İstemci bilgisayarlarca çekilecek ve bağımlılık çözme, paket veritabanını
- arama, paket kurma/kaldırma işlemleri bu dosyaların
-\series bold
-pisi.index
-\series default
- ile birleştirilmesi yardımı ile yapılacaktır.
-
-\layout Standard
-
-
-\series bold
-ChangeSet
-\series default
-'ler
-\series bold
-pisi.index
-\series default
- dosyasına yama olarak sunulacaklardır.
- Kolay oluşturulan, az bant genişliği isteyen ve efektif olmaları açısından
- içeriklerini
-\series bold
-pisi.index
-\series default
-'in bir önceki revizyonlarından olan farkları arttırımsal (incremental)
- olarak oluşturacaktır.
-\layout Standard
-
-Kullanıcı bilgisayarında oluşturulacak depo veritabanı
-\series bold
-pisi.index
-\series default
- ve
-\series bold
-Changeset
-\series default
-'ler yardımı ile yaratılacaktır.
- Kullanıcının depodaki paketlerin en güncel bilgilerini alabilmesi için
- depo veritabanını düzenli olarak güncellemesi gerekmektedir.
- Bu işlem bir arkaplan uygulaması ile otomatik olarak yaptırılabilir.
-\layout Standard
-
-Depoya eklenecek ikili paketler geliştiriciden alınmayacak,
-\series bold
-PİSİ
-\series default
- derleme ortamı tarafından hazırlanıp uygun görülen depoya yerleştirilecektir.
- Böylece geliştiricinin sisteminden kaynaklanabilecek olası problemlerin
- (sürüm farklılıkları, sorunlu ya da güvensiz yazılımlar vs.) önüne geçilecektir.
-\layout Standard
-
-
-\series bold
-PİSİ
-\series default
- istemcisi birden fazla depo ile çalışabilecektir.
- Birden fazla depo tanımlanması durumunda öncelikli depo her zaman
-\series bold
-Pardus Resmi Deposu
-\series default
- olacaktır.
- Diğer depolar eşit önceliğe sahip olacaklardır ve kullanıcı elle belirtmediği
- sürece tüm depolarda bulunan paketler resmi depodan alınacaktır.
-\layout Subsection
-
-PİSİ Paketinin Yapısı
-\layout Standard
-
-
-\series bold
-PİSİ
-\series default
- paketleri ikili bir biçimde sunulacaktır.
- Bu bölüm paketlerin biçemini (format) ve içerdiklerini tanımlamaktadır.
-\layout Standard
-
-
-\series bold
-PİSİ
-\series default
- paketi, içerisinde aşağıdaki bölümler olan bir
-\emph on
-PK-ZIP
-\emph default
- paketidir.
- Bu sayede paketler standart araçlar ile açılabilir/erişilebilir olacaklardır.
-\layout Itemize
-
-
-\series bold
-metadata.xml:
-\series default
-
-\series bold
-PSPEC
-\series default
- dosyasından alınacak ve üzerine eklenecek bilgiler ile oluşturulacak Meta
- bilgisi
-\layout Itemize
-
-
-\series bold
-files.xml:
-\series default
- Paket içerisinde bulunan dosyaların bir listesi
-\layout Itemize
-
-
-\series bold
-comar/ dizini:
-\series default
- Kurulum betikleri
-\layout Itemize
-
-
-\series bold
-install/ dizini:
-\series default
- Paketin kurulu biçimi.
- Paketin sisteme kurulumu bu dizinin belirtilen dizine açılır.
-\layout Subsection
-
-Süreçlerin Tarifi
-\layout Standard
-
-Süreç tarifi paket sisteminin en temel görevlerini, tasarımı özetlemek amacı
- ile anlatır.
-\layout Subsubsection
-
-Paket Oluşturmak
-\layout Standard
-
-
-\begin_inset Graphics
- filename images/pisi-gelistirici-small.png
- rotateOrigin center
-
-\end_inset
-
-
-\layout Standard
-
-Bir geliştiricinin paket oluşturmak için izleyeceği adımlar şöyledir;
-\layout Itemize
-
-
-\series bold
-Geliştirici Grafik Arayüzü
-\series default
- ya da konsol araçları yardımı ile
-\series bold
-PSPEC
-\series default
- dosyası yukarıda anlatılan yapıya uygun olarak oluşturulur.
- Gerekli olacak yamalar ve dosyalar yukarıda tarif edildiği gibi files/
- dizinine yerleştirilir.
-\layout Itemize
-
-Oluşturulan
-\series bold
-PSPEC
-\series default
- dosyası, hazırlanan paketin derlenebilmesi için
-\series bold
-PİSİ
-\series default
- tarafından işlenir.
- Eğer gerekli paketler sistemde mevcut değil ise bu paketler
-\series bold
-PİSİ
-\series default
- tarafından otomatik veya kullanıcıya sorularak sisteme kurularak, sistem
- derleme işlemine hazır hale getirilir.
-
-\layout Itemize
-
-Oluşturulan
-\series bold
-PSPEC
-\series default
- dosyasının Source bölümündeki bilgiler işlenerek kaynak kod sisteme alınır
- ve doğruluğu kontrol edilir.
- Gerekli dosya ve yamalar yukarıda anlatılan biçime uygun bir şekilde
-\series bold
-PİSİ
-\series default
-tarafından açılır ve gerekli yamalar koda uygulanır.
-
-\layout Itemize
-
-
-\series bold
-actions.py
-\series default
-\emph on
-
-\emph default
-betiği işletilerek kaynak koddan ikili veri oluşturulur.
-\layout Itemize
-
-Geliştirici (tercihen grafik arayüz yardımı ile) derleme sonrası oluşturulan
- dosyaları,
-\series bold
-PSPEC
-\series default
- dosyasında tanımlanan
-\series bold
-\emph on
-Package
-\series default
-\emph default
- bölümlerine göre sınıflandırır.
- Oluşturulacak her paket için
-\series bold
-files.xml
-\series default
- dosyası yaratılır.
-\layout Itemize
-
-
-\series bold
-PİSİ, PSPEC
-\series default
- ve
-\series bold
-files.xml
-\series default
- dosyalarını işleyerek paketi veya paketleri oluşturur.
-\layout Itemize
-
-Geliştirici oluşturduğu paketleri sisteminde test eder.
-\layout Itemize
-
-Oluşturulan paket oluşturma dosyaları (
-\series bold
-PSPEC
-\series default
- dosyası, actions.py ve dizinler)
-\series bold
-Merkezi Paket Derleme Çiftliği
-\series default
- tarafından derlenmek üzere
-\series bold
-PSPEC
-\series default
-
-\series bold
-Dosyalar Deposu
-\series default
-'na iletilir.
-\layout Itemize
-
-İletilen
-\series bold
-PSPEC
-\series default
- dosyası
-\series bold
-Merkezi Paket Derleme Çiftliği
-\series default
- tarafından ikili paket veya paketler haline getirilir.
-\layout Itemize
-
-Oluşturulan paket veya paketler
-\series bold
-Paket Deposu
-\series default
-'na yerleştirilir.
-\layout Subsubsection
-
-Paket Kurmak
-\layout Standard
-
-
-\begin_inset Graphics
- filename images/pisi-istemci-small.png
- rotateOrigin center
-
-\end_inset
-
-
-\layout Standard
-
-Bir istemcinin sisteme paket kurmak için izleyeceği yol şöyledir;
-\layout Itemize
-
-Sistemdeki ilgili uygulamalardan biri
-\series bold
-PİSİ
-\series default
-'ye paket kurması için istekte bulunur.
-\layout Itemize
-
-
-\series bold
-PİSİ
-\series default
-, kendi yapılandırma dosyasını işleyerek, kendi yapılandırma dosyasının
- içindeki bilgilerin ışığında
-\series bold
-Paket Deposu
-\series default
-ndan deponun durumu ile ilgili bilgileri (
-\series bold
-ChangeSet
-\series default
-ler ve kullanıcı yeni bir depo kullanmaya başladıysa
-\series bold
- pisi-index.xml
-\series default
-) alır.
-\layout Itemize
-
-Gerekiyorsa
-\series bold
- Depo
-\series default
-dan aldığı bilgileri
-\series bold
-Depo Veritaban
-\series default
-ına yerleştirir.
-\layout Itemize
-
-
-\series bold
-PİSİ
-\series default
- istenen paketin kurulması için gerekli olan bilgileri, ihtiyaç duyulan
- paketleri belirler.
- Gerekli olan paketleri
-\series bold
-Paket Deposu
-\series default
-ndan çekerek sisteme kurar.
- Eğer çakışan paketler var ise bunları çözer.
-\layout Itemize
-
-
-\series bold
-PİSİ
-\series default
- Kurulacak paketi
-\series bold
-Paket Deposu
-\series default
-ndan çeker ve çektiği paketin doğruluğunu kontrol ederek sisteme kurar.
- Kurduğu paket ile ilgili bilgileri
-\series bold
-Kurulu Paket Veritabanı
-\series default
-'na yerleştirir.
-\layout Itemize
-
-Paketlerin yanında taşıdığı
-\series bold
-CSL
-\series default
- betiklerini
-\series bold
-ÇOMAR
-\series default
-'a verir.
-\layout Subsubsection
-
-Paket Kaldırmak
-\layout Standard
-
-Bir istemcinin sisteme paket kaldırmak için izleyeceği yol şöyledir;
-\layout Itemize
-
-Sistemdeki ilgili uygulamalardan biri
-\series bold
-PİSİ
-\series default
-'ye paket kaldırmak için istekte bulunur.
-\layout Itemize
-
-
-\series bold
-PİSİ
-\series default
-, kendi yapılandırma dosyasını işleyerek,
-\series bold
-Kurulu Paket Veritabanı
-\series default
-ndan paketin başka bir paket tarafından gereksinim duyulup duyulmadığını
- kontrol eder.
-\layout Itemize
-
-
-\series bold
-PİSİ
-\series default
- paketi kaldırır.
-
-\layout Itemize
-
-
-\series bold
-ÇOMAR
-\series default
-'a ilgili
-\series bold
-CSL
-\series default
- betiklerini kaldırması için silinen paket ile ilgili bilgi verir.
-\layout Subsubsection
-
-Bağımlılık çözmek
-\layout Standard
-
-TODO: Ayrıntılı algoritmik anlatım gerekiyor
-\layout Standard
-
-
-\series bold
-PİSİ
-\series default
- içerisinde paket bağımlılığı, doğrudan paket isim ve sürüm numarasına bağımlılı
-k olarak tanımlanmıştır.
- Bu yüzden paket bağımlılığının çözümü depo veritabanından bağımlılığı oluşturan
- paketleri iteratif olarak çıkarmak ile sınırlıdır.
-\layout Standard
-
-Paketler için tanımlanan bir diğer bağımlılık tipi ise
-\series bold
-ÇOMAR OM
-\series default
- (Object Model) bacaklarına olan bağımlılıktır.
- Bu bağımlılığın çözümü için Kurulu Paketler ve Depo veritabanları sorgulanarak
- ilgili
-\series bold
-OM
-\series default
- bacağını sağlayan bir paketin sistemde kurulu durumda olup olmadığı bilgisi
- çıkartılır.
- Eğer yoksa ilgili
-\series bold
-OM
-\series default
- bacağını sağlayan paketlerin bir listesi sunulur.
-\layout Subsection
-
-Veritabanları
-\layout Standard
-
-FIXME: Ayrıntılı tanım eklenecek
-\layout Standard
-
-İstemci makinadaki paket veritabanı aşağıdaki bölümlere sahip olacaktır.
- Veritabanları
-\series bold
-\emph on
-BerkeleyDB
-\series default
-\emph default
- veritabanlarıdır.
-\layout Standard
-
-Beta versiyonda tek bir depo desteklenecektir.
-\layout Itemize
-
-
-\series bold
-Kurulu Paketler Veritabanı:
-\series default
-
-\emph on
-Paket adı, sürüm numarası, hangi depodan kurulduğu ve dosyalar (files.xml)
-
-\emph default
-bölümlerini içerecektir.
-\layout Itemize
-
-
-\series bold
-Depo Veritabanları:
-\series default
- Birden fazla depo veritabanı olabilir.
- Her depo için
-\series bold
-pisi-index.xml
-\series default
- dosyası içeriği depo veritabanına aktarılacaktır.
-\layout Itemize
-
-
-\series bold
-Kaynak Veritabanları
-\layout Subsubsection
-
-Kurulum Veritabanı
-\layout Standard
-
-FIXME: Ayrıntılı tanım eklenecek
-\layout Subsubsection
-
-Depo Veritabanları
-\layout Standard
-
-FIXME: Ayrıntılı tanım eklenecek
-\layout Subsubsection
-
-Kaynak Veritabanları
-\layout Standard
-
-FIXME: Ayrıntılı tanım eklenecek
-\layout Subsection
-
-libpisi
-\layout Standard
-
-Paket veritabanının ana yüklenicisi libpisi kütüphanesi olacaktır.
- Kütüphanenin temel görevleri aşağıdaki liste ile özetlenebilir.
-\layout Itemize
-
-Bir paketi sisteme kurma
-\layout Itemize
-
-Sistemden bir paketi kaldırma
-\layout Itemize
-
-Verilen bir
-\series bold
-PİSİ
-\series default
- paketini açma
-\layout Itemize
-
-Verilen bir
-\series bold
-PİSİ
-\series default
- paketi içerisinden yalnızca bir dosyayı/dizini çıkarma (metadata.xml dosyası
- veya install/ dizini gibi)
-\layout Itemize
-
-Bağımlılık çözümleme
-\layout Itemize
-
-Depo veritabanını sorgulama
-\layout Itemize
-
-Kurulu paketler veritabanını sorgulama
-\layout Itemize
-
-Verilen bir ikili paketi sorgulama
-\layout Itemize
-
-İkili paketler deposundan bir paketi çekme/alma (fetch).
-\layout Itemize
-
-
-\series bold
-PSPEC
-\series default
- dosyalarını okuma/işleme/oluşturma.
-\layout Itemize
-
-
-\series bold
-PSPEC
-\series default
- dosyasında belirtilen bir uygulama kaynağını çekme/alma (fetch)
-\layout Itemize
-
-Farklı dosya tiplerini (zip, tar, tar.gz, tar.bz2) açma
-\layout Itemize
-
-Action betiklerini çalıştırma
-\layout Itemize
-
-İkili
-\series bold
-PİSİ
-\series default
-paketi oluşturma
-\layout Itemize
-
-Kurulu paketler veritabanını güncelleme (yeni girdi ekleme, girdi silme
- veya bir girdiyi güncelleme)
-\layout Itemize
-
-Dosya sistemini paket işlemleri için sorgulama (bir paketin kurulumu için
- diskte yeteri kadar boş yer bulunuyor mu?)
-\layout Itemize
-
-Dosya özetlerini (hash) oluşturma ve doğruluklarını kontrol etme.
-\layout Itemize
-
-Paketi imzalama ve imzanın doğruluğunu kontrol etme.
-\layout Itemize
-
-
-\series bold
-ÇOMAR
-\series default
- sistemi ile iletişim kurma (CSL betiklerinin
-\series bold
-ÇOMAR
-\series default
-'a bildirilmesi, betiklerin
-\series bold
-ÇOMAR
-\series default
-'dan kaldırılması)
-\layout Standard
-
-Bu gerekleri sağlamak için libpisi modülleri aşağıdaki şekilde gruplanmışlardır.
-\layout Itemize
-
-XML
-\layout Itemize
-
-DB
-\layout Itemize
-
-ZIP
-\layout Itemize
-
-Util
-\begin_deeper
-\layout Itemize
-
-unpack (tar, tar.gz, tar.bz2, zip)
-\layout Itemize
-
-sha1
-\layout Itemize
-
-patch
-\layout Itemize
-
-gpg
-\layout Itemize
-
-fileutils (stat, vb.
- şeyler için)
-\end_deeper
-\layout Itemize
-
-DepSolver (bağımlılık çözümleyici)
-\layout Itemize
-
-Fetcher
-\layout Itemize
-
-ActionExec (Action betiklerinin çalıştırılması)
-\layout Itemize
-
-COMAR
-\layout Itemize
-
-Package (xml, zip, gpg, util modüllerini kullanıyor...)
-\layout Subsection
-
-PİSİ Package Builder (GUI)
-\layout Itemize
-
-
-\series bold
-PSPEC
-\series default
- dosyasını kullanıcının tanımları doğrultusunda oluşturacak
-\layout Itemize
-
-Action betiklerini kullanıcıya yazdıracak
-\layout Itemize
-
-files.xml dosyasını/dosyalarını oluşturacak.
-\layout Itemize
-
-libpisi kullanarak paket oluşturacak.
-\the_end