Cuma, 15 Temmuz 2011

CodeIgniter Lisansının Kullanımı

 

Bir süre önce burada bir soru üzerine başlayıp, devam eden kullanım lisansı tartışmasını yeni bir yazı altında toplamak istedim.

CodeIgniter dağıtımı içinde bulunan license.html dokümanının Türkçe çevirisinden yola çıkalım. Aşağıda bulunan Lisans anlaşmasının çevirisi tarafımdan yapılmış olmasına rağmen, üzerinde tartışarak doğru ve anlaşılır hale getirilmesinde yapılacak düzeltmelere açıktır.

CodeIgniter Kullanım Anlaşması

Bu lisans, CodeIgniter yazılımının ("Yazılım" olarak anılacaktır) kullanımı için EllisLab Inc. ile sizin aranızdaki kanuni sözleşmedir. Yazılımın kullanılması durumunda lisans şartlarının ve koşullarının uygulanmasını kabul edersiniz.

Kullanım İzinleri

Yazılımı ve dokümanlarını aşağıdaki koşulları sağladığınız sürece, değişilik yaparak ya da yapmadan herhangi bir amaç için, kullanabilir, kopyalayabilir, değiştirebilir ve dağıtım yapabilirsiniz.

  1. Dağıtımınızda lisnas sözleşmesinin (lincese aggrement) bir kopyasının bulunması gereklidir.
  2. Kaynak kodlarının yeniden dağıtılması durumunda, yukarıdaki telif hakkı bildiriminin (copyright notice) tüm kaynak kodlarında kalması gereklidir.
  3. Kaynak kodlarının binary formda yeniden dağıtılması durumunda, yukarıdaki telif hakkı bildiriminin (copyright notice) dokümanlarla ve/veya diğer materyallerle dağıtıma dahil edilmesi gereklidir.
  4. Değiştirilmiş her dosya, değişimin niteliği ve değişimin kim tarafından yapıldığı bilgisine sahip olmalıdır.
  5. Yazılımdan geliştirilmiş ürünlerde, ürünün CodeIgniter'dan türediği bilgisinin dokümanlarla ve/veya diğer materyallerle dağıtıma dahil edilmesi gereklidir.
  6. Önceden EllisLab, Inc.'nin yazılı izini alınmadan, bu yazılımdan türetilen ürünlerde CodeIgniter adı ne ürün adında geçebilir, ne de ürüne isim olarak kullanılabilir.

(Tazminat, Garanti Reddi ve Yükümlülük Sınırlamaları kısımları bu yazının birinci derecen konusu olmaması nedeniyle çeviriye dahil etmedim.)

Yukarıdaki metni okuduğumuzda, daha önce sorulan bir çok sorunun cevabını aldığımızı görebiliriz. Örneğin :

Soru : Örnegin kodları şifrelemem lisans için bir problem cıkartır mı?

Cevap : Madde 1 ve 3'te kodların binary dağıtılması durumunda, lisans sözleşmesinin ve telif hakkı bildiriminin (copyright notice) dokümanlarla ve/veya diğer materyallerle dağıtıma dahil edilmesi gereklidir denilmektedir. Bu nedenle, kodların telif hakkı bildirimi dağıtımda korunduğu sürece, kodların şifrelenmesinde sorun çıkmaması gerekir.

Soru : CI'in kodlarını alsam içini değiştirsem kendime has bir hale getirsem. Bazı özelliklerini silsem, başka şeyler eklesem sonra kendi sistemimi yazsam ve şifreleyip kullansam bir sorun olur mu?

Cevap : Madde 1, 3, 4, 5 ve 6 ortak olarak değerlendirilirse, lisans sözleşmesinin ve telif hakkı bildiriminin dağıtımda yer alması, değişikliklerin nevi ve kimin yaptığı bilgisinin kodlarda bulunması ve isim hakkı için Ellis Lab.Inc'den yazılı izin alması ve yeni ürünün adında CodeIgniter kelimesi geçmememesi (ya da geçmesi için Ellis Lab. Inc'den yazılı izin alınması) kaydı ile bir sorun olmaması gerekir.

Bu yazıda anlatılan CodeIgniter lisans kullanımı hakkındaki görüş, öneri ve sorularınızı iletmekten çekinmeyiniz.

Düzeltme : 02 Ağustos 2011 tarihli yoruma göre Madde 6'nın çevirisi değiştirilmiştir.

Yorumlar

Sevgili Fatih,

Çok önemli bir eksiği gidermişsin.

Yazılım lisansları konusu, anadili ingilice olan kişilerin dahi mutabakata varamadıkları noktalar içeren ve mahkemelerde davalarla test edilmeyen bazı konularda muallakta olan bir konu. Bu nedenle soruları cevaplarken "... sorun olmaması gerekir." şeklinde kesin olmayan bir ifade ile bitirmen çok yerinde olmuş.

Çevirin çok başarılı olmuş fakat çok can alıcı bir noktada düzeltme yapmak istiyorum. Kullanım İzinleri bölümünün 6. maddesi, senin yazdığının tam tersi bir anlam ifade ediyor. Gerçi orjinalini resmen bulmaca ya da tekerleme gibi yazmışlar. Bırak çeviri yapmayı, anlamak için bile uğraşmak gerekiyor.

Doğru çeviri şu şekilde yazılabilir;
"Ellislab Inc. 'in yazılı olmaksızın, bu yazılımdan üretilen ürünlerin isimleri Codeigniter olmayabilir ya da isimlerinde Codeigniter geçmeyebilir."

Yani mealen diyor ki;
Bu yazılımı kullanarak üretilen ürünlerin isimleri Codeigniter olmak zorunda değil. Ayrıca isimlerinin herhangi bir yerinde Codeigniter geçmek zorunda da değil. Bunun için Ellislab Inc. 'ın yazılı izninin alınmasına gerek yoktur. Yazılımınızı istediğiniz gibi isimlendirebilirsiniz.

Yeri gelmişken değineyim. Yazılım lisansı konusu Türkiye'de pek önemsenmiyor ancak yurt dışındaki geliştiricilerin ilk baktığı yer lisans metni ve orada yazan kısıtlamalar. Profesyoneller, lisansı okumadan o araçla ilgili parmak oynatmıyorlar desem yalan olmaz herhalde. Geliştirici arkadaşlara da bunu tavsiye ediyorum. Programlama araçlarına lisans açısından bakış konulu, yıllar önce yazdığım yazı, başlangıç noktası olarak alınabilir;
http://www.ibonette.com/programlama-araclarina-lisans-acisindan-kisa-bir-bakis/

Ben, kullanacağım programlama aracında lisans tercih noktası olarak yaklaşık şu sıralama ile ürünleri tercih ediyorum;
BSD=MIT > Apache > GPL > Ticari
En özgürü ve programcıyı en az kısıtlayan lisanslar BSD ve MIT lisanslar. Yalnız burada dikkat etmek gereken bir nokta var. BSD ve MIT en özgürü diyoruz ama son dönemde moda oldu; Modified BSD, BSD-sytle gibi ifadelerle lisanslama yapılıyor. Bu durumda Orjinal BSD (ya da neyse o lisans) metninden ne gibi farklar getiriliyor. Örneğin Codeigniter BSD style olarak geçiyor ve yukarıda yazdığın 6 maddeden sadece 2. ve 3. maddeler Orjinal BSD den alınma. Diğer maddeler tamamen Codeigniter 'in kendi maddeleleri. Bu tür maddelere dikkat etmek lazım.

Ayrıca lisans türlerinin birbirleri ile olan ilişkileri gibi detay konular mevcut. Örneğin biri GPL, diğeri BSD olan iki ayrı araç kullanarak bir yazılım geliştirdiniz. Bu yazılımın lisansı ne olacak? FreeBSD, Apple, Microsoft gibi dev yazılım grupları dahi, bilerek ya da bilmeyerek (açık kaynak olan bazı araçları kullanırken) lisans ihlalleri yapıyor ve sonra başları çok ağrıyor. Milyonlarca dolar tazminatlar ödendi geçmişte bu gibi konularda.

Velhasılı, yazılım lisansları çok önemli bir konu. Codeigniter gibi çok kullanılan bir aracın, bu açıdan eksiğini kapattığın için tekrar teşekkür ederim.

Başarılar

@İbrahim : Görüşlerin için çok teşekkür ederim. Altıncı maddeyi dediğin gibi okudum, -ki senin çevirin doğru olanı- ancak Kohana, daha Kohana olmadan önce CodeIgniter kodlarını türettikleri sırada bir gürültü koptuğunu hatırlıyorum sitede. Daha sonra da kendi isimleri ile ayrılmışlardı. Ancak Kohana'nın versiyon 3'e kadar olan versiyonlarında CodeIgniter'dan türetilmiştir notu varken, dağıtım paketinde lisans sözleşmesi veriliyor muydu hatırlayamadım.


Ben de altıncı maddeyi, CodeIgniter markasını kullanma yetkisinin kendilerinde olduğunu belirtmek istediklerini düşünerek çevirmiştim. Ama senin çevirin doğrusu sanırım. Çünkü Fuelphp her ne kadar PHP5+ üzerinde kodlamış olsa da bazı kütüphanelerin CI'dan alındığını kodlardan takip edebiliyorsunuz. MVC'nin isminde de CI ismi geçmiyor.

O nedenle yazının 6. maddesini düzeltiyorum. Görüşlerin ve detaylı anlatımın için teşekkür ederim.

Kohana ile ilgili detayı bilmiyordum. Evet haklısın.  Bende de Ellislab ile ilgili oluşan imaj, biraz keseri kendine yontar bir yaklaşım içinde oldukları yönünde. Suçlama anlamında söylemiyorum. Tabii ki geliştirdikleri bir aracın meyvelerini toplamak isteyecekler. En doğal hakları ama böyle bir imaj, çeviri yaparken insanı bilinç altında etkileyebilir ve senin ilk yazdığın gibi bir çeviriye neden olabilir. Kaldı ki 6. maddeyi neden o şekilde yazmışlar hiç anlamadım. Aynı şeyi, çok daha anlaşılır şekilde ifade edebilirlerdi. Bizdeki hukukçuların kullandığı (anlaşılması güç) jargon benzeri ayrı bir dil kullanımı var herhalde bunların da.

Affına sığınarak bir düzeltme daha yapacağım. Ama bu kez kendi yazdığımı... 6. madde çevirisinde,
"...Ellislab Inc. 'in yazılı İZNİ olmaksızın..."
ifadesinde büyük harfle yazılı kelimeyi unutmuşuz.
Dün yukarıdaki yorumu yazarken, diğer email adresimi girdiğim için hata verdi. Ve tüm yazdıklarım gitti. Tekrar yazmıştım acele ile. O sırada eksik kalmış.

Bu arada yorum yazarken hata verince, yazılan mesajı neden korumuyor. Bence o kısma müdahale etmende fayda var. Gecenin bir yarısı çok koymuştu tekrar yazmak :) Gerçi benim kadar uzun yorum yazan yok sanırım :) ama özellikle uzun mesajlarda iyi olmuyor.

sevgiler

@İbrahim: BSD lisans tipini tekrar inceledim. Orada geçen şu satır bizim burada düzelttiğimiz 6. madde ile çelişiyor. BSD lisans metninin orijinali şöyle:


"Neither the name of the <organization> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission."

Çevirisini ise şöyle yaptım: 

"Önceden yazılı izin alınmadan, ne organizasyonun ne de onu destekleyenlerin adları bu yazılımdan türetilen ürünleri desteklemek veya teşvik etmek için kullanılabilir."

Kısaca burada izin alınmadan kullanılamama durumu söz konusu olmalıdır. Bu nedenle yukarıdaki makalede bulunan çevirinin 6. maddesini şöyle düzeltmek gerektiğini düşünüyorum:

"Önceden EllisLab, Inc.'nin yazılı izini alınmadan, bu yazılımdan türetilen ürünlerde CodeIgniter adı ne ürün adında geçebilir, ne de ürüne isim olarak kullanılabilir."

Böylece Ellis Lab. Inc, CodeIgniter marka ismini tescil ettirmiş olmaktadır.


Kesinlikle katılıyorum fatih...
Daha doğru olmuş. Eline sağlık.

fatih, lisans üzerinde tartışıp bir sonuca varmıştık, ancak sanırım ellislab lisans değişikliği yapmış (ya da yapıyor).   son zamanlarda codeigniter tarafındaki değişiklikleri pek takip edemiyorum. codeigniter 3 ile ilgili bakınırken şu sayfayla karşılaştım: http://codeigniter.com/license_faq.html
yeni lisans OSL 3.0...
gerçi sayfanın herhangi bir yerinde sadece versiyon 3 ten itibaren mi yoksa halihazırdaki 2.xx versiyonlar için mi OSL 3.0 geçerli belirtilmemiş. genel bir ifade kullanarak "codeigniter OSL 3.0 lisansı ile lisanslanmıştır..." demişler. ancak 2.xx dokümanlarına baktığımda hala eski lisansı gördüm. yani ortada netleştirilmesi gereken bir belirsizlik var. sayfaya google dan giden birisi, böyle bir belirsizlikle karşılaşıyor. yazının CI 2 mi yoksa CI 3 başlığı altında olduğu belli değil. yani büyük ihtimalle bu yeni lisans CI 3  ten itibaren geçerli ama bu sayfada bunu belirtmeyi atlamışlar.

bu yeni lisansı çok detaylı bilmiyorum fakat gördüğüm kadarı ile eski lisanstan (bsd style) en önemli farkı, ticari uygulamalarda codeigniter core kodlarının (yani framework 'ün kendisinin) kesinlikle kapatılamayacağı... core kodları, ister değiştirelim ister değiştirmeyelim yine OSL 3.0 ile lisanlamamız gerekiyor. ancak kendi app kodlarımızı istediğimiz gibi lisanslayabiliyoruz. Bu lisans değişikliği çoğu kişi açısından pek bir şey değiştirmez diye düşünüyorum ama bazı özel durumlarda (özellikle framework modifiye edildiğinde) bu detayın bilinmesi gerekebilir. isteyen sadece kendi kodlarını kapatarak yine ticari uygulama geliştirip para ile satabilecek.

kolay gelsin.

@ibrahim: Dediğin gibi lisans türünde bir değişikliğe gitti CI. Ben de bu değişikliğin 0.3.0 versiyonlarından sonra olacağını düşünüyorum. Gelişmeleri, github üzerinde bulunan kodlarda yaptıkları güncellemelerden takip edebiliyoruz.

Yorum Ekle