Bir Cydia Deposu Nasıl Yapılır? Bölüm 1

Bundan yaklaşık 7 sene önce açık kaynak bir web yazılım sistemi olan Joomla! içerik yönetim sistemini kavramaya çalıştığımızda Türkçe kaynak bulmakta hayli zorlanmıştık. Bu zorluğu yakından yaşayan bizler, öğrendiğimiz şeyleri dökümanlaştırma, video ve resimli dersler şeklinde hazırlamaya gayret ederek bizden sonra gelecek olanların işlerini kolaylaştırmaya çalışmıştık. Yakın bir zamanda tanıştığımız iOS ve uygulama geliştirme kavramlarına odaklanmışken tıpkı Joomla! gibi bu işin temellerini öğrenmek ingilizce bilmeyen insanlar için hayli zor olduğunu bir kere daha görmüş olduk. Bu anlamda sizlere kaynak olması açısından öğrendiğimiz veya çevirisini yaptırdığımız iOS ve geliştirme ile ilgili kaynakları paylaşmaktan keyif duyacağız. Bu yöndeki ilk çeviri kaynağımız How to Host a Cydia™ Repository başlıklı Cydia’nın da kurucusu olan Jay Freeman‘ın makalesi olacak.

Cydia Repo Nasıl Yapılır

Yazının hayli uzun olmasından dolayı iki bölümde vermeyi uygun gördüğümüz orjinal metnin çevirisini Yusuf Bayram isimli blogumuzun da yazarları arasında bulunan arkadaşımız yaptırmış olup kendisine bu yazıyı bize Türkçe olarak kazandırdığı için teşekkür ederiz. Sözü fazla uzatmadan dilerseniz yazının ilk bölümünü sizlerle paylaşalım;

Bir Cydia ™ Deposuna nasıl sahip olunur?

Ben birkaç ay önce Cydia ve Telesphoreo‘ru tanıttım. O zamandan beri, bir Cydia “kaynak” nasıl oluşturulur ile ilgili bir dizi soru aldım.. Birçok kişi Cydia ‘nın APPTapp Installer olarak bilinen ve AppTapp paketleme sorunlarını tamamıyla çözemeyen bu programla aynı depo yapısını kullandığını zannettiler.Neyseki,bu soruya verilecek cevab oldukça kısa: Bir Cydia depo aynı zamanda bir Debian APT deposudur.

Ancak, Debian APT oldukça iyi belgelenmiş olmasına rağmen ,bazı insanlar için bu yeterli görülmüyor. Bu nedenle ben de dünyada yazılım dağıtımında Cydia programını kullanan kılavuz insanlara yardım için Cydia’nın olabildiğince basit altyapısını kullanarak bu belgeyi bir araya getirdim.

Adım 1: Bir Paket yapma

Debian APT / dpkg dünyasında, yükleyebileceğiniz her şey, bir “paket” dir.Bu paketler .dep uzantılı dosyaları içinde yer alan daha çok kapalı bölüm(yazılım tarihçisi-veya fascinating-olarak ta okunan) olan okuyucuyu sıkmayan bir iç biçimi vardır. Yüksek düzeyde, bir. Deb paketi, paketin parçası olarak yüklenecek dosyaları ve ‘kontrol’ bilgisi dediğimiz paket (adı,büyüklüğü,diğer muhtelif detaylar) hakkında meta veri (paket bilgileri) içeren dosyaları içerir.

Böyle bir dosya dpkg-deb aracı kullanılarak yapılır. Debian (ya da APT dayanan bir Macintosh üzerinde olan Fink) kullanıcılarında zaten bu paket yüklüdür, ama diğer her platformdaki kullanıcı bunu kolaylıkla kurabiliyor , ya da bu işi iPhone üzerinden kendileri yapabiliyor . Bu süreci hızlandırmak için, Linux ve Mac OS X 10.4 + da kullanım için bazı belge kopyalarını birleştirdim .

Bir paket yapmak için Bizim sadece Iphone’nun dosya sitemi üzerinde görüneceği şekilde, yüklemek istediğimiz dosyaları içeren bir klasör hazırlamak yeterlidir…Ek olarak, Biz meta verilerini(paket bilgileri) içeren ve ‘kontrol’ adı verilen dosya paketimize, kök dosya(alt dosya) olarak DEBIAN adı verilen tek bir dizin ekleyeceğiz.. Örneğin Eğer biz MyProgram için herhangi bir program ve LaunchDaemon kurmak istiyorsak (tabiî ki,yükleyeceğimiz programa bağlı olarak) aşagıda verilen dizin yapısını uygulayarak sona erdirebiliriz.

+- MyProgram

     +- Applications

     |     +- MyProgram.app

     |     +- Info.plist

     |     +- MyProgram

     |     +- icon.png

   +- DEBIAN

   |     +- control

   +-   System

         +-   Library

                 +- LaunchDaemons

                       +- com.saurik.MyProgram.plist

Kontrol dosyasının içeriği bir isim dizisi / değer çiftleri (iki nokta üst üste konularak ayrılan), her satır da bir dizi olacak şekilde oluşur. Aşağıda bir kontrol dosyasının isimleri, her alanın ne anlama geldiği ve içerdiği değerlerin türlerini gösteren bir örnek sunulmuştur.

Paket: com.saurik.myprogram

Adı: MyProgram Sürüm: 1.0.4-1

Mimar(Yapım): iPhoneOS

Açıklama: APT kullanmanın bir örneği:Her gün insanlar Cydia(talimatları içinde olan paketle berlikte)kullanıyor .Ayrıca insanlar bunu yayınlayabilir.

Anasayfa: http://www.saurik.com/id/7

Tanımlama(tasvir): http://www.saurik.com/id/7

Paket oluşturan kişi(sürdüren): İsminiz <you@example.com>

Yazar: Jay Freeman (saurik) <saurik @ saurik.com>

Sponsoru: Microsoft http://www.microsoft.com/

  • Paket: Bu paketin tanımlayıcısıdır. Bu tamamen küçük harf olmalı (Apple’ın içindeki Info.plist dosyaları içindeki “bundleIdentifier” gibi).Eğer siz aynı zamanda üyeleri desteklemek amacıyla bir AppTapp Installer deposuna sahip olmayı tercih ediyorsanız sizin yaptığınız paket ismi kesinlikle AppTapp bundle tanımlayıcı(küçük harf olanlar hariç) ile uyuşması gerekir
  • Adı: Paket Cydia Kullanıcı listelerinde gösterildiği zaman, daha güzel bir isim olması uygundur. Bu alan sizin bu ekranı rastgele bir dizi ile geçersiz kılmanızı sağlar. “Paket” alanı paketin varlığı süresince sabit olması gerekirken ,bu alan sık sık değişebilir.
  • Sürüm: Bir paket versiyonu iki ayrı değeri gösterir. Paket içindeki yazılımın sürümü, ve paketin kendisinin versiyonu. Bu sürüm numaraları bir tire ile ayrılır.
  • Mimar(Yapım): Bu paketin hangi sistem için tasarlandığını ifade eder. Çünkü deb dosyaları Iphone’ dan masaüstünüze gidecek her şey için kullanılır. IPhoneOS 1.0.x/1.1.x için doğru değeri “Darwin-kol” dur.Eğer iPhoneOS 1.2/2.x için yerleştirme yapacaksanız, “iPhoneOS-kol” kullanmalısınız.
  • Açıklama: Bu alanda birden fazla satır kullanıldığı için, bu alan diğerlerine göre biraz daha karmaşıktır.İlk satır (iki nokta üst üste’den sonra) paket adının altında olan paket listelerinde görüntülenecek kısa bir açıklama içermelidir.

İsteğe bağlı olarak, ,siz bunun yerine paket ekranında görüntülenecek gelişigüzel uzun bir tanım da tercih edebilirsiniz. Teknik olarak bu alan içindeki format oldukça karmaşıktır fakat bu karmaşıklığın çoğu şuan Cydia tarafından göz ardı ediliyor.Cydia bu alanda size muhteşem keyfi bir HTML yerleştirmenize olanak sağlar. Bu uzatılmış(genişletilmiş) açıklamanın her bir satırı boşluk (space tuşu) ile başlamalıdır.Ben HTML için bunu kullanmanızı çok fazla tavsiye etmiyorum.Bununla beraber siz bunun yerine komut satırı istemcileri ile uyumluluk ve Cydia içindeki açıklama için, Depiction(Tanımlama ‘yı) ve genişletilmiş açıklamaları (Cydia tarafından göz ardı edilen) kullanmalısınız.Ben normalde bu karmaşık belgeyi anlatmayı(işin içinden çıkılamayan bu açıklamayı) bırakırdım fakat bu APT/dpkg den çok farklı olduğu için burada bunu tam olarak açıklama gereği hissediyorum..Muhtemelen,bazı ileriki noktalarda,Ben bu alanın doğru ayrıştırılması için Cydia da yeniden yapmam gerekir,yada başka bir deyişle söyleyecek olursak bu genişletilmiz açıklama(extenden description) Cydia ile hiç kullanılmaması gerekir.

  • Anasayfa: Paket açıklaması içindeki listelenebilecek bilgiden daha çok Paket hakkında bilgi elde etmek isteyen Paket yapımcı için burada daha çok bilgi vardır.Cydia, Detay ekranında(kullanıcıları, paketi yapan kişinin seçtiği websayfanına yönlendiren) ‘MoreInfo’(Daha fazla bilgi) alanını destekler.
  • Tanımlama: Tasvir: Cydia’ nın hemen hemen bütün arayüzü çok kolay şekilde özellikler ve yeni işlevler eklemeyi kılan bir web sayfasıdır.Özel formatlarla(yapılandırma) ile özel bağlantıları ve ekran görüntülerini gösterme gibi bir şey isteyebiliriz.bunuda sadece paketinize sade bir şey ekleyerek yapabilirsiniz.Bu ise sayfada var olan Description ve Homepage sayfası yerine geçebilecek bir URL olan ‘depiction’ ile yapılır.Buna iyi bir örnek için Cydia içince olan Winter Board ‘un paket detayları sayfasına göz atabilirsiniz. Birçok paket yapımcısı için bu onların ,sadece geri dönüşlerdeki       uyumluluğu sağlamak için       kullanılan , ‘Daha fazla bilgi sayfası’(More İnformation Page’)       haline gelir.Fakat aynı olması na gerek yoktur. Eğer sayfanız ‘Depiciton’ içeriyorsa Homepage (Anasayfa) alanı olmamasınıda düşünebilirsiniz.
  • Paketi oluşturan kişi(Oluşturan):Paketi inşa eden(düzenleyen) kişi ye denir.Bu kişi paketle ilgili konularda irtibata geçilecektir kişidir.Bu ‘İsmi email@address.com’ biçiminde olmalı.
  • Yazar:Buna karşılık ise Bu orijinal yazılımı yazan kişiyede ‘yazar’ denilir.Bu isim detay ekranında olan paket isminin altında gösterilir.Bu alan ‘Paketi oluşturan kişi’ formatı ile aynı biçimdedir.
  • Sponsor: Son olarak, bu paketin gerçekleşmesi olanağını veya maddi imkanı sağlayacak birisi olacaktır. Bu kişi bir e posta adresi yerine bir URI kaynağı kallanarak burada ‘Maintainer’(paket oluşturan kişi)formunun içindeki listede belirtilir
  • Cydia’ da ‘Install tab’ in altındaki paketler ‘Bölüm’ ile listelenir.Eğer bölüm ismine bir boşluk(space) kodlamak istiyorsanız altçizgi kullanabilirsiniz.(Cydia otomatik olarak bunları dönüştürecektir.)

Bu paket daha sonra, MyProgram’ı içeren dosyasa yönlendirilerek ve dpkg-deb çalıştırılarak oluşturulur.Sonuç ise, Iphone üzerine yüklenecek ve test edilecek bir Deb dosyasıdır.Kullandığınız dpkg-deb sürümüne bağlı olarak,’’kullanıcı-tanımlı alanlar’’(user-defined-fields) ile ilgili birkaç uyarı alabilirsiniz.Bunun sebebi ise Cydia eklentilerinin, kontrol alanı formatına eklenmiş olmasındandır.(Cydia bunu doğru varsaymış olabilir.) Ama bunu rahatça göz ardı edebilirsiniz.

Eğer Macintosh üzerinde çalışıyorsanız ,bu adımları gerçekleştirmeden önce sizin bir şey daha yapmanız gerekir.Debian paketinin iç yapısının bir parçası olan TAR dosyaları Apple sistemleri üzerinde oluşturulduğunda ,kaynak veri çatalı bilglerini içeren birkaç sayıda extra dosyalar oluşur.Bu klasörler paket içinde paketle beraber yüklenir ve hiç burada var olmasaydı iyi olurdu diyecegimiz bazı diğer paketlerle çakışabilir.Bunu önlemek ve kapatmak için sizin aşağıda verilen ortam değişikliklerini vermeniz gerekir.

export COPYFILE_DISABLE
export COPY_EXTENDED_ATTRIBUTES_DISABLE
[root@desktop:~/cydia]# dpkg-deb -b MyProgram
warning,`MyProgram/DEBIAN/control' contains user-defined field `Name'
warning, `MyProgram/DEBIAN/control' contains user-defined field `Homepage'
warning, `MyProgram/DEBIAN/control' contains user-defined field `Author'
dpkg-deb: building package `com.saurik.myprogram' in `MyProgram.deb'.
dpkg-deb: ignoring 3 warnings about the control file(s)
[root@desktop:~/cydia]# ls -la MyProgram.deb
-rw-r--r-- 1 root root 906 2008-07-01 07:48 MyProgram.deb
[root@desktop:~/cydia]#

Bir Cydia Deposu Nasıl Yapılır? Bölüm 2 Git>>

Blog’umuza ait son güncellemeleri Twitter veya Facebook sayfalarımızdan da takip edebilirsiniz

2 Comments

Add a Comment

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir