Genişletildi, eski yerler düzeltildi/çıkartıldı. Biraz daha işi var. Gene bir review istiyorum sizden hızlıca. Akşam mail ile yollarsanız bende düzeltirim ( ya da direkt siz düzeltin :P )

This commit is contained in:
S.Çağlar Onur
2005-06-23 13:31:41 +00:00
parent b284388870
commit 06f0eb03a6
+306 -125
View File
@@ -31,13 +31,14 @@ PISI
(Packages Installed Succesfully as Intented)
\layout Author
S.Çağlar Onur, Onur Küçük, Barış Metin
S.Çağlar Onur, Onur Küçük, Barış Metin, A.Murat Eren, Eray Özkural, Gürer
Özen
\layout Date
29 Mart 2005
23 Haziran 2005
\layout Date
Sürüm 0.4
Sürüm Pre-Alpha
\layout Standard
\pagebreak_top \pagebreak_bottom
@@ -84,8 +85,12 @@ Kur emri, komut sat
\layout Itemize
Aynı şekilde yapılandırma sorularından kaçınılmalıdır.
Bu işler ÇOMAR tarafından otomatik halledilecek, ya da kullanıcının verdiği
emirlerle sonradan yapılacaktır.
Bu işler
\series bold
ÇOMAR
\series default
tarafından otomatik halledilecek, ya da kullanıcının verdiği emirlerle
sonradan yapılacaktır.
Bu, örneğin sunucu uygulamaları kurulurken sunucu ayarı soruları vs sorulmaması
nı getirir.
\layout Itemize
@@ -133,7 +138,7 @@ Nerdeyse her uygulama kendi s
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, ihtiyaç duyulmayan paketler,
kurulu paketlerin kapladığı alan gibi bilgileri sunabilmeliyiz.
kurulu paketlerin kapladığı alan gibi bilgiler sunulabilmelidir.
\layout Itemize
Kullanıcı sistemde nelerin kurulu olduğunu, hangi paketleri kurabileceğini,
@@ -164,9 +169,9 @@ ri getirecek bi
bağlantı hızı açısından yaşanan sorunlar çözülecektir.
\layout Itemize
Uygulamayı kod olarak çekip, değişik özellikler ile derleyebilecek portage
benzeri bir sistem hedef kullanıcımıza zorluklar çıkaracak ve doğrudan
bir fayda sağlamayacaktır.
Uygulamayı kod olarak çekip, değişik özellikler ile derleyebilecek Gentoo
Linux'un Portage benzeri bir sistem hedef kullanıcımıza zorluklar çıkaracak
ve doğrudan bir fayda sağlamayacaktır.
Ancak kimi programların farklı biçimde derlenmiş hallerini pakede ayrı
bir özellik olarak koyabiliriz (örneğin mplayer pakedinde farklı işlemciler
için derlenmiş birkaç tane
@@ -181,7 +186,11 @@ Paketler farkl
\begin_inset Quotes eld
\end_inset
\emph on
relocatable
\emph default
\begin_inset Quotes erd
\end_inset
@@ -271,24 +280,47 @@ Gerekti
Yapılandırma Yöneticisi (ÇOMAR) gereksinimleri
\layout Itemize
Bir paket kurulduktan sonra, pakete ait CSL betikleri ÇOMAR'a bildirip kayıt
ettirmelidir.
Bir paket kurulduktan sonra, pakete ait
\series bold
CSL
\series default
betikleri
\series bold
ÇOMAR
\series default
'a bildirip kayıt ettirmelidir.
\layout Itemize
Bir paket kaldırılmadan önce ÇOMAR'dan bu pakete ait betikleri kaldırmasını
istemelidir.
Bir paket kaldırılmadan önce
\series bold
ÇOMAR
\series default
'dan bu pakete ait betikleri kaldırmasını istemelidir.
\layout Itemize
Bir paket eğer CSL betiği sağlıyorsa, paketin hangi OM dallarına ait betikler
içerdiği bilgisini tutmalıdır.
Bir paket eğer
\series bold
CSL
\series default
betiği sağlıyorsa, paketin hangi
\series bold
OM
\series default
dallarına ait betikler içerdiği bilgisini tutmalıdır.
\layout Itemize
Verilen bir OM dalı için, hangi paketlerin bu dala ait betik içerdiğini
verebilmelidir.
Verilen bir
\series bold
OM
\series default
dalı için, hangi paketlerin bu dala ait betik içerdiğini verebilmelidir.
\layout Itemize
Kurulması emredilen bir paket, kitaplık ve programların yanısıra OM üzerinden
sağlanan bazı görevlere ihtiyaç duyabilir.
Kurulması emredilen bir paket, kitaplık ve programların yanısıra
\series bold
OM
\series default
üzerinden sağlanan bazı görevlere ihtiyaç duyabilir.
Bu durumda paket yöneticisinin o bacaktaki görevi sağlayan uygun bir pakedin
kurulu olup olmadığına bakması, gerekiyorsa o görevi sağlayan paketlerden
birini kurması gereklidir.
@@ -308,8 +340,15 @@ Gereksinimlerimizi sa
yöneticisi yazmak gereği doğmuştur.
\layout Standard
Bu amaçla PİSİ (Packages Installed Successfully as Intented) adını verdiğimiz
yazılımı geliştiriyoruz.
Bu amaçla
\series bold
PİSİ
\series default
(
\series bold
Packages Installed Successfully as Intented
\series default
) adını verdiğimiz yazılımı geliştiriyoruz.
\layout Section
PİSİ Tasarımı
@@ -318,9 +357,7 @@ P
Paket Oluşturma
\layout Standard
Pisi bir dizin içinde verilen tanımlama dosyaları yamalar ve betikleri kullanara
k bir pakedi oluşturur.
Burdaki dizin yapısı aşağıdaki gibidir.
FIXME: Anlamlı bir giriş paragrafı lazım!
\layout Subsubsection
PSPEC Dosyası
@@ -335,8 +372,11 @@ PSPEC (P
hangi başka paketlere ne tür bağımlılıklar içerdiği gibi bilgileri içerir.
\layout Standard
Bir PSPEC dosyasından, dolayısı ile bir kaynaktan birden fazla paket oluşturulab
ilir.
Bir
\series bold
PSPEC
\series default
dosyasından, dolayısı ile bir kaynaktan birden fazla paket oluşturulabilir.
Örneğin kpdf paketi kdebase-sürüm.no.tar.gz kaynağından oluşturulabilecek
yalnızca bir pakettir.
\layout Standard
@@ -624,7 +664,7 @@ Update
Type:
\series default
Güncellemenin tipini belirtir.
(Güvenlik, Bug, Enhancement v.s)
(Security, Bug, Enhancement v.s)
\layout Itemize
@@ -720,7 +760,7 @@ Conflicts:
\series bold
Provides:
\series default
*********************** ????????????????????????
FIXME: ????????????????????????
\layout Itemize
@@ -847,6 +887,9 @@ Wildcard
\series bold
File
\end_deeper
\layout Standard
TODO: Örnek Lazım!
\layout Subsubsection
actions.py Dosyası
@@ -884,14 +927,28 @@ P
API
\series default
actionsapi adında sunulacaktır.
\layout Standard
TODO: Örnek Lazım!
\layout Subsubsection
ChangeLog Dosyası
\layout Standard
Pakedin sürümlerindeki değişikliklerin açıklamalarını içerir.
Bu dosya bilindik ChangeLog stilindedir ve PSPEC içindeki History bilgisi
ile ilgili değildir.
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
@@ -923,11 +980,13 @@ PSPEC
Metadata
\series default
dosyasına yazılmaktadır.
PSPEC dosyasındaki Global/Meta, Global/History ve Package içerisindeki
tüm bilgiler Metadata içerisine yazılır.
Metadata PSPEC dosyasından alınan bilgilerin yanında kaynak derlendikten
ve paket oluşturulduktan sonra alınabilecek diğer bilgileri de içerir (paketin
kurulduktan sonra sistemde kapyacağı alanın boyutu gibi).
\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
@@ -1052,7 +1111,7 @@ Conflicts
\series bold
Provides:
\series default
*********************** ????????????????????????
FIXME: ????????????????????????
\layout Itemize
@@ -1185,12 +1244,19 @@ XML
\series default
\emph default
dosyası olarak tutulacaktır.
Metadata XML dosyalarının doğrulanması için kullanılabilecek bilgi
\series bold
Metadata
\series default
XML dosyalarının doğrulanması için kullanılabilecek bilgi
\emph on
pisi-metadata.dtd
\emph default
dosyasında tanımlanmıştır.
\layout Standard
TODO: Örnek Lazım!
\layout Subsection
files.xml
@@ -1296,19 +1362,29 @@ files.xml dosyalar
pisi-files.dtd
\emph default
dosyasında tanımlanmıştır.
\layout Standard
TODO: Örnek Lazım!
\layout Subsection
PSPEC Deposu
\layout Standard
Paketleri oluşturmak için gerekli PSPEC dosyaları hiyerarşik bir yapıda
bir
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.
PSPEC deposunda paketler
\series bold
PSPEC
\series default
deposunda paketler
\emph on
\begin_inset Quotes eld
@@ -1327,8 +1403,12 @@ ilk harflerine g
\emph default
konumlandırılırlar.
Her paket kendine ait bir dizinde PSPEC dosyası, paket oluşturma için gerekli
olan ek dosyalar ve yamaların içinde bulunduğu files
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
@@ -1343,14 +1423,25 @@ Bir geli
\series bold
Pardus Linux
\series default
'a paket yapması için yalnızca PSPEC depo sıradüzeninde paket için gerekli
olan dosyaları sağlaması yeterlidir.
'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 PSPEC deposundaki bu bilgiler kullanılarak PİSİ paketleri oluşturulacaktır.
bu
\series bold
PSPEC
\series default
deposundaki bu bilgiler kullanılarak
\series bold
PİSİ
\series default
paketleri oluşturulacaktır.
\layout Standard
@@ -1385,7 +1476,7 @@ a
cpid-1.0.2.pspec
\layout Itemize
actions
actions.py
\layout Itemize
ChangeLog
@@ -1423,10 +1514,33 @@ acpid.csl
\end_deeper
\layout Subsection
Category
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
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
@@ -1457,88 +1571,68 @@ r
\series bold
Name:
\series default
Paketin adı
\layout Itemize
\series bold
Summary:
\series default
Paketin kısa adı
\layout Itemize
\series bold
Description:
\series default
Paketin uzun tanımı
Description:
\layout Itemize
\series bold
Version:
\series default
Yazılımın sürüm numarası
\layout Itemize
\series bold
Release:
\series default
Paketin revizyon numarası (kaçıncı paketlenmesi)
\layout Itemize
\series bold
License:
\series default
Paketin lisansı
\layout Itemize
\series bold
RuntimeDependencies:
\series default
Kurulmak/Çalışmak için hangi paketlere ihtiyacı var?
\layout Itemize
\series bold
InstallDependencies:
\layout Itemize
\series bold
Provides:
\series default
Paket neler sağlıyor (tanım yukarıda)
\layout Itemize
\series bold
History:
\series default
PSPEC dosyasından alınmış olan paket durumunu gösteren bölüm.
\layout Itemize
\series bold
Conflicts:
\series default
Paketin sistemde hangi paketler ile aynı anda kurulu olarak bulunamayacağı
bilgisi.
\layout Itemize
\series bold
PackageSize:
\series default
Paketin kapalı (kurulmadan önceki) boyutu.
Bu bilgi pisi paketinin dosya sisteminde kapladığı alan alınarak oluşturulacakt
ır.
\layout Itemize
\series bold
InstalledSize:
\series default
Paket kurulduğunda sistemde ne kadar yer kaplayacak?
\layout Standard
@@ -1686,66 +1780,85 @@ Bir geli
\series bold
Geliştirici Grafik Arayüzü
\series default
ya da konsol araçları yardımı ile PSPEC dosyası yukarıda anlatılan yapıya
uygun olarak oluşturulur.
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 PSPEC dosyası, hazırlanan paketin derlenebilmesi için PİSİ tarafında
n işlenir.
Eğer gerekli paketler sistemde mevcut değil ise bu paketler PİSİ tarafından
sisteme kurularak, sistem derleme işlemine hazır hale getirilir.
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.
\emph on
(bunun için kullanıcıdan bir onay gerekiyor mu? Evet?)
\layout Itemize
Oluşturulan PSPEC dosyasının Global 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 PISI
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
PISI
\series default
tarafından açılır ve gerekli yamalar koda uygulanır.
\emph on
(Adam kaynağın hash'ini kendisi çıkarmayacak sanırım.
Doğruluğunu burada kontrol etmek mantıklı değil gibi?)
\layout Itemize
\series bold
PSPEC
actions.py
\series default
dosyasının
\series bold
Actions
\series default
bölümündeki
\emph on
\emph default
betikler sıra ile
\series bold
Pisi
\series default
tarafından işletilerek kaynak koddan ikili veri oluşturulur.
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ı, PSPEC dosyasında tanımlanan Package bölümlerine göre sınıflandırır.
Oluşturulacak her paket için files.xml dosyası yaratılır.
Oluşturulacak her paket için
\series bold
files.xml
\series default
dosyası yaratılır.
\layout Itemize
PİSİ, PSPEC ve files.xml dosyalarını işleyerek paketi veya paketleri oluşturur.
\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ı (PSPEC dosyası, files/ dizini ve actions/
dizini)
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
@@ -1794,11 +1907,18 @@ Paket Kurmak
Bir istemcinin sisteme paket kurmak için izleyeceği yol şöyledir;
\layout Itemize
Sistemdeki ilgili uygulamalardan biri PİSİ'ye paket kurması için istekte
bulunur.
Sistemdeki ilgili uygulamalardan biri
\series bold
PİSİ
\series default
'ye paket kurması için istekte bulunur.
\layout Itemize
PİSİ, kendi yapılandırma dosyasını işleyerek, kendi yapılandırma dosyasının
\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
@@ -1825,7 +1945,11 @@ Depo Veritaban
ına yerleştirir.
\layout Itemize
PİSİ istenen paketin kurulması için gerekli olan bilgileri, ihtiyaç duyulan
\series bold
PİSİ
\series default
istenen paketin kurulması için gerekli olan bilgileri, ihtiyaç duyulan
paketleri belirler.
Gerekli olan paketleri
\series bold
@@ -1835,7 +1959,11 @@ ndan
Eğer çakışan paketler var ise bunları çözer.
\layout Itemize
PİSİ Kurulacak paketi
\series bold
PİSİ
\series default
Kurulacak paketi
\series bold
Paket Deposu
\series default
@@ -1864,11 +1992,18 @@ Paket Kald
Bir istemcinin sisteme paket kaldırmak için izleyeceği yol şöyledir;
\layout Itemize
Sistemdeki ilgili uygulamalardan biri PİSİ'ye paket kaldırmak için istekte
bulunur.
Sistemdeki ilgili uygulamalardan biri
\series bold
PİSİ
\series default
'ye paket kaldırmak için istekte bulunur.
\layout Itemize
PİSİ, kendi yapılandırma dosyasını işleyerek,
\series bold
PİSİ
\series default
, kendi yapılandırma dosyasını işleyerek,
\series bold
Kurulu Paket Veritabanı
\series default
@@ -1876,34 +2011,66 @@ ndan paketin ba
kontrol eder.
\layout Itemize
PİSİ paketi kaldırır.
\series bold
PİSİ
\series default
paketi kaldırır.
\layout Itemize
ÇOMAR'a ilgili CSL betiklerini kaldırması için silinen paket ile ilgili
bilgi verir.
\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
PİSİ 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.
TODO: Güzel anlatım, uzun bilimsel hikaye gerek
\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 COMAR OM (Object
Model) bacaklarına olan bağımlılıktır.
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 OM bacağını sağlayan bir paketin sistemde kurulu durumda olup olmadığı
bilgisi çıkartılır.
Eğer yoksa ilgili OM bacağını sağlayan paketlerin bir listesi sunulur.
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: Dizaynı sonrası güncellenmeli
\layout Standard
İstemci makinadaki paket veritabanı aşağıdaki bölümlere sahip olacaktır.
Veritabanları
\series bold
@@ -1939,23 +2106,37 @@ Depo Veritabanlar
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
Will be...
FIXME: Dizaynı sonrası güncellenmeli
\layout Subsubsection
Depo Veritabanları
\layout Standard
Will be...
FIXME: Dizaynı sonrası güncellenmeli
\layout Subsubsection
Kaynak Veritabanları
\layout Standard
FIXME: Dizaynı sonrası güncellenmeli
\layout Subsection
libpisi
\layout Standard
FIXME: Revize edilmeli
\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