GPL altında yayınlanan kaynak kodu insan tarafından okunabilir olmalı mı?


22

Başka bir soruya cevaben , bir poster GPL uyarınca şunu önerdi:

... insan tarafından okunabilir [kod] sağlamalısınız, boşluk bırakmayan bir sürüm değil ...

Okunabilirlik bana GPL tarafından açıkça istenmesi için öznel ve muhtemel görünmeyecek gibi görünüyor. Bu mu?

Yanıtlar:


37

GPL, düzenleme için tercih edilen sürüm olmasını gerektirir. Normalde karışık kod yazıp doğrudan içinde değişiklik yaparsanız, GPL'nin kaynağı budur. Okunabilir bir sürümde çalışıyorsanız ve ardından herhangi bir türden gizleyiciden geçiriyorsanız, okunabilir sürüm GPL'nin kaynağı düşündüğü sürümdür.

“Okunabilirlik” özneldir ve tanımlanmamıştır. GPL'ye göre gerçekten kötü, anlaşılması zor, kod serbest bırakmak yasaldır. Değişiklik yaptığınız sürümü almak, boşlukları kaldırmak veya daha az okunabilir hale getirmek yasal değildir ve GPL altındaki kaynağı arayın.


1
çok ilginç, teşekkürler. Bunu belirten lisansın belirli bir kısmı var mı?
Armand

12
GPLv2, Şartlar ve Koşullar, madde 3'ten: "Bir iş için kaynak kod, üzerinde değişiklik yapılması için işin tercih edilen şekli anlamına gelir.".
David Thornley

4
Bu kısıtlama sadece lisanslar için geçerlidir. Kendi kodunuz için (içine çizilen harici bir GPL kodu yok) istediğiniz kadar gizleyebilir ve hala üzerine GPL etiketini (başkalarına hak vermek için) koyabilirsiniz. nVidia bunu sürücü kodu ile tekrar yaptı (1998 ya da öylesine)
Patrick Georgi

2
Bununla birlikte, nVidia örneğinde olduğu gibi, kullanılabilir kaynak kodunu sağlamadığınız bir işte "GPL etiketi yapıştırmak" anlamsızdır. Özel bir lisans kullanmış olabilirsiniz. Açıkça nVidia , kodlarını gerçekten paylaşmadan kodlarını paylaşırken görülmek istedi .
thomasrutter

1
Sadece meraktan. Kaynağı şifreli bir biçimde kaydeden özel bir düzenleyicide çalışıyorsanız ne olur? Teorik olarak, kodda onunla çalışma şekliniz var, ancak başka hiç kimse onunla çalışamıyor çünkü bu, kimsenin erişemeyeceği özel bir araç.
Aidiakapi

6

GPL v3'ü alarak, bölüm 1’de:

Nesne kodu formundaki bir iş için “İlgili Kaynak”, nesne kodunu üretmek, yüklemek ve (yürütülebilir bir çalışma için) çalıştırmak ve bu etkinlikleri denetleyen komut dosyaları dahil olmak üzere işi değiştirmek için gereken tüm kaynak kodunu ifade eder.

Yorumlar ve boşluk bırakıldıysa, işlev ve değişken adları değiştiyse, işi makul bir şekilde değiştiremezsiniz.

Ek olarak:

Kaynak kod biçiminde bir çalışmanın karşılık gelen kaynağı aynı iştir.

Aynı iş, değişmiş bir iş değil.

Bu yüzden, önceki noktamı açıklığa kavuşturmak için, kaynak kodunda değişiklik yapılması gerekiyor, insan yazısının == insan tarafından okunabilir olduğunu farz ediyorum. Ama evet, direkt olarak insan tarafından okunamaz sayılabilecek şeyler üzerine yazabilirsiniz.


4

Bu soru bazı kritik bilgiler içermiyor. Tek yazar sizseniz, tüm kurallarına uymadan, istediğiniz lisans altında (GPL dahil) ne olursa olsun kendi kodunuzu serbest bırakabilirsiniz. Böylece bir formda kodu gemi olabilir değil düzenleyerek tercih ve herhangi bir telif hakkı yasalarını ihlal edilemez. Başkalarının daha sonra Özgür Yazılım lisansı altında olduğu ruhunu kodunuzu genişletip genişletemeyeceği sorgulanabilir, bu yüzden çok az kişinin denemesi olasıdır.

Ancak çoğu zaman bir eserin tek yazarı olmayacaksınız. Türetilmiş bir çalışma yaratarak mevcut kodu kaldıracaksınız. Böyle bir çalışma, soyunun kombine kurallarına uymalıdır, aksi takdirde telif hakkını ihlal etmeden dağıtma izniniz olmayacaktır.

Bunu daha açık hale getirmek için, bazı örnekler (IANAL):

  • Kodunuzda bir GPL kitaplığı kullanırsanız, kendi kaynak kodunuzu, yalnızca yazdığınız ve düzenlediğiniz biçim olmadığı sürece (David Thornley'nin yazdığı gibi) gizlenmiş biçimde göndermenize izin verilmez.
  • Kodunuzda bir LGPL kitaplığı kullanırsanız, kendi kaynak kodunuzu yalnızca karışık biçimde göndermenize izin verilir. Bunun nedeni, LGPL'nin yalnızca kütüphaneyi kullanan eseri, kütüphanenin daha yeni bir sürümüyle kullanabilmenizi gerektirmesidir.
  • Bir LGPL kitaplığını genişletirseniz, bu GPL davası gibi olur ve gizlenmemiş kodu göndermeniz gerekir (yine de gerçekten düzenlemediğiniz sürece).

1
Telif hakkının kime ait olduğuna bakılmaksızın, bir lisansın tüm kurallarına uymanız gerekir. JS kitaplığınızı kendi web sitenizde kullanmak isteyip istemediğinize ve GPL altında yayınlamaya karar verirseniz, bunu ayrı ayrı yapmak isteyebilirsiniz. Bu soru LGPL ile ilgili değildir, ancak GPL gibi LGPL için de benzer kısıtlamalar söz konusuysa, kodun okunabilirliği ile ilgili ise, bu durumda burada bahsetmek faydalı olacaktır.
Armand

@Alison: Lisans koşulları eserleri kullanan (ve bu durumda yeniden dağıttıran) eserleri oluşturan ve size lisans veren kişiye uygulanmaz.
Paŭlo Ebermann

1
@ Alison aynı fikirde değil. Çalışmanın tek sahibi sizseniz, bunu istediğiniz zaman başarabilirsiniz. Bu nedenle (sihirli belirtilmemiş lisans) şartları altında dağıtabilir ve başkalarının GPL koşulları altında yeniden dağıtmalarına izin verebilirsiniz - GPL yalnızca başkalarının sizden türetilen eserleri yeniden dağıtmalarına izin vermek için haklar ekler. Tabii ki bu, GPL'ye inanmamış ve tek sahip olsaydınız, kullanmayacaksınız gibi bir senaryo değildir.
Michael Urman,

Dilin ikili dosyalara izin vermesi şartıyla LGPL kitaplığı kullanan kendi kaynak kodunuzu göndermeniz gerekmez. Bir kullanıcının LGPLed parçasını değiştirmesine izin veren ve uygulamayı yeniden oluşturacak olanı göndermeniz gerekir (GPLv2, kullanıcının değiştirilen sürümü yüklemesini engellemenize izin vermesine rağmen). Gerekliliği veya uygunluğundan kaynaklı olarak gemi gönderirseniz, karışıklığa neden olabilir.
David Thornley

İyi bir nokta. Ben yazımı düzenleyemem, artık LGPL onu kullanan işe gerek duymaz.
Michael Urman,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.