Neden GPLv3'e Yükseltilmeli
yazan Richard StallmanGNU Genel Kamu Lisansı (GNU GPL)'nın 3. sürümü yayımlandı ve özgür yazılım paketlerinin GPL'nin 2. sürümünden yükseltilmesine olanak sağladı. Bu yazıda lisansı yükseltmenin neden önemli olduğu açıklanıyor.
Her şeyden önce yükseltmenin bir tercih olduğunu belirtmemiz gerekiyor. GPL'nin 2. sürümü geçerli bir lisans olarak kalacaktır ve bazı programlar GPLv2 kapsamında kalırken diğerlerinin GPLv3'e geçmesi felaket getirmeyecektir. Bu iki lisans uyumsuz olsa da, bu esas bir sorun değildir.
GPLv2 ve GPLv3'ün uyumsuz olduğunu söylediğimizde bunun anlamı, GPLv2 kapsamındaki bir kodu, GPLv3 kapsamındaki bir kodla birlikte tek bir programda birleştirmenin yasal bir yolunun olmadığıdır. Bunun nedeni, hem GPLv2 hem de GPLv3'ün copyleft lisansları olmasıdır: Her biri, “Bu lisans kapsamındaki kodu daha büyük bir programa dâhil ederseniz daha büyük programın da bu lisans kapsamında olması gerekir.” der. Bunları uyumlu hâle getirmenin bir yolu yoktur. GPLv3'e bir GPLv2 uyumluluk maddesi ekleyebiliriz ancak bu yeterli olmayacaktır, çünkü GPLv2'nin de benzer bir maddeye ihtiyacı olacaktır.
Neyse ki lisans uyumsuzluğu yalnızca iki farklı programdaki kodu tek bir programa bağlamak, birleştirmek veya bir araya getirmek istediğinizde önemlidir. Bir işletim sisteminde GPLv3 ve GPLv2 kapsamındaki programların yan yana olması sorun değildir. Mesela TeX lisansı ve Apache lisansı GPLv2 ile uyumsuzdur ancak bu; TeX ve Apache'yi Linux, Bash ve GCC ile aynı sistemde çalıştırmamızı engellemez. Çünkü hepsi ayrı programlardır. Aynı şekilde Bash ve GCC GPLv3'e taşınırken, Linux GPLv2 altında kalsa da herhangi bir uyuşmazlık yoktur.
Bir programı GPLv2 altında tutmak sorun değildir. Geçişin nedeni, GPLv3'ün mevcut sorunlara çözüm getirmesi olacaktır.
GPLv3'ün engelleyeceği en büyük tehlike tivoizasyondur. Tivoizasyon, (içinde bilgisayar bulunan) bazı “aletler”in etkili bir şekilde değiştiremeyeceğiniz biçimde GPL kapsamında yazılım içerdiği anlamına gelir. Değiştirilemez, çünkü alet değiştirilmiş yazılımı tespit ederse kapanır. Tivoizasyon için alışıldık neden; üreticinin, yazılımın insanların değiştirmek isteyeceğini bildiği özelliklere sahip olması ve insanların bunları değiştirmesini durdurmayı amaçlamasıdır. Bu bilgisayarların üreticileri özgür yazılımın sağladığı özgürlükten yararlanır, ancak aynı şekilde davranmanıza izin vermezler.
Bazıları, serbest bir piyasadaki aletler arasındaki rekabetin kötü özellikleri düşük düzeyde tutmak için yeterli olması gerektiğini savunuyor. Belki de tek başına rekabet; “Her salı 13.00 ile 17.00 arasında kapanmalıdır.” gibi keyfî, amaçsız, hatalı özelliklerden kaçınmaya yarayacaktır ancak yine de efendilerin seçimi özgürlük değildir. Özgürlük yazılımınızın ne yaptığını sizin denetlemenizdir, sırf sizin için karar vermek üzere başka birine yalvarmanız veya gözdağı vermeniz anlamına gelmez.
Çok önemli Dijital Kısıtlamalar Yönetimi (DRM) (bilgisayarınızdaki verileri kullanımınızı kısıtlamak için tasarlanmış nahoş özellikler) alanında rekabetin bir yararı yoktur çünkü amacına uygun rekabet yasaktır. Dijital Binyıl Telif Hakkı Yasası ve benzeri yasalar uyarınca, ABD ve diğer birçok ülkede, DVD oynatıcısının resmî kurallarına göre kullanıcıyı kısıtlamadığı sürece DVD oynatıcıları dağıtmak yasalara aykırıdır (Web sitesi www.dvdcca.org ancak kurallar burada yayımlanmış gibi görünmüyor.). Halk, DRM olmayan oynatıcıları satın alarak DRM'yi reddedemez çünkü böyle oynatıcılar mevcut değiller. Hangi ürünü seçerseniz seçin, hepsinde eş değer bir dijital kelepçe bulunur.
GPLv3, kelepçeleri çıkararak özgür olmanıza olanak sağlar. DRM'yi veya herhangi bir özelliği yasaklamaz. Bir programa ekleyebileceğiniz veya programdan kaldırabileceğiniz önemli işlevsellikler için sınırlama getirmez. Aksine kopyanızın dağıtıcısının onları eklemesi gibi nahoş özellikleri kaldırmak için özgür olmanızı sağlar. Tivoizasyon onların sizi bu özgürlükten mahrum etmesinin yoludur; GPLv3, özgürlüğünüzü korumak için tivoizasyonu yasaklıyor.
Tivoizasyon yasağı, nadiren olsa bile, tüketiciler tarafından kullanılması beklenen herhangi bir ürün için geçerlidir. GPLv3, yalnızca neredeyse yalnızca işletmeler ve kuruluşlar için tasarlanmış ürünler için tivoizasyonu hoşgörür.
GPLv3'ün karşı koyduğu bir başka tehdit de Novell-Microsoft antlaşması gibi patent anlaşmalarıdır. Microsoft, kullanıcıların GNU/Linux'u çalıştırma ayrıcalığı için Microsoft'a ödeme yapmasını sağlamak amacıyla binlerce patentini kullanmak istiyor ve bu antlaşmayı buna erişebilmek için yaptı. Anlaşma, Microsoft patentlerinden Novell'in müşterilerine oldukça kısıtlı bir koruma sunuyor.
Microsoft; Novell-Microsoft anlaşmasında birkaç hata yaptı ve GPLv3 bunları Microsoft'a karşı kullanmak için tasarlandı ve bu kısıtlı patent korumasını tüm topluma genişletti. Bu korumadan yararlanmak için programların GPLv3 kullanması gerekiyor.
Microsoft'un avukatları aptal değiller ve bir dahaki sefere bu hatalardan kaçınmayı başarabilirler. GPLv3 bu nedenle “bir dahaki seferlerinin” olmayacağını söylüyor. Bir programı GPL'nin 3. sürümü altında yayımlamak, Microsoft'un gelecekteki yeniden dağıtıcıların programın kullanıcılarından Microsoft telif hakkı ücretleri toplamalarını sağlama girişimlerine karşı programı korur.
GPLv3 ayrıca kullanıcılara programın katkıcıları ve yeniden dağıtıcılarına karşı belirgin bir patent koruması sağlar. GPLv2 ile kullanıcılar, kendilerine bir kopya sağlayan şirketin patent ihlali için kopyaları yeniden dağıttıkları kişilere dava açmayacağından emin olmak için örtük bir patent lisansına güvenirler.
GPLv3'teki belirgin patent lisansı istediğimiz kadar ileri gitmemektedir. İdeal olarak GPL kapsamındaki kodu yeniden dağıtan herkesi, GPL kapsamındaki kodu yeniden dağıtmayan herkesle birlikte, tüm yazılım patentlerinden vazgeçirmeliyiz, çünkü yazılım patentleri olmamalıdır. Yazılım patentleri; tüm yazılım geliştiricilerini, daha önce hiç duymadıkları şirketler ve alandaki tüm büyük şirketler tarafından dava edilme tehlikesine sokan tehlikeli ve saçma bir sistemdir. Büyük programlar genellikle binlerce fikri birleştirir, bu yüzden yüzlerce patentin fikirlerini uygulamaya koymaları şaşırtıcı değildir. Büyük şirketler; binlerce patent toplar ve bu patentleri daha küçük geliştiricilere zorbalık yapmak için kullanır. Zaten patentler özgür yazılım geliştirmeyi engelliyorlar.
Yazılım geliştirmeyi güvenli hâle getirmenin tek yolu yazılım patentlerini kaldırmaktır ve bir gün bunu başarmayı amaçlıyoruz. Ancak bunu bir yazılım lisansı ile yapamayız. Özgür olsun veya olmasın, herhangi bir program ilgisiz bir tarafın elinde bulunan bir yazılım patenti tarafından yok edilebilir ve programın lisansı bunu engelleyemez. Yalnızca mahkeme kararları veya patent yasasındaki değişiklikler yazılım geliştirmeyi patentlerden koruyabilir. Bunu GPLv3 ile yapmaya çalışırsak, başarısız oluruz.
Bu nedenle GPLv3 tehlikeyi sınırlandırmayı ve yönlendirmeyi amaçlar. Özellikle özgür yazılımı yokoluştan daha kötü bir kaderden, patentler yoluyla etkin bir şekilde özel mülk hâle getirilmekten kurtarmaya çalıştık. GPLv3'ün belirgin patent lisansı, kullanıcılara dört özgürlüğü vermek amacıyla GPL'yi kullanan şirketlerin geri dönüp bazı kullanıcılara “Bu, sizi kapsamaz.” demek için patentlerini kullanamayacaklarından emin olur. Ayrıca diğer patent sahipleriyle bu yapmak için dolap çevirmelerini de engeller.
GPLv3'ün diğer avantajları arasında daha iyi uluslararasılaştırma, daha nazik sonlandırma, BitTorrent için destek ve Apache lisansı ile uyumluluk bulunmaktadır. Sonuç olarak yükseltmek için bir yığın neden var.
GPLv3 yayımlandıktan sonra son verilmesi mümkün değildir. Kullanıcıların özgürlüğüne yönelik yeni tehditler ortaya çıkarsa GPL'nin 4. sürümünü geliştirmemiz gerekecek. Eğer bir tane yazarsak, programların GPLv4'e yükseltmede sorun yaşamayacağından emin olmak önemlidir.
Bunu yapmanın bir yolu, programı “GPL'nin 3. sürümü veya daha sonraki herhangi bir sürümü (GPL version 3 or any later version)” altında yayımlamaktır. Başka bir yol, programa katkıda bulunanların gelecekteki GPL sürümlerine yükseltmeye karar verebilecek bir vekil beyan etmesidir. Üçüncü yol, tüm katkıcıların lisans sürümünü yükseltebilecek bir belirlenmiş telif hakkı sahibine telif hakkı atamalarıdır. Öyle ya da böyle programlar gelecekteki GPL sürümleri için bu esnekliği sağlamalıdır.