Mozilla Çalışmalarım 2

Herkese merhaba,

Bu yazımda öncelikle Mozilla'nın ürünü olan İnstantbird için düzelttiğim bir hata kaydından, sonrasında da neden birtakım projelere katkı verip durduğumdan bahsetmek istiyorum.

İnstantbird'ün ne olduğunu öğrendikten sonra severek kullanmaya başladım. Ürün mesajlaşma servislerinizi kullanabileceğiniz bir mesajlaşma servisi aslında. IRC, Slack, Twitter, Yahoo, Google Talk gibi servisleri kullabiliyorusunuz. Derleyip kurmak isterseniz de buraya bakabilirsiniz. 

Çözdüğüm hata kaydı ise burada ve yine arayüz ile ilgili bir iyileştirme. İnstantbird'ün üstte bulunan menüsünden "Tools">"Preferences">"Advanced"> "Manage Search Engines" yolunu izledikten sonra yeni bir pencere açılıyor. Bu pencerede geliştiricilerin gereksiz gördükleri Keyword bölümünü kaldırdım.

Öncesi:
Sonrası:

Peki neden böyle şeyler yapıyorum?

İkinci dönem başladığından beri hiç bilmediğim projelerin ne iş yaptıklarını öğrenip, kaynak kodundan kurup, hata kayıtlarını kapatmaya çalışıyorum. Katkılarım alındıkça da blogumda yazıyorum ve vakit ayırıp düzenli çalışan herkesin de ilgilendikleri projelere katkı verebileceğini düşünüyorum.

Bu katkılardan bazıları, bazı kişilerin gözünde küçük görüyor. Herkesin fikrine de saygım var elbette. Ama 21.yyda  kimsenin elini bağlayan yoktur diye tahmin ediyorum. Böyle kişilere "siz de katkı yapın, siz de yazın" demek isterim :)

Neden böyle yaptığıma gelelim, mezun olup yazılımcı olarak çalışacak olursam, işe başladığımda yüksek ihtimalle hali hazırda devam eden bir projeye dahil olacağım. Yani, şimdi irc üzerinden konuştuğum geliştiriciler yerine işyerindeki takım arkadaşlarım olacak, bunun dışında şimdi yaptığım katkılara benzer katkılar yapacağım. Hatta bir miktar daha küçük boyutlu hali bile olabilir. Çünkü Linux Kernel olsun, LibreOffice ya da Mozilla depoları, içi oldukça kalabalık olan projeler.

Bu projelere katkı vermeyi Jenga oynamaya benzetiyorum. Blokların hiçbirini yıkmadan eklemeler, çıkarmalar yapmak göründüğünden zor. Binlerce hatta milyonlarca dosya içindeki milyonlarca satır içinden doğru yerlere doğru kodlar eklemek ya da doğru yerdeki kodları çıkartmak iyi kod okuyup anlayarak oluyor.

Böyle projelere katkı vererek hem düşüncesini savunduğum özgür yazılım için hem de kendim için birşeyler yapıyorum. Yeni bir projeye dahil olduğumda hızlıca adapte olacağımı düşünüyorum.

Katkı vermek çok zevkli siz de gelsenize :)

5 Mayıs 2016

Posted In: bug hunting, free software, Gezegen, gnu/linux, instantbird, mozilla

GNU/kWindows

Son zamanlarda benzersiz bir karışım hakkında çok konuşuluyor: GNUtamamıyla özgür işletim düzeni— ve Microsoft Windows —özgürlüğü reddeden, kullanıcıyı denetleyen, gözetim düzeni. Ayrıca ortalıkta çok fazla yanlış bilgi var. Düşüncelerimi sizlerle paylaşacağım.

Bu konuyu tartışmadan önce bazı terimleri açıklığa kavuşturmamız gerekiyor: Kullanıcılar “Linux” işletim düzeni hakkında konuştuklarında aslında Linux çekirdeği eklenmiş GNU işletim düzenine atıfta bulunurlar; biz buna GNU/Linux (ya da GNU+Linux) işletim düzeni diyoruz. Çeşitli biçimlerde GNU işletim düzenini kullanıyorsanız komut satırından tanıdık gelecek bir çok yazılım GNU yazılımıdır: bash, (g)awk, grep, ls, cat, bc, tr, gcc, emacs ve diğerleri. Linux bir çekirdektir ve işletim düzeninin yapmaya çalıştıklarını destekler: işlemleri, hafızayı, dosya düzenlerini ve daha fazlasını yönetir, çekirdeğin çeşitli eylemleri gerçekleştirmesini yöneten düzen çağrılarını sağlar, bu eylemler yeni işlemleri çatallamak ya da hafızayı tahsis etmek gibidir. Bu önemli bir ayrımdır —tüm bu yazılımı “Linux” olarak adlandırmak hatalı olduğu gibi tamamıyla özgür Unix ikamesi olan GNU tasarısını göz ardı etmektedir.

İsimlendirme sorunu oldukça yaygındır, GNU/Linux işletim düzeni kullanıyor olsa bile çoğu kullanıcı GNU'nun ne olduğunu bilmemektedir. Son olarak GNU Bash'tan “Linux Bash” olarak bahseden makale okudum; bu adeta GNU tasarısına, 26 yıldır Unix-benzeri düzenlerde (Apple'ın sahipli Mac OS X'i dahil) en geniş kullanıma sahip kabuğu yazan tüm yazarlara atılan bir tokattır.

GNU çoğunlukla Linux çekirdeğiyle kullanılmaktadır ama durum her zaman böyle değildir. Örneğin GNU kendi çekirdeği Hurd ile çalışabilir (GNU/Hurd). BSD çekirdeği olan bir düzende çalışabilir (örn. GNU/kFreeBSD). Ama bugün bir ay önce bile duymayı beklemeyeceğiniz birşeyden bahsetmek istiyorum: GNU ve Windows çekirdeği. Bu karışım GNU/kWindows (GNU ile Windows çekirdeği) olarak atfedildi.[1]

Anlaşılana göre Microsoft ve Canonical Linux düzen çağrılarını Windows'un anlayabileceği türe çeviren bir uyumluluk katmanı, altdüzen yazmak için birlikte çalışıyor. Yani, Linux çekirdekli bir düzen için derlenmiş yazılım çağrı çevirme ile Windows üzerinde çalışacak. Bir çok makale bu düzeni “Windows üzerinde Ubuntu” ya da “Windows üzerinde Linux” olarak adlandırıyor. Yanılgı şu ki bu düzen Linux çekirdeğini kapsamıyor, GNU işletim düzeninin Linux yerine Windows'un çekirdeğiyle çalıştığına tanıklık ediyoruz.

Bu Microsoft için yadsınamaz bir teknik yarardır: Windows kullacıları GNU/Linux'tan ya da Apple'ın özgürlüğü reddeden Mac OS X'i gibi diğer Unix benzeri düzenlerden tanımış olabileceği ortamlarda geliştirme yapmak istiyor. Fakat bunun hakkında düşününce önemli bir kavramı göz ardı ettiğini anlıyoruz:

Kullanıcılar bir işletim düzeni adı olarak “Linux"tan bahsettiklerinde GNU hakkında konuşmaktan kaçınıyor. Ve GNU'dan bahsedilmesinden kaçınarak ayrıca GNU'nun üzerinde kurulduğu temel ilkeleri tartışmaktan kaçınmış oluyorlar, bu ilkeler tüm kullanıcıların yazılımdan dört ana özgürlüğü temin etmesi fikridir: yazılımı her amaç için kullanabilmek, yazılımı anlayabilmek ve ihtiyaca göre düzenleyebilmek (ya da sizin için bunu başkasının yapabilmesi), yazılımı diğerleriyle paylaşabilmek, değişikliklerinizi başkalarıyla paylaşabilmek. Bu dört özgürlüğe saygılı yazılımlara özgür yazılım diyoruz.

Özgür yazılım gerçekten önemlidir, saldırıya açık olan kullanıcıların geliştirme esnasında (yazılım geliştiricilerin ya da şirketlerin değil) kendisinin denetimini temin eder. Kullanıcının bu dört özgürlüğünü ihmal eden herhangi bir yazılım özgür olmayan (ya da sahipli), özgürlüğü reddeden yazılımdır.  Bunun anlamı herhangi bir özgür olmayan yazılımın yeteneği ve verimi önemsizdir, benzer görevi yerine getiren özgür yazılımdan daima aşağıda olacaktır.

Herkes özgürlükten ya da özgür yazılım felsefesinden konuşmak istemez. Bu anlaşmazlık "açık kaynak” geliştirme yöntembiliminde sonuçlanmıştır, özgür yazılımın faydalarını gerekli fikirsel hususları tartışmadan şirketlere satmaktadır. “Açık kaynak” felsefesinde eğer özgür olmayan bir yazılım daha iyi özelliklere ve verime sahipse o kesinlikle daha iyidir, çünkü “açık kaynak” geliştirme yöntembiliminden üstün gelmiştir, özgür olmayan yazılım her zaman kötü bir şey olarak sayılmaz.

Tüm bunları bir araya getirelim: GNU adında özgür bir işletim düzenine sahibiz. Genellikle Linux çekirdeğiyle birlikte kullanılıyor ve ikisi birlikte GNU/Linux işletim düzeni olarak adlandırılıyor. Ama şimdi GNU/Linux'u alıp Linux'u kaldırıp ve onun yerine Windows çekirdeğini eklediğimiz bir duruma sahibiz, kar sağlayan GNU/kWindows. GNU kullanıcı özgürlüklerine değer verir. Windows ise tam tersini yapar.

Kullanıcılar neden bunu istiyor? Yani, belki de Mac OSX'te GNU araçlarını istemeleriyle aynı sebeptir, kullanmak istedikleri yazılımları kullanmak istiyorlar ayrıca GNU'da beğendikleri teknik faydaları istiyorlar. “Açık kaynak” felsefesini ele aldığımızda —çünkü eğer bir kullanıcı özgürlüğüne değer veriyorsa GNU/Linux gibi tamamıyla özgür bir işletim düzeni kullanmalıdır. Eğer bir kullanıcı zaten Windows kullanıyorsa GNU yükleyerek bir takım özgürlükler kazanır, artık düzeninde özgürlüklerine değer veren daha fazla yazılıma sahiptir ve bu yüzden böylesi onun için daha iyidir.

Peki ya bugün GNU/Linux kullanıyorsanız? Bu durumda GNU/kWindows düzenine geçmek büyük bir gerileme demektir, bunu yaparken özgürlüklerinizi Microsoft'a teslim etmiş olursunuz. Microsoft'un özgürlüğü reddeden gözetleyici düzeninde ne kadar parlak özellikler tanıttığının bir önemi yok, özgürlüğünüze saygı duyan bir işletim düzeni her zaman birincil tercih olmalıdır. Kullanıcıların GNU'nun sağladığı teknik yararlar için GNU/kWindows düzenine geçmemesi adına elimizden gelenin en iyisini yapacağız.

Birazı gerçek birazı felsefik olmak üzere elimizde bir takım sorunlar var:

İlkin, lütfen GNU/kWindows'u “Windows üzerinde Linux” (bununla ilgili başka bir biçimde) olarak atfetmeyin, yanlış bilgiyi yaymak durumu karıştırmanın ötesinde GNU işletim düzeni üzerinde çalışan binlerce yazarı göz ardı etmektir. “Windows üzerinde Ubuntu” olarak anmazsanız en iyisini yapmış olursunuz, bu tam yanlış bir ifade sayılmaz -Ubuntu'nun dağıttı GNU'yu kullanıyorsunuz- ama hala GNU Tasarısından bahsetmiyor. GNU'dan bahsedersek, kullanıcılar tasarıyla ilgili sorular sorabilir ve belki de kendi kendilerine sonuç ararlar. Özgür yazılım felsefesini okuyacaklar ve umarım sorunları, evvela daha önce farkında olmadıkları sorunları anlamaya başlayacaklar.

İkinci olarak, GNU/kWindows düzeni kullanan birisi gördüğünüzde kibarca nedenini sorun. Onlara sadece bu teknik yetenekleri sağlayan değil ayrıca özgürlüğü sağlayan daha iyi işletim düzeninin olduğunu söyleyin! Özgür yazılımın ne olduğunu söyleyin ve onlarla özgür yazılımı bağdaştırın ve neden önemli olduğunu anlamalarını sağlayın.

GNU'dan yarar sağlayan daha fazla insan görmek iyi ama ne için burada bulunduğumuzu ya da adımızı çok fazla anmadan, kullanıcıları diğer taraftan sahipli gözetim düzenine çekerek, böyle satıldığında mutlu olamayız.

[1] Bu isim Richard Stallman’dan gelmektedir. GNU Tasarısının kurucusudur.

Lisans: Bu metin CC BY-SA 4.0 lisansı altında dağıtılan “GNU/kWindows” metninden tercüme edilmiştir. Özgün metin Mike Gerwitz tarafından yazılmıştır. Tercüme metni CC BY-SA 4.0 altında lisanslanmıştır.

9 Nisan 2016

Posted In: canonical, gnu, GNU/kWindows, gnu/linux, hurd, linux, linuxgezegeni, microsoft, Özgür yazılım, tercüme, ubuntu, windows

GNU/kWindows

Son zamanlarda benzersiz bir karışım hakkında çok konuşuluyor: GNU —tamamıyla özgür işletim düzeni— ve Microsoft Windows —özgürlüğü reddeden, kullanıcıyı denetleyen, gözetim düzeni. Ayrıca ortalıkta çok fazla yanlış bilgi var. Düşüncelerimi sizlerle paylaşacağım. Bu konuyu tartışmadan önce bazı terimleri açıklığa kavuşturmamız gerekiyor: Kullanıcılar “Linux” işletim düzeni hakkında konuştuklarında aslında Linux çekirdeği eklenmiş GNU işletim düzenine atıfta … Okumaya devam et "GNU/kWindows"

9 Nisan 2016

Posted In: canonical, gnu, GNU/kWindows, gnu/linux, hurd, linux, linuxgezegeni, microsoft, Özgür yazılım, tercüme, ubuntu, windows

Bir “Portal” üzerine…

Türkiye’de özgür yazılım katkıcılığı yapmak zor iş… Hatta katkıcılığı bırakın topluluk üyesi olmak bile pek kolay değil…

2007 benim için bu alanda bir milat, kişisel aydınlanma, özgür yazılımın alnımda çıkardığı 3. göz… Bu tarihi referans alırsam 2007 öncesi -topluluk/camia ne derseniz artık- aitlik süreci çok zordu. Bakıyorum da 2007 sonrasından ta ki hatırlamak istemediğim bir tarihteki Özgürlükİçin.org çöküşüne kadar gerçekten güzel zamanlar geçirmişiz… Bu çöküşten sonra ise, topluluk ve aidiyet dışında özgür yazılım dünyasıyla olan bağlarımız da zayıflamaya başladı… En büyük zorluk ise bir portal, bir ana gemi olmayışı.

Efsanevi Özgürlükİçin sitesi hayalet gemi gibi bant genişliklerinde seyretmekte...

Efsanevi Özgürlükİçin sitesi hayalet gemi gibi bant genişliklerinde seyretmekte…

Bu zorluğu kısaca masaya yatırırsak -aslında buna da çok zamanım yok- madde madde gidelim:

  • Özgür yazılım dünyasından haberler / sürüm duyuruları
  • Ortak bir paylaşım/yardımlaşma alanı – forum
  • Blog kardeşliği – gezegen
  • İncelemeler – özellikle oyun ve heyecan verici şeyler

Bu ve bunun gibi onca şeyi bir araya getiren harika bir şeye sahipmişiz; özgürlükiçin.org hatta o zman o kadar zenginmişiz ki bir de pardus-linux.org‘a sahipmişiz… ve cahilmişiz… bunların artık geride kaldığını kabul etmek gerekiyor…

Özgür yazılımda böyle “değerler” (bu kelimeyi kullanmayı da pek sevmiyoırum) ne kadar önemliymiş, onu düşünüyorum bir kaç gündür… Bunların eksikliği gerçekten özgür yazılım dünyasını takip etmekte insanı çok zorluyor… Hadi ben İngilizce biliyorum takip edebiliyorum… Ya ait olmak? Paylaşmak? Yardımlaşmak? Birlikte bir şeyler yapmak isteyip de o marşa basıp o enerjiyi boşaltabilmek? Yapabilmek? Bunlar yok…

Atlamadan bir de teknokedi.com vardı, o da bu açığı kapatmak için kendi öz amacı olmasa da alan yaratmak için katkı vermişti. Sevgili Ali Işıngör abimizin iyi niyetiydi…

Şu anda bu alan içice dağınık halde… Andoid, tabletler  ve mobil teknoloji birçok kişinin başını döndürdü ve masaüstü arka plana itildi, fakat şimdi GNU/Linux masaüstünün güçlenerek geldiğini görüyorum. Steam’in GNU/Linux’a gelmesi ve süpersonik oyunları Linux’a taşıması, Nvidia – Ati sürücülerindeki yenilikler + Vulkan vs, ve nihayetinde de Microsoft’un başlayan Linux aşkı(!) (hem Office’in potansiyel Linux sürümü beklentisi hem de Office 365)… Bunlar harika şeyler aslında… Masaüstünde Linux kullanımını kısıtlayan birçok sıkıcı bahane ortadan kalkıyor -konuyu uzatmamak adına özgür yazılım felsefesiyle kapalı yazılım tercihini kullanıcıya bırakalım… Yakında kendi adam akıllı dağıtımıyla pazara çıkacak masaüstü/dizüstü bilgisayarlar görmeyi umuyorum. (Dejavu değil…)

Konuya dönersek, şu anda bildiğim birkaç site arasında GNU/Linux dünyasına özel bir amiral gemi görebileceğim bir portal yok. Bildiğim siteler ise adeta kahramanca bir bireysel mücadele ile ayakta tutulmaya çalışılıyor, içerik sunmak için büyük emek ve zaman harcanıyor… Bunlardan bazıları:

  • getgnu.org – Fortran takma ismiyle adeta bir süperkahraman edasıyla paylaşılabilir bütün haberleri neredeyse tüm özgür yazılımla ilişkili forumlara ileten süper kişi. nasıl yaptığını hala çözebilmiş değilim.
  • linuxnotlari.com – Sevgili Mustafa Gökay’ın epeyce emek verdiği Linux Haber Platformu. OMG ubuntu tadında
  • acikgunluk.net – Sevgili Özgür Ilgın’ın günlüğü, özgür yazılım artı hobileri (özel ilgi alanı nostaljik ve avatür türk sineması)

* Başka bildiğiniz aktif sayılabilecek site varsa yorumlara yazarsanız sevinirim.

Yeni bir site?

Hayır, yeni değil, birleştirici, geniş ve yeni içeriği sunan bir site… Kolektif ve eğlenceli, hatta daha önce olmadığı kadar eğlenceli olmalı… Özgür yazılım caps galerisi dahi olsa olur…

Neden?

Çünkü ihtiyaç var

Peki gönüllü mü olacak, nasıl ayakta duracak?

Ticari bir proje olmalı. Para kazanmalı, en azından masraflarını çıkarmalı.

Özgür yazılım projeleri ve ticari amaç???

Böyle bir tabu var, ticari amaç güdülebilir. Özgür yazılım ürünleri dahi parayla satılabilir ki bu gibi işlerde “reklamsızlık” sanki bir bekaret kemeri gibi her projeye iliştiriliyor. Çok anlam veremiyorum…

Ticari amaç olmalı, diğer türlü hiçbir şekilde ayakta duramadı. Bağış kültürü bizim ülkemizde yok, şahsi fedakarlık bir yere kadar… Bir de bu işleri üstlenen kişiler sürekli rica minnet ile istekte bulunmak gerekiyor; damdan düştüm bilirim, yok bize sunucu, yok bize alan adı lazım diye aramaktansa parayı basıp almak en sağlıklısı.

Kim yapacak? Nasıl bir model?

Şu an bu işi hobi olarak yapan arkadaşlar ve böyle bir projeye girmek isteyen kişiler bir araya gelebilir, gelir paylaşımlı kolektif bir model üzerinde anlaşabilir. Dileğim de budur. Şayet onlar olmazsa, İngilizce bilen birkaç üniversite öğrencisi arkadaş böyle bir projeye girerse hem hobi, hem harçlık hem de ileriye yönelik belki de kendi işlerini kurabilirler.

Gelir yeterli olur mu?

Varsayalım Google Adsense ile yola çıktılar, Türkçe içeriğin reklam başı getirisi tabi ki İngilizce içerikten daha düşük olacaktır, ama akmasa da damlar, ileriye doğru hacim arttıkça tatmin edici bir gelir gelebilir.

Özellikle Steam sayesinde oyun inceleme ve tanıtım içeriklerinin ileride büyük potansiyeli olacağına inanıyorum.

Zorlukları?

Tahmin ettiğim bazı zorlukları var, bunun yanı sıra yukarıda bahsettiğim arkadaşların yaşayıp deneyimlediği zorluklar da vardır. Sonuçta protonların çarpıştırmayacakları için kolayca üstesinden gelebileceklerini düşünüyorum. Linus Torvalds’ın “Just for fun – Yanlızca Eğlenmek İçin…” sözüne yaslanıp eğlenceli bir yola girilebilir…

***

Yukarıdaki kendi kendime röportajım daha kısa bir yazı yazmak içindi, kendimi havaya sokmak için değildi. Epeydir bir şey karalamamıştım, lafı iyice uzatmak istemedim 😉

Dilerim bu yazım bir açık davet olur, en azından bir tartışma başlar ve şu üzerimizdeki ölü toprağını silkeleyebiliriz.

***

Bonus: “Var mı peki bu haberleri takip edebileceğimiz yabancı bir site?” diyenler özgür Ilgın’ın 10 sitelik listesine bakabilirler: En çok takip ettiğim 10 yabancı GNU/Linux haber ve blog

***

Son olarak, ben bu yukarıda yazdıklarımı düşünürken LKD‘den şöyle bir ileti de geldi. Katkı verebilceklerin dikkatine:

Merhaba,

Dünyada özgür yazılım ve ilgili alanlar (kişisel verilerin gizliliği, ifade özgürlüğü, telif hakları vs.) hakkında önemli gelişmeler yaşanmakta. Ancak bu gelişmeler hakkında yayımlanmış güncel haber ve yazılar yabancı dil (başta İngilizce) bilmeyen ilgililere ulaşamamakta. Bu nedenle, güncel haber ve yazıları Türkçeye çevirmek amacıyla bir çeviri grubu kuruyoruz. Çeviri grubu çalışmalarına LKD üyesi olsun ya da olmasın özgür yazılıma gönül vermiş herkes katılabilir.

Çevirisi yapılacak haber ve yazılar, LKD tarafından hazırlanacak bir sitede düzenli olarak yayımlanacak. Ayrıca aylık olarak da bülten haline getirilerek duyurusu yapılacak.

Çeviri grubuna katılmak için yk@linux.org.tr adresine, kısaca kendinizi tanıtan ve çalışma grubuna katılmak istediğinizi belirten bir e-posta atmanız yeterli olacaktır.

— 

ibrahim izlem GÖZÜKELEŞ

~DAVET~

Özgür Yazılım Günleri 2016: LibreOffice Geliştirme ve Yaygınlaştırma Toplantısı

Özgür Yazılım Günleri 2016: LibreOffice Geliştirme ve Yaygınlaştırma Toplantısı –

(twitter bağlantısını yapıştırınca yukarıdaki kendiliğinden çıktı, vay be!)

Fırsatınız varsa katılın, detaylı bilgi için: http://ozguryazilimgunleri.org.tr/2016/etkinlik-programi/

Mutlu günler.

Sonrası Bir “Portal” üzerine… Günlüğüm ilk ortaya çıktı.

23 Mart 2016

Posted In: Genel, Gezegen, gnu/linux, just for fun, lkd, Özgür yazılım, özgürlükiçin, pardus-linux.org, portal

Balrog Nedir? Nasıl Çalıştırılır?

Balrog, Firefox'un ve diğer mozilla ürünlerinin kullandığı uygulama güncelleme servisi(AUS).  Veritabanı modeli "Rules(Kurallar)"  ve "Release(Sürüm)"  şeklinde 2 grupta toplanıyor. Bu 2 grubun da alabildiği tipler ve özellikler var. Burada çok güzel bahsedilmiş. Ben makinama nasıl kurup ayağa kaldırdım kısaca ondan bahsedeceğim.

Geliştiriciler github'ı aktif kullanıyor. Proje "backend server" ve "admin ui" olmak üzere 2 kısıma ayrılmış şekilde bulunuyor. Depoyu yerelimize çektikten sonra (" $ git clone https://github.com/mozilla/balrog")  ui ile ilgileneceksek alt modülü başlatıp ui kaynak kodunu da projeye eklemeliyiz.

$ git submodule init
$ git submodule update

Ayrıca ui için gerekli modülleri de indirmeliyiz.

$ npm install
$ npm install -g lineman

Son olarak Balrog'u ayağa kaldırmak için "docker-compose up" komutunu vermeliyiz. Bu komutla gerekli olan 3 conteiner (balrog_balrogdb_1, balrog_balrogadmin_1 vebalrog_balrogpub_1) oluşturulup başlatılıyor. uwsgi, dizinindeki run.py çalışırken kontrol çıktısının

 "balrogpub_1   | Python auto-reloader enabled

olduğunu görebildiysek "http://127.0.0.1:8080" den balrog admin sayfasını görebiliriz. Görüşmek üzere.


20 Mart 2016

Posted In: aus, balrog, firefox, gnu/linux, hacking, mozilla, ubuntu

Kaynak Koddan Firefox Kurulumu ve Firefox İçin Yama Göndermek

Özgür yazılım dünyasının 3 büyük projesinden(Linux Kernel, LibreOffice, Firefox) birisi de Firefox. Herkesin de bildiği ve kullandığı gibi Mozilla Vakfı tarafından geliştirilen özgür bir ağ tarayıcısı.
Geçtiğimiz cuma, biraz da Firefox ile ilgileneyim diyip kolları sıvadım :) Bu birkaç günde neler öğrendiğimi sizlerle paylaşmak istedim.

Büyük bir projeye katkı vermeden önce kaynak kodundan 1 defa derleyip o halini kullanmak, o projeye katkı vermeden önce yapılması mantıklı bir iş. Deponun geliştirilmekte olan halini kullanmak eklenen-çıkarılan kısımları görüp hatalı yerleri raporlama ya da bu kısımlarla ilgili ters giden yerleri düzeltebilme imkanı sağlıyor.

DERLEMEYE HAZIRLIK:

Derlemeden önce bağımlılıklar için geliştiricilerin yazdığı python dosyasını buradan çekip çalıştırmamız gerekiyor.
$ wget -q <link> && python bootstrap.py
ya da
$ curl -O <link> && python bootstrap.py

KAYNAK KODU YEREL DEPOYA ÇEKERKEN:

Firefox, mercurial sürüm takip sistemini kullanıyor. Git ile entegre çalışıyor. Ben öğreneyim diye mercurial ile depoyu çektim. Mercurial kullanımıyla ilgili buraya bakabilirsiniz.

$ hg clone https://hg.mozilla.org/mozilla-central


YAPILANDIRMA:

 Dilerseniz derleme sırasında bazı özellikleri etkinleştirmek/devre dışı bırakmak için "mozconfig" dosyası oluşturup içini istediğiniz şekilde yapılandırabilirsiniz:
ac_add_options --enable-debug
ac_add_options --disable-optimize
DERLEME: 
$ ./mach mercurial-setup
$ ./mach build 
ÇALIŞTIRMA:
$ ./mach run






YAMA YOLLARKEN: 
İlk aşamada yama yollarken mercurial ile bir yama dosyası oluşturup, hangi hata kaydı için düzeltme yaptıysanız *.patch dosyasını ekleyebilirsiniz.

Yama dosyası hazırlarken de kullanacağımız komut "$ hg qnew *.patch " ve değişiklikleri yama dosyasına eklemek için de "hg export . > *.patch" komutları. 


Yardımcı linkler:

- Derleme ile ilgili ayrıntılı bilgi için tıklayın.

- Kaynak kodda arama yapmak için tıklayın.

- Mozilla hata kaydı sayfası için tıklayın.


Güzel haberler vermek dileğiyle hoş kalın :)

17 Mart 2016

Posted In: compile, firefox, gnu/linux, mozillian, source code

Mercurial vs Git

Bir proje üzerinde çalışırken, sürüm takip sistemi kullanmak projenin sağlığı açısından çok büyük öneme sahip. Kullanınca ne oluyormuş ya, diyenler için:

* Masaüstünüzdeki "proje_son.*", "valla_bu_son.*", "valla_son_v2.*" gibi dosyaların çoğalmasını engelleyip masaüstü arkaplanınızı net görebilmenize yardımcı olur.
* İşletim sisteminize birşey olsa da (bilgisayarınıza kahve dökseniz bile) projeniz uzak depoda da bulunduğu için içiniz bir miktar rahat olur.
* Projenin önceki versiyonlarına rahatça dönebilirsiniz.
* Dünyanın bir ucundaki proje ortaklarınız ile rahatça çalışabilirsiniz.

Kısacası yukarıda "Yıl olmuş 2016 sürüm takip sistemi kullanmayan mı kaldı" demek istiyorum.

Mercurial da bir sürüm takip sistemi aracı. Çok büyük kısmı Python ile yazılmış. GNU/Linux, Unix-benzeri sistemler, FreeBSD, Mac OS X ve MS Windows işletim sistemlerinde kullanılabiliyor.
 
Ben şimdiye kadar hep Git kullanmıştım. Git, dünyada çok yaygın şekilde kullanılan, oldukça marifetli bir araç. Linux çekirdek geliştiricileri kendi ihtiyaçları doğrultusunda geliştirmiş ve büyük bir kitlenin kullanıldığı bir araç hale gelmiş.

Mercurial'ı öğrenmek için belgelerini okurken şunu gördüm; eğer bir araç gerçekten ne işe yaradığını bilerek, iyi kullanılıyorsa, aynı işi yapan başka bir araca çok az zamanda uyum sağlanıyor. 

Ubuntu 15.04 mercurial kurulumu için: 

    $sudo apt-get install mercurial meld

GİT(git)                       MERCURİAL(hg)

git pull hg pull -u
git fetch hg pull
git reset --hard hg update -C
git revert <commit> hg backout <cset>
git add <new_file> hg add <new_file>
git grep <search>hg grep <search>
git commit -a hg commit
git commit --amend hg commit --amend
git blame hg blame or hg annotate
git blame -C (closest equivalent): hg grep --all
git bisect hg bisect
git rebase --interactive hg histedit <base cset>
git stash hg shelve
git merge hg merge
git cherry-pick <commit> hg graft <cset>
git rebase <upstream> hg rebase -d <cset>
git checkout HEAD hg update
git log -n hg log --limit n
git push hg push


Ayrıntılı karşılaştırmaya buradan ulaşabilirsiniz.
Görüşmek üzere :)
 

16 Mart 2016

Posted In: git, gnu/linux, hg, mercurial, ubuntu

Bir ağaç gibi tek ve hür ve bir orman gibi kardeşçesine: Debian

Debian GNU/Linux dağıtımının kurucusu Ian Murdock 28 Aralık 2015’te, 42 yaşında aramızdan ayrıldı. Ölüm nedeni hakkında fazla bilgi sahibi değilim. Sadece San Francisco’da yaşayan Ian Murdock’un polis şiddetine maruz kaldığını ve sonrasında intihar ettiğini biliyorum (http://techaeris.com/2015/12/28/debian-founder-ian-murdocks-tweets-raising-eyebrows/). Ian Murdock bir Steve Jobs değildi. Ölümünün o kadar haber değeri yoktu. Okullarda onun için anma törenleri de düzenlenmedi (bkz. http://www.kartalgazetesi.com/15679-ahmet-simsek-koleji-teknoloji-kulubu-mr-steve-jobs%E2%80%99u-anma-toreni-duzenledi). GNU/Linux’u biraz duymuş olanlar içinse Ian Murdock sadece yüzlerce dağıtımdan biri olan Debian’ın kurucusuydu.

Bill Gates, Steve Jobs, Richard Stallman, Linus Torvalds, Larry Page, Sergey Brin, Mark Zuckerberg ve Ian Murdock. Her biri eylemleriyle bilişim teknolojilerine ayrı bir yön verdi. Bu isimlerden herhangi biri olmasaydı muhtemelen bilgisayar ve internet farklı bir yönde gelişim gösterecekti. Bill Gates, kapitalizmin genel eğilimine uygun bir biçimde yazılımı metalaştırmaya çalıştı. Metalaşma, Richard Stallman’ın çalıştığı laboratuvarın kapısını çaldığında ve alıştığı hayatı paramparça ettiğinde Richard Stallman metalaşmanın bir parçası olmayı değil, GNU projesini başlatarak mücadeleyi tercih etti. Linus Torvalds GNU yazılımlarını kullanarak bir işletim sistemi geliştirmeyi denerken büyük UNIX şirketlerine ya da Microsoft’a meydan okumak aklının ucundan bile geçmiyordu. Ama Linus Torvalds, Linux’u geliştirmemiş olsaydı sunucularında bundan faydalanan birçok şirket gibi Google da kurulamayacaktı. Peki Ian Murdock’ın ve kurucusu olduğu Debian’ın bilişim teknolojileri tarihindeki yeri ne?

Öncelikle Debian’ın herhangi bir GNU/Linux dağıtımı olmadığını belirtmem gerekiyor. Dağıtımlar, “GNU yazılımlarını ve diğer özgür yazılımları bir araya getiren ve tüm bunları bir Linux çekirdeği ile beraber toplu, derlenmiş ve kurulumu kolay bir işletim sistemi olarak kullanıcılara sunmayı amaçlamış olan yazılım birliktelikleri”dir (bkz. https://linux.org.tr/dagitimlar-kilavuzu/) . Dağıtımların bileşenleri aşağı yukarı aynıdır: Linux çekirdeği, masaüstü ortamı, kelime işlem programları, web tarayıcılar ve sistemi yönetmek için çeşitli yapılandırma ve güncelleme araçları. Dağıtımları farklılaştıran ise bazen hedef kitleleri bazen de öncelikleri dolayısıyla yaptıkları tercihler ve bu doğrultuda işletim sisteminde yaptıkları ek düzenlemelerdir. Örneğin, Mint (https://www.mint.com/) dağıtımında hedef kurulum ve kullanım kolaylığı olduğundan kullanıcının kafasını karıştırmamak için bazı kararlar kullanıcı yerine dağıtımı hazırlayanlarca alınmıştır. Böylece acemi bir kullanıcı bile işletim sistemini hızla kurup kullanmaya başlayacaktır. İleri düzey kullanıcıların gereksinimleri farklı olabilir; örneğin işletim sistemini kullandığı donanıma göre optimize etmek ve bilgisayarı en ince ayrıntısına kadar yapılandırmak istiyorsa Gentoo’yu (https://www.gentoo.org/) tercih edecektir. Kullanıcı düzeyinin yanı sıra farklı gereksinimler için özelleştirilmiş dağıtımlar da vardır: Güvenlik uygulamaları için Tails (https://tails.boum.org/), görme engelliler için Vinux (http://vinuxproject.org/), çoklu ortam uygulamaları için Ubuntu Studio (http://ubuntustudio.org/) gibi.

GNU/Linux dağıtımlarının listesinin yer aldığı DistroWatch (http://distrowatch.com/) sitesindeki sıralamaya göre ilk beş sırada Mint, Debian (https://www.debian.org/), Ubuntu (http://www.ubuntu.com/), openSUSE (https://www.opensuse.org/) ve Fedora (https://getfedora.org/) dağıtımları yer almaktadır. Debian’ın bazıları için olumlu olan özellikleri farklı gereksinimi olan kullanıcılar için bir engel olabilmekte, bu da Debian tabanlı yeni dağıtımların geliştirilmesine neden olmaktadır. Birçok popüler dağıtım gibi Mint ve Ubuntu da Debian’dan türemiş dağıtımlardır (bkz. https://upload.wikimedia.org/wikipedia/commons/6/69/DebianFamilyTree1210.svg). Ayrıca Pardus (https://www.pardus.org.tr) da 2013 yılında alınan bir kararla Debian tabanlı bir dağıtımlar kervanına katılmıştır.

Debian dört özelliğe ile diğer dağıtımlardan ayrılmaktadır. Birincisi, Debian depolarında 43000’den fazla yazılım paketi vardır. Çoğu GNU/Linux dağıtımında kullanıcılar, dağıtımın depolarından arama yaparlar ve buldukları yazılımı bilgisayarlarına kurarlar. Örneğin vlc adlı ortam oynatıcısını, pdf okuyucuyu, ses montaj programını ya da LibreOffice’i bilgisayarınıza indirip sorunsuz bir şekilde (!) kurmak en fazla bir iki dakikanızı alacaktır. İkincisi Debian, “Evrensel İşletim Sistemi” adına layık olarak çok sayıda bilgisayar mimarisini desteklemektedir (https://www.debian.org/ports/). Üçüncüsü, kullanıcı ve geliştirici sayısının fazla olmasıdır (https://wiki.debian.org/Statistics). GNU/Linux dağıtımlarında kullanıcı ve geliştirici sayısının fazla olması sorunlarınıza yanıt bulmanızı da hızlandırmaktadır. Yaşadığınız sorunun bir Debian, Ubuntu ya da Mint kullanıcısı tarafından forumlarda sorulmuş ve yanıtlanmış olması yüksek olasılıktır. Sonuncu ve diğerlerine temel olan özelliği ise etik değerlere ve yazılımın özgürlüğüne bağlılığıdır. Dolayısıyla Debian derken yalnızca bir işletim sisteminden söz etmiyoruz. Debian, aynı zamanda en iyi özgür işletim sistemini geliştirme hedefi olan bir proje ve çalışmalarında belirleyici olan etik değerleri olan bir topluluktur (Zacchiroli, 2011).

Kamuoyunda özgür yazılım, iyi yürekli insanların topluma armağanı olarak değerlendirilmektedir. Aynı iyimserlikte olmasa da bir çok akademik çalışmanın temel araştırma konusu, hackerların (veya özgür yazılım taraftarlarının) gönüllü çalışmaya katılırken nasıl bir motivasyona sahip olduklarıdır. Bu konuda özellikle iki çalışmaya referans yapılmaktadır: Steven Levy’nin Hackerlar’ı ve Pekka Himanen’in Hacker Etiği. Levy’nin hacker etiği kapsamında anlattıkları bugün copyleft ile yasalaşmıştır. O yıllarda yazılımı paylaşmak etik bir yükümlülükken paylaşım günümüzde GPL ile (Genel Kamu Lisansı) yasal bir biçime kavuşmuştur. Ama bu dönüşüm kendiliğinden olmamıştır. Bir zamanlar laboratuvarlarda yaşayan bu kültür, internette nasıl gelişip serpilmiştir? Himanen’in yaklaşımında ise temel sorun, belirli bir iş etiğine sahip hackerlardan yola çıkıyor olmasıdır. Oysa bu iş etiği hackerların pratiğinde tekrar tekrar yeniden üretilmektedir. Hackerlar değiştirirken, değişmektedir. Bu nedenle, özgür yazılım projelerindeki pratikleri diyalektik bir süreç olarak değerlendirmek, pratiğin bireylerde yarattığı değişimi göz ardı etmemek gerekir.

Yazının devamında, Debian’ın gelişiminin tarihsel uğraklarını, ortak değer ve düşüncelere sahip Debian topluluğunun kendini yeniden üretim süreçlerini tartışacağım. Kurucuları her ne kadar belirli ilke ve değerler doğrultusunda Debian’ın temellerini atmış olsa da etik değerlere ve yazılımın özgürlüğüne bağlılık süreç içinde gelişmiş, netleşmiş ve yayılmıştır.

Debian’ın Doğuşu

Çok sayıda GNU/Linux dağıtımı vardır. Ama Ian Murdock’ı, diğer dağıtımların kurucularından farklı yapan çok kritik bir geçiş sürecinde özgür yazılıma yaptığı katkıdır. Richard Stallman GNU Projesini 1983’te duyurmuş, Linus Torvalds’ın 1991 yılında Linux çekirdeğini geliştirmesiyle bilgisayar kullanıcıları özgür bir işletim sistemine kavuşmuştur. Linus Torvalds, Linux’u geliştirirken GNU araçlarından faydalanmış olmasına rağmen GNU ve Linux projeleri arasında kültürel farklılıklar vardır. Debian, GNU ve Linux kültürlerinin bir sentezini oluşturmuş, özgür yazılımı daha ileriye götürmüştür.

1973 yılında Batı Almanya’da doğan Ian Murdock GNU/Linux’la 1993 yılında üniversite öğrencisiyken tanışır. O zamanlar sadece birkaç GNU/Linux dağıtımı vardır. Ian Murdock da SLS (Softlanding Linux System) adlı dağıtımı kullanmaktadır. SLS teknik olarak sorunludur; dağıtımda çok sayıda bug vardır. İlk başta bu sorunları çözmeyi dener ama sonra sıfırdan dağıtım hazırlamanın daha kolay olacağına karar verir. Murdock’a göre SLS’nin başındaki kişi her şeyi tek başına yapmaya çalıştığından iş yükünün altında ezilmektedir. Linus Torvalds’ın Linux’ta uyguladığı yazılım geliştirme yönteminin dağıtım geliştirmek için de uygulanabileceğini düşünür. Buradaki temel sorun, fiziksel olarak bir araya gelip aynı anda çalışması neredeyse imkansız olan geliştiricilerin bir dağıtımı nasıl hazırlayacağıdır. Çünkü o güne kadar kullanıcılar GNU/Linux’u disketlerdeki kurulum dosyalarından kurmaktadırlar (bugün Windows’u DVD’den kurar gibi…). Ian Murdock bu monolitik yapıyı GNU/Linux’u paketlere ayırarak ve paketlerin sorumluluğunu geliştiricilere vererek aşar. Her geliştirici, sorumlu olduğu yazılım paketini (ya da paketlerini) dağıtımın bütününe uygun hale getirecektir. Yeni dağıtım disketlerden değil, paketlerden oluşacaktır. İnsanlar, dağıtımda olmasını istedikleri yazılımlar için belirli standartları takip ederek yazılım paketleri hazırlayacaklardır. Kısacası, Debian, standartlara uyulduğu taktirde herkesin yetenekleri doğrultusunda katkıda bulunabileceği bir platformdur.

Yeni dağıtımın adı ise Ian Murdock’ın kız arkadaşının (daha sonra eşi olacaktır) ve kendi isminin bileşiminden oluşmaktadır: DEBra Lynn + Ian Murdock. Debian GNU/Linux’un ticari işletim sistemleri ile rekabet eden, kolay kurulan ve yazılım uzmanları ile ortaklaşa üretilen bir dağıtım olması hedeflenmektedir.

Bu tasarımsal karar, Unix’in aristokratik kültüründen bir kopuş anlamına gelmektedir. Geçmişte geliştirilen bir yazılımı Unix’e eklemek için, Berkeley’deki ekibe iletmek, onların uygun görüp görmeyeceğini beklemek gerekirdi. Linux’la başlayıp, Debian’la gelişen kültür ise bireyleri üretmeye ve kendilerini geliştirmeye teşvik etmektedir. Geliştiriciler Debian’a belirli bir motivasyonla yaklaşmaktadır. Ama diyalektik bir süreç söz konusudur. Coleman’a göre (2013) özgür yazılım projelerindeki ve özellikle Debian’daki yazılım geliştirme pratikleri, ritüeller ve örgütsel süreçler geliştiricilerde etik değişim yaratmaktadır. Coleman (2013) bu değişimi üç farklı sürecin bileşimi olarak değerlendirmektedir: Proje kültürünün içselleştirilmesi, fikri mülkiyet hakları kapsamındaki yasal karşılaştırmalar ve karşıtlıklar, kriz anları. Yazının devamında bunun örneklerini göreceğiz.

Debian Sosyal Sözleşmesi ve Debian Özgür Yazılım Yönergeleri

Debian’ın ilk günlerinde projeye katkıda bulunanların sayısı 20 civarındadır. Ortak değerleri özgür yazılımdır. Ian Murdock’ın 1996 yılında yazdığı Debian Manifestosu, topluluğun özgür yazılım felsefesine bağlılığını ve hedeflerini bildirmektedir (https://www.debian.org/doc/manuals/project-history/ap-manifesto.en.html).

1996 yılında Ian Murdock Debian’ın proje liderliğini özgür yazılım hareketinin tanınmış isimlerinden Bruce Perens’a devreder. Debian geliştiricilerinin sayısı 120’ye ulaşmış ve metalaşma sürecinin baskısı hissedilmeye başlamıştır. Bu atmosferde bir çok geliştirici, Debian Manifestosu’nun artık yetersiz kaldığını, Debian’ın özgür yazılım tartışmasındaki konumunu netleştirmesi gerektiğini düşünmektedir. Az sayıda geliştirici de diğer dağıtımlarla rekabet edebilmek için ısrarla Debian’ın özgür olmayan yazılımları da dağıtıma dahil etmesi gerektiğini savunmaktadır.

Özgür yazılım konusunda en uzlaşmaz isimlerin başında gelen Richard Stallman da dahil olmak üzere kimsenin özgür yazılım iş modellerine itirazı yoktur. Ama geliştiriciler arasında ticari dağıtımlara karşı tereddütler vardır. Bir konferansta Ean Schuessler, ticari bir dağıtım olan Red Hat’in kurucusu Bob Young’a, Red Hat’ın özgür yazılım ideallerine her zaman bağlı kalacağını beyan eden bir sosyal sözleşme hazırlamasını önerir. Young bunun Red Hat gibi kar etmeyi hedefleyen bir şirket için ölüm öpücüğü olacağını söyler ve reddeder.

Ean Schuessler ve bazı Debian geliştiricileri bu öneriyi daha sonra Debian’a sunar. Bu sözleşme, Debian topluluğunun özgür yazılım tartışmasındaki konumunu belirlemek için önemli fırsattır. Bruce Perens bir belge taslağı hazırlar ve Temmuz 1997’de bir ay süren e-posta konferansı sonucunda Özgür Yazılım Topluğu ile “Sosyal Sözleşme” ve Debian Özgür Yazılım Yönergeleri başlıklı iki belge yayımlanır (https://www.debian.org/social_contract.tr.html). Bu belgeler, Debian’ın resmi hareket tarzını belirtmektedir. Belgelerde, şeffaflık, açıklık, izlenebilirlik, ayrımcılık gözetmeme konuları üzerinde durulmuştur.

Sosyal Sözleşme’de aşağıdaki taahhütlerde bulunulur:

  • Debian %100 özgür kalacaktır
  • Ürettiklerimizi yine özgür yazılım topluluğuyla paylaşacağız
  • Sorunları gizlemeyeceğiz
  • Önceliklerimiz, kullanıcılarımız ve özgür yazılımdır

Burada “%100 özgür”lük ifadesi, Debian’da özgür olmayan yazılımların yer almayacağını değil, “Sistemi hiçbir zaman özgür olmayan bir bileşene gereksinim duyar hale” getirmeyeceklerini taahhüt etmektedir. Nitekim sözleşmenin sonunda da “özgür olmayan çalışmalar Debian sisteminin bir parçası olmamasına rağmen” bu yazılımların Debian üzerinde kullanımlarına olanak sağlanacağı belirtilmektedir.

Debian Özgür Yazılım Yönergeleri’nde ise erişim, kullanım, değiştirme ve dağıtım bağlamında hangi yazılımların özgür yazılım olarak değerlendirileceği yer almaktadır. Fikri mülkiyet tartışmaları, Debian topluluğun oluşumunda son derece önemli bir konudur. Debian geliştiricileri, yazılım lisanları tartışmalarına aktif olarak katılmakta, bilgi paylaşımı yapmaktadırlar. Birçok geliştirici fikri mülkiyet hakkı kanunlarını eleştirel olarak takip etmekte ve bu konulardaki yasal düzenlemelere katkıda bulunmaktadır. Bazı geliştiriciler için yasal mevzular sıkıcı konular olmasına karşın teknolojik üretime katılabilmek için yasal konularda bilgi sahibi olmaları gerekmektedir. Örneğin, hangi yazılımın Debian’a katılabilir, hangisinin katılamaz olduğuna karar verebilmek için en azından Debian Özgür Yazılım Yönergeleri’nde yazılanları anlamak zorundadırlar.

Bu hukuksal mücadele, Coleman’ın da (2013) vurguladığı gibi topluluk kültürünün oluşumunda ve geliştiricilerdeki etik dönüşümde etkili bir faktördür. Ayrıca Özgür Yazılım Vakfı (Free Software Foundation – FSF) ile Debian arasındaki tartışmalar ve anlaşmazlıklar, fikir ayrılıklarına rağmen geliştiricilerin fikri mülkiyet hakları konusundaki bilinç düzeyini yükseltmektedir.

Bu belgelerle, hem topluluk için hem de dışarıdan katılanlar için projenin hedefleri netleştirilmiştir. Bu iki belgeyi hazırlayan Bruce Perense ironik bir şekilde Debian için bir başka önemli belge olan Debian Anayasası’nın ortaya çıkmasına (https://www.debian.org/devel/constitution) da vesile olur.

Debian Anayasası

Debian 1993-1996 yılları arasında, birçok özgür yazılım projesinde olduğu gibi, projenin kurucusu tarafından yönetilmiştir. Debian’ın paketlerden oluşan modüler yapısı geliştiricilere inisiyatif vermekte, daha demokratik bir çalışma ortam sunmaktadır. Ian Murdock, gelen önerileri dinlemekte, ama son kararı yine kendisi vermektedir. Geliştiriciler arasında bir güven ilişkisi oluştuğu ve doğru teknik kararlar verildiği sürece tek kişinin yönetimi özgür yazılım projelerinde sorun yaratmaz. Ama proje büyüdükçe, alınması gereken kararlar arttıkça ve karmaşıklaştıkça proje liderinin yönetim biçimi nedeniyle sorunlar ortaya çıkabilmektedir. Ian Murdock, 1996’da Debian liderliği projenin aktif geliştiricilerinden Bruce Perens’a devrettiğinde proje liderinin görev ve sorumlulukları, yetkilerinin sınırları henüz belirsizdir. İnsanlar bir süre sonra yaşadıkları gibi düşünmeye başlarlar; önceki bölümde belirtilen belgelerde yer alan şeffaflık, açıklık, izlenebilirlik, ayrımcılık gözetmeme kaygıları yalnızca koddan değil, proje yönetiminden de beklenmektedir. Fakat Bruce Perens’in proje liderliğini daha geniş anlamda algılaması, kendini Debian’ın başkanı olarak görmesi ve geliştiricilerin işlerine müdahale etmesi topluluk içinde sorunlara neden olur. Bazı kararların tartışılmadan alınması rahatsızlık yaratır ve liderin otoritesi sorgulanmaya başlar. Bruce Perens diktatörlükle suçlanmaktadır. Bruce Perens, her kararı kendisinin almak zorunda kalmasından hoşnut olmadığını yazar ve topluluğun bir yönetim kurulu seçmesini önerir (Mahony ve Ferraro, 2007).

Projelerin, bir yönetim kurulu ya da vakıf tarafından yürütülmesi özgür yazılım dünyasındaki pratiklerden biridir. Fakat seçimin ve kişi yerine bir kurulun yönetiminin tam bir çözüm olamayacağı düşünülmektedir. Bunun yerine, görev ve yetkileri Debian Anayasası ile belirlenen bir yönetim biçimi ortaya çıkar. Debian Anayasası’yla proje liderinin, teknik komitenin, proje sekreterinin ve proje liderinin atayacağı delegelerin görev ve yetkilerinin sınırları belirtilir, bireysel geliştiricilerin haklarının altı çizilir. Anayasada proje liderinin dikkat etmesi gereken konular da yazılmıştır:

  • Kararlarının geliştiricilerin görüşüyle oluşan oydaşmayla (konsensüs) olması
  • Pratikse, gayrı resmi olarak geliştiricilerin düşüncelerini alması,
  • Lider sıfatıyla alacağı kararlarda kendi görüşlerini aşırı vurgulamaktan kaçınması

Lider, teknik konulara karar veren değil, geliştiricilerin bu kararları almasını kolaylaştıran kişidir.

Anayasada, genel kararların nasıl alınacağı, seçimlerin nasıl yapılacağı ve oyların nasıl sayılacağı belirtilmektedir. Anayasanın ilk sürümlerinden itibaren oylamalarda basit çoğunluk yerine tercihlere dayanan bir sistem kullanılmaktadır. 2003 yılında ise daha ileri bir yöntem olan Schulze yöntemi kullanılmaya başlanır. Schulze yöntemi, Debian’ın yanı sıra çok sayıda özgür yazılım kuruluşu ve özellikle de Korsan Partileri tarafından kullanılmaktadır.

Örneğin, A, B, C, D, E adlarında 5 adayımız ve 45 seçmenimiz var. Seçmenlerden bir tercih sıralama yapması istenmiş (1.C 2.A 3.B 4.E 5.D gibi) ve aşağıdaki tablo oluşmuş olsun:

Schulze1

Schulze1

Klasik bir seçim olsa, C’nin seçimi kazanması büyük olasılıktır. Fakat C’yi hiç istemeyen de çok fazladır. Schulze yöntemine göre en çok oy alan değil, en çok tercih edilen seçimi kazanacaktır. Yöntemi uygularken önce adaylar arasındaki tercihler belirlenir. A’yı B’ye tercih edenlerin sayısı 5+5+3+7=20, B’yi A’ya tercih edenlerin sayısı 8+2+7+8=25’dir. Bunu diğer adaylar için de yaptığımızda aşağıdaki matris oluşur:

 

A B C D E
A 20 26 30 22
B 25 16 33 18
C 19 29 17 24
D 15 12 28 14
E 23 27 21 31

B’yi A’ya tercih edenler daha fazla olduğu için BA alanını daha koyu yaparız ve aşağıdaki çizgeyi (graph) oluştururuz:

Schulze2

Daha sonraki adımda adayların dolaylı karşılaştırması yapılır. Buna göre, AC arasındaki doğrudan yolun değeri 26’dır. Dolaylı yolda (AD – DC) ise zincirin en zayıf halkasını alırız ve A’yı C’ye tercih edenlerin sayısını 28 olarak güncelleriz. Bunu diğer adaylar arasında da tekrar ettiğimizde aşağıdaki tablo oluşur:

 

 

A B C D E
A 28 28 30 24
B 25 28 33 24
C 25 29 29 24
D 25 28 28 24
E 25 28 28 31

Buna göre seçim sonucu, E A C B D olur (Ayrıntılı bilgi için bkz. https://en.wikipedia.org/wiki/Schulze_method).

Debian Anayasası’nda yer alan bu seçim yöntemi, klasik çoğunluğa göre daha başarılı olmasına karşın seçim Debian topluluğunda çok fazla tercih edilen bir yöntem değildir. Herhangi bir konuda karar alınması gerektiğinde ise duruma göre üç farklı yöntemden biri uygulanmaktadır: Demokratik çoğulculuk, meritokrasi ve tartışmalar sonucu oydaşma sağlamak.

Coleman (2013) Debian içi birçok krizin, bu üç yöntem arasındaki gerilimden kaynaklandığını yazmaktadır. Demokratik çoğulculuk, proje liderinin seçimi ve Debian’ın bütününü ilgilendiren kararların alınması için kullanılmaktadır. Her geliştirici eşittir. Ama teknik konularda oylamaya başvurmanın verimsiz ve uygun olmayan bir yöntem olduğu düşünülmektedir. Birçok özgür yazılım projesinde meritokrasi yani yönetim gücününün kişinin bilgi ve yeteneklerine dayandığı yönetim biçimi tercih edilmektedir. Debian’ın ilk günlerinde egemen olan yaklaşım meritokrasidir. Fakat teknik beceriye önem veren topluluklarda, görünürde herkesin eşit oy hakkı olmasına rağmen bilgi, beceri ve adanmışlık özellikleri nedeniyle bazı üyeler sivrilebilmekte, topluluk içinde hiyerarşik bir yapı oluşmakta ve diğer üyeler ustalar karşısında sessizliğe bürünmektedir. Ustalar karşısındaki sessizlik zamanla ustaların yozlaşmasına neden olabilmektedir. IRC kanallarında, e-posta listelerinde ve bug raporlarındaki tartışmalar neticesinde oydaşma sağlanması ise daha çok tercih edilen bir yöntem olmasına karşın sonuç alınması daha zor olabilmektedir. Projede şeffaflık, temel teknik kararlar, özgürlüğün anlamı ve kapsamı, sıradan geliştiricilerle yetkili geliştiriciler arasındaki ilişkiler konusunda zaman zaman tartışmalar yaşanmaktadır. Geliştiriciler ortak etik ilkelere sahiptir. Ama bu ilkelerin uygulanmasında fikir ayrılıkları çıkabilmektedir. Her zaman bir sonuca varılamasa da bu tartışma süreçleri, insanların düşüncelerini yeniden gözden geçirmesine yardımcı olmakta, böylece kişisel ve örgütsel gelişime katkı sağlamaktadır (age).

Tekrar Debian Anayasası’na dönersek… Örgüt içi demokrasi krizi projedeki görev ve sorumlulukların belirlenmesiyle aşılmıştır. Kriz ve çözüm süreçleri Coleman’ın (2013) vurguladığı gibi Debian’ın oluşumunda belirleyicidir. Krizler, kimi zaman oldukça sert ve acımasız tartışmalara neden olmasına rağmen Debian’ın gelişimi için verimli bir ortam sunmakta, örgütsel yenilenmeyi sağlamaktadır.

Bu kriz, henüz yeni atlatılmışken 1998-1999 yılları arasında Debian bir başka büyük krizle karşı karşıya kalır. Projeye katılımlar hızla artmaktadır. Eski geliştiriciler, yeni gelenlerin yetersizliğinden şikayetçidir. Sorun sadece teknik yetersizlikler de değildir. Özgür yazılım felsefesini içselleştirememiş yeni geliştiriciler projenin hedeflerine aykırı katkılarda bulunabilmektedir. Debian hesaplarından sorumlu görevli, projeye yeni katılımları durdurmak zorunda kalır.

Yeni Geliştirici Süreci

Debian’ın dördüncü lideri olan Wichert Akkerman 17 Ekim 1999 tarihinde Debian listesine attığı e-postada yeni geliştiriciler için bir katılım süreci taslağı sunmaktadır. Oldukça ayrıntılı olan YGS’de (Yeni Geliştirici Süreci), geliştirici adayının aşağıdaki şartları yerine getirmesi beklenmektedir (https://lists.debian.org/debian-project/1999/10/msg00003.html):

  • Özgür yazılım hakkında güçlü bir görüşe sahip olmalıdır.
  • Özgür yazılım hakkında güçlü bir görüşe sahip olmalıdır.
  • Uzun mesafeli telefon görüşmeleri yapmaya uygun ve istekli olmalıdır.
  • Ne yaptığını biliyor olmalıdır
  • Ona, herhangi bir aktif geliştiriciden daha fazla güven duyulmalıdır.
  • Yeni geliştiricinin, makinelerde boş hesaplar oluşturmaktan daha öte bir şey olduğunu bilmelidir.

YGS, topluluğa katılmak isteyen kullanıcı için teknik yeterlilik ve etik eğitimidir. Teknik işlerin nasıl işlediğini öğrenmek kadar etik konuların öğrenilmesi de önemli olmaktadır. Böylece yeni üyelerin topluluğa entegrasyonu, belirli davranış kodlarını ve prosedürlerini öğrenmesi ve bir güven ilişkisinin oluşması kolaylaşacaktır.

İlk madde yanlışlıkla değil, özellikle tekrarlanmıştır. Yeni geliştiricinin, herhangi bir dağıtım değil, özgür yazılımlardan oluşan bir dağıtım oluşturmak için Debian’da olduğunu bilmesi gerekmektedir.

YGS’nin birinci aşamasında, geliştirici olmak isteyen kişinin Debian’a olan ilgisini ve bulunacağı katkıyı anlatan bir başvuru yapması gerekmektedir. Başvurular Debian’daki Yeni Geliştirici Komitesi’ne gelecek ve başvuru sırasına göre Komite ya da komite yardımcılarından biri tarafından değerlendirilecektir.

İkinci aşamada, başvuran kişinin kimliği saptanacaktır. Bu aşamada Komite farklı kimlik saptama seçeneklerine başvurabilir. Örneğin pgp ya da gpg anahtarının kayıtlı bir Debian geliştiricisi tarafından imzalanmış olması kimlik tespitinde kullanılabilir. Ayrıca bu aşamada geliştirici adayıyla telefonla iletişime geçilmektedir.

Üçüncü aşamada bir Debian geliştiricisinin danışmanlığında staj başlar. Eski geliştiricilerden biri Debian’a yeniden katılmak istediğinde bu aşama atlanabilir. Geliştirici adayına kendini ispatlaması için fırsat verilecek ve danışman, adayın gelişimini takip edecektir. Danışman bu aşamada adayın yalnızca teknik bilgisini (“paketlerin hazırlanması”) takip etmekle kalmayacak, Debian Anayasası, Debian Özgür Yazılım Yönergeleri ve uygulamaları hakkındaki bilgisini de takip edecektir.

Son aşamada ise artık kullanıcının kimliği doğrulanmış, geliştirici adayı bir Debian geliştiricisi olmanın anlamını kavramıştır. Danışmanın raporu doğrultusunda YGS tamamlanır.

YGS bir test değil, süreçtir. Aday bu süreçte topluluğun değerlerini öğrenmekte, yasal konuları irdelemektedir. Örneğin adaylardan, özgür yazılımla tanışmalarını anlatmaları istenmekte, adaya özgür yazılım felsefesi ve Debian belgeleri hakkında sorular sorulmakta, buradaki ilkeleri kendi sözleriyle ifade etmesi istenmektedir. Adayın yasal konulardaki eğitim sürecinde adaya lisanslara ilgili çeşitli sorular yöneltilmektedir: “mpg123 Debian Özgür Yazılım Genelgesi’ne göre neden özgür bir yazılım değildir?” gibi. Çünkü Debian’a geliştirici olarak kabul edildiğinde bu sorular, sorun olarak karşısına çıkacaktır (Coleman, 2013).

Kısacası YGS’nin üç anlamı vardır: Kişinin kimliğinin tespiti, törensel bir giriş ritüeli ve Debian içindeki kuralların ve teknik konuların öğrenilmesi (YGS’nin güncel sürümü için bkz. https://www.debian.org/devel/join/newmaint).

***

Dışarıdan baktığımızda sadece özgür yazılım geliştiren insanları ve ürünlerini görürüz. Coleman’ın (2013) ayrıntılı biçimde tartıştığı gibi özgür yazılım geliştirme süreci bu sürecin içinde yer alanları da değiştirmektedir. Özellikle Debian gibi, insan ne yaptığının bilincinde olarak eylemde bulunuyorsa bu değişim süreci daha belirgin olmaktadır. Düşünmeden, sadece yazılım geliştiriyorsa bu değişim hem sınırlı olacak hem de krizleri aşmakta sıkıntı yaşayacaklardır.

İşletim sistemini paketlerden oluşacak bir bütün olarak tasarlama kararıyla insanlar “bir ağaç gibi tek ve hür” çalışmaya başlamış; krizler ve buna yönelik çözümleriyle “bir orman gibi kardeşçe” çalışmanın yollarını yaratmışlardır.

Rahat uyu Ian Murdock…

Kaynaklar

Coleman, E. G. (2013). Coding freedom: The ethics and aesthetics of hacking. Princeton University Press.

O’Mahony, S., & Ferraro, F. (2007). The emergence of governance in an open source community. Academy of Management Journal, 50(5), 1079-1106.

Zacchiroli, S. (2011, July). Debian: 18 years of free software, do-ocracy, and democracy. In Proceedings of the 2011 Workshop on Open Source and Design of Communication; New York, NY, USA: ACM (pp. 87-87).

 

 

27 Şubat 2016

Posted In: Debian, Emek, gnu/linux, Ian Murdock, Örgütlenme, Özgür yazılım, Teknoloji Tarihi

Amazon Kindle Fire (5th) Nasıl Rootlanır? (Linux)

Kindle Fire, Amazon'un ürettiği, donanım fiyatını oldukça ucuz tutarak yapılmış ama müşterinin beklediğini de veren bir tablet bence :) Özelliklerine bakmak isteyenleri ve satın almak isteyenleri sayfaya yönlendirmiş olayım.

Root işlemine başlamadan önce bu linkten "root_fire_5thGen_2015.zip" dosyasını indirmeli ve sıkıştırılmış halinden çıkartmalıyız.

Tabletten Settings>Devices Options diyip, Serial Number kısmına birkaç kez tıklayarak Developer Options kısmını görünür hale getirmeliyiz.

Developer Options da Enable ADB seçeneğinin aktif olduğundan emin olmalıyız. 


Gerekli paketler: sudo apt-get install android-tools-adb android-tools-fastboot

Tableti bilgisayara bağladıktan sonra "$adb devices" komutunu verdiğimizde aygıt görünüyor olmalı:


İndirdiğimiz dosyada bize gereken sadece sh betiği olan fire_root.sh dosyası.

"$sh fire_root.sh" dediğimizde hızlıca rootlama işlemi başlıyor. Tablet yeniden başladığında "SuperSU" görünüyor olmalı :)


Google Play uygulamasını eklerken:

Buradan uygulama dosyasını indirmeliyiz ve sıkıştırılmış halinden çıkartmalıyız.

"$cd Amazon-Fire-5th-Gen-Install-Play-Store" diyerek dizin içine girip aşağıdaki komutları vermeliyiz:

$adb install com.google.android.gms-6.6.03_\(1681564-036\)-6603036-minAPI9.apk

$adb install GoogleLoginService.apk

$adb install GoogleServicesFramework.apk

$adb shell pm grant com.google.android.gms android.permission.INTERACT_ACROSS_USERS

$ adb install com.android.vending-5.9.12-80391200-minAPI9.apk

$ adb shell pm hide com.amazon.kindle.kso

$ adb kill-server


Bu işlemler sonunda Google Play tablette kullanılabiliyor olmalı.

Wiki sayfası da burada.
Cynogenmod için buraya bakabilirsiniz.
Kolay gelsin :)

10 Kasım 2015

Posted In: amazon, fire, Gezegen, gnu/linux, kindle, root, ubuntu

Libreoffice Derlemek ve Gerrit İle Yama Göndermek

Libreoffice'in ne olduğunu bilmeyen de yoktur ama yine de kısaca bahsetmiş olayım. Libreoffice bir masaüstü ofis paketidir. Uzun da bir geçmişe sahip. Staroffice adı altında başlayıp, daha sonra Openoffice olarak geliştirilmiş ve en son Libreoffice adıyla hala geliştirilmeye devam ediyor. Bunun güzel bir yanı da uğraştığımız birşey hakkında rahatça belge bulabilmek oluyor.

Gelelim derleme işlemine. Bekleme kısmını saymazsak çok da zor bir yanı yok. Büyük bir proje olduğu için birazcık sabırla beklemek gerekiyor. Ben Ubuntu 15.04 kullandığımdan izlediğim adımları yazacağım. Tüm Linux türevleri için de sayfa oldukça güzel anlatmış.

Bağımlı paketleri kuralım:

$ sudo apt-get build-dep libreoffice

Depoyu yerelimize alalım ve proje dizinine geçelim:

$ git clone git://anongit.freedesktop.org/libreoffice/core libreoffice
$ cd libreoffice

Make işleminden önce betik dosyasının hatasız çalıştığını görmeliyiz:

$ ./autogen.sh

Daha sonra uzunca bekleyeceğimiz make komutunu çalıştıralım:

$ make -j[çekirdek sayisi]

Derlemeden sonra writer'ı çalıştırıp Libreoffice5'in çalıştığından emin olalım:

$ instdir/program/soffice --writer

Bir de derleme yaparken karşılaştığım bir hata:
(libkrb5-dev paketini kurduğumda düzelmişti)

configure: error: could not find function 'krb5_sendauth' required for Kerberos 5

Yazarın notu :D
Geliştirme yapmak işteyenler için KDevelop aracı öneriliyor. Bunun için modüllerin kdevelop ile açılabilir olması gerekiyor.
"make kdevelop-ide-integration" komutu ile modüller Kdevelop ile açılabilir hale geliyor.

Yama Yollarken:

Gerrit kod işbirliği aracı olarak kullanılıyor. İlk kez yama yollayanlar için önce buraya kendinizi eklemeniz gerekiyor. Eklerken Lisans kısmı için libreoffice@lists.freedesktop.org a bir mail atmanız gerekiyor.
mail başlığı:
<your name> license statement

içeriği:
"
 All of my past & future contributions to LibreOffice may be
licensed under the MPLv2/LGPLv3+ dual license.

Gerrit kullanmak için adımlar:

$ ./logerrit setup komutunu çalıştırdıktan sonra oluşan "/home/[username]/.ssh/id_rsa.pub" içerigini gerrit üyeliğimizde ayarlar sekmesinden ssh kısmına eklemeliyiz.
 
$ ./logerrit test komutu sorunsuz çalışıyorsa gerrit aracını kullanabiliriz. 

Daha sonra yeni bir dal oluşturup değişiklik yaptığımız dosyaları ekleyip commit yapacağız.

$ git checkout -b <yeni dal adı>

$ git add dosya (tüm değişiklik yapılan dosyalar için 'git add .')

$ git commit (burada commit mesajı ile bug numarasını ilişkilendirmeliyiz. bunu da commit mesajına "tdf#<bug _id>" ekleyerek yapıyoruz )

Son olarak gerrit'e bu commiti yollayacağız:

$ ./logerrit submit master

Gerrit sayfasından da commitinizi görebilirsiniz :)

Kolay gelsin.

30 Eylül 2015

Posted In: compile, derleme, gerrit, Gezegen, git, gnu/linux, libreoffice, patch

WP Twitter Auto Publish Powered By : XYZScripts.com