Her kod dosyasına lisans mı koyuyorsunuz? [kapalı]


96

Her bir kod dosyasında bulunması için gereksiz şekilde çoğaltıldığını görüyorum, ancak çoğu açık kaynak projesinde görüyorum. Aynısını mı yapmalıyım yoksa kodun dışında tek bir lisans mı eklemeliyim?



1
Sen lazım garantiyi hariç aksi takdirde yakalanmak olabilir, her kaynak dosyada. (Vim gibi uygun bir editörün, garanti istisnası kazan plakasını sizin için otomatik olarak gözden kaybolacak şekilde kolayca yapılandırılabileceğini unutmayın.)
Evgeni Sergeev

Yanıtlar:


78

Kodun dışında bir tane lütfen! Diğerlerini bilmiyorum ama her dosyanın üstünde aynı şeyi görmekten nefret ediyorum.

Sanırım birkaç kez okudum, sadece sayfa aşağıya bakarak.


10
Zifre'ye katılmıyorum. Zirvede tekrarlanan herhangi bir lisans benim için rahatsız edici.
strager

49
Her bir kaynak dosyanın hangi lisans kapsamında yayınlandığını belirlemek makul ve mantıklıdır, çünkü dosya kodun geri kalanından ayrılabilir (yeniden kullanım - genel olarak Açık Kaynak tarafından teşvik edilir) ve dosya lisansla ilgili hiçbir bilgi içermiyorsa , doğru lisansa geri dönmek daha zordur. Ancak her dosyadaki tüm lisans - hayır; bu GPL veya LGPL için grotesk olurdu. Önceden önerildiği gibi, kısa lisanslar için, dosyada gerçek lisans metninin bulunması bir sıkıntıdır, ancak bu bir karar çağrısıdır. Ancak hangi lisans altında yayınlandığını belirlemek mantıklı.
Jonathan Leffler

14
Projemdeki dosya başlıklarını yalnızca üç satır olacak şekilde güncelledim: telif hakkı, lisans adı ve lisans metninin URL'si. Başlıklarımı 26 satırdan (BSD) 3 satıra kısalttı. :)
Esko Luontola

3
@Esko: Lütfen bir örnek gönderir misiniz? Telif hakkı için ne yazdığını bilmiyorum. Teşekkürler.
Joan Venge

6
Bu cevap çözüm olarak işaretlendi, ancak benim görüşüme göre soru, elimizde olmadığı sürece hala açık evidence for the legal situation. Perhaps a lawyer can add a link to a court decision.
Jonas Stein

25

EULA burada yanlış bir terimdir, çünkü kaynak koda bakan kişiler genellikle son kullanıcı değildir.

Yasal olarak da bir fark yaratmaz; telif hakkının açıkça beyan edilmesine gerek yoktur.

Temel olarak, elde ettiğiniz tek şey, kişilerin yanlışlıkla lisans koşullarınızı ihlal etme riskinin daha düşük olmasıdır . Bunun sizin için ne kadar önemli olduğuna karar vermelisiniz.

En iyi uzlaşmanın, her kaynak kod dosyasına tam lisans metnine bir bağlantı (mutlak URL ve proje içinde göreceli) içeren çok kısa bir başlık koymak olduğunu söyleyebilirim. Bu şekilde, lisansı önemseyen herkes onu nerede bulacağını bilir (ideal olarak, yüksek lisans ücretleri ödemeye istekli kişiler; kesinlikle bu kişilerin sizinle iletişim kurmasını istersiniz!)


1
Telif hakkının açık olması gerekmeyebilir, peki ya sol kopya?
Kekoa

1
@kekoav: copyleft, telif hakkından daha az kısıtlayıcıdır. Varsayılan olarak, türev çalışmalar yapamazsınız.
Zifre

3
Bir anlaşmazlıkta bu geçerli bir argüman olmaz. Bir lisansın olduğu ve nasıl alınacağı söylendiğinde, sizin hatanız olan ve lisansı görmenizi engelleyen teknik engelleri yerleştiremezsiniz.
Lasse V. Karlsen

1
"Copyleft", GPL'nin telif hakkı kısıtlamalarını içeriden "bozma" temel fikrinin, yani bir telif hakkı sahibi olarak haklarınızı, herhangi birine kodunuzu özgürce kullanması için bir lisans vermek, ancak onları THEIR kodunu serbest bırakmaya zorlamak için kullanılan argodur. aynı lisans altında sizinkine göre.
Michael Borgwardt

2
Doğru; ancak bu bağlamda Zifre'nin dediği gibi önemli değil. Belli bir kod parçasının yayınlandığı lisansı bilmiyorsanız, onu kullanmanıza izin verilmediğini varsaymalısınız. Dolayısıyla, yayıncı olarak, insanların lisansı okumasını sağlamak için fazladan çaba sarf etmeniz gerekmez.
Michael Borgwardt

14

Hayır, lisansı her kaynak kod dosyasına koymanız gerekmez.

Daha yakından bakarsanız, çoğu FOSS uygulaması da bunu yapmaz. Her dosyanın en üstüne bir telif hakkı beyanı ve dosyanın hangi lisans kapsamında olduğunu ve lisansın tam metnini nerede bulabileceğinizi belirten kısa bir cümle koyarlar. Genellikle sizi lisansın tam metnini içeren KOPYALAMA veya LİSANS dosyasına ve / veya tam metni içeren bir web sitesine (artık KOPYALAMA dosyası yoksa) yönlendirirler.

Michael Borgwardt'ın cevaplarında söylediği gibi, yasal olarak bunu yapmak zorunda değilsiniz. Ancak, insanlar telif hakkına kimin sahip olduğunu ve lisansın ne olduğunu hemen görebileceğinden, dağıtmayı planladığınız kaynak kodu için tavsiye edilir.


1
Bu. Telif hakkı bildirimi, lisans adına bir referans (eğer standartsa) ve lisans dosyasının kaynak ağacında nasıl bulunacağına dair bir açıklama içermelidir.
jmucchiello

13

Lisansa bağlı olabilir. GPL birbirinden ayırır preamblevelicense . (Can sıkıcı) önsözün kodun bir parçası olması gerektiğini açıkça belirtir :

Yer kazanmak için GPL'nin önsözünü veya onu kendi programlarınızda nasıl kullanacağınıza dair talimatları atlayabilir miyim?

Giriş ve talimatlar, GNU GPL'nin ayrılmaz parçalarıdır ve ihmal edilemez. Aslında, GPL telif hakkına sahiptir ve lisansı, tüm GPL'nin yalnızca birebir kopyalanmasına izin verir. (Başka bir lisans yapmak için yasal koşulları kullanabilirsiniz, ancak bu GNU GPL olmayacaktır.) (1)

Kaynak: 1) http://www.gnu.org/licenses/gpl-faq.html#GPLOmitPreamble

Ayrıca bkz. Http://softwarefreedom.org/resources/2012/ManagingCopyrightInformation.html

Bir ifrOSS ücretsiz e-kitap açıklar ve Alman dilinde GPL 2 yorumlar. Orada GPL için bir tane 3

Sağlam bir cevap için sx'te bulunmayan bir hukuki tavsiye istemelisiniz. (Açık kaynak) projeniz için bir avukat bulamazsanız, FSFE yasal ağına bir göz atın .


7
Önsöz ve talimatlar vardır parçası tam lisans, ama hiçbir şey koymak zorunda diyor tam lisansı her dosyanın. [...] attach the following notices to the program.- aşağıdaki bildirimler tam lisansın yalnızca küçük bir bölümüdür. safest to attach them to the start of each source file- en güvenli ancak gerekli değil . each file should have at least the "copyright" line and a pointer to where the full notice is found. - tek gereksinim, geri kalanını gösteren bir işaretçi olan telif hakkı satırıdır. Tam lisansı ayrı bir dosyaya koymakta sorun yoktur .
toxalot

3
Ve bunun gerektiğini savunuyorum ! = Gerekir .
toxalot

Hatalısınız. Sen ne koduna (olmaz kimseyi) tam lisans eklemek zorunda kalıyor, ama aynı zamanda edilir DEĞİL tüm (dosyalarında ünlü GPL başlığında) kodda herhangi not eklemek zorunda - bu mantıklı olabilir gerçi. Basitçe söylediğiniz şey, GPL metnini parçalayamayacağınızdır.
user136036

7

Bence her dosyaya koymanın arkasındaki mantık yasal. Sözleşme her dosyada yer alıyorsa, lisansa maruz kalmadan bir kod parçasına rastlayan birinin şansı yoktur.

İyi olmayabilir, ama bütün büyük çocuklar onu kullanıyor, bu yüzden sadece görsel acı ise, aynısını yapmamak için daha iyi bir neden ararım.

GPL kullanıyorsanız, bu daha çok bir sorundur, ancak BSD veya MIT gibi kamu malı lisansları kullanıyorsanız, insanların kodla ne yaptığını gerçekten umursadığınızı sanmıyorum. Sanırım ehliyetinizin ne kadar katı olduğuna bağlı.


1
Pekala, bu durumda, her dosyada, devam ettiğinizde, license.txt dosyasındaki lisansı kabul ettiğinizi işaret edin. Ancak her dosyada aynı metni kopyalayıp yapıştırmayın. Bazen lisanstan daha kısa kodlu dosyaları buluyorum.
Kale

Evet, özellikle uzun lisanslar için bu şekilde çalıştığına katılıyorum. Yasal olarak gerekli olmasa, hatta mahkemede desteklenebilir olmasa da, ehliyetinize atıfta bulunmak, kodun hangi lisans kapsamında olduğunu araştırmak zorunda kalmadan insanları bilgilendirmek için en azından iyidir.
Kekoa

3

IANAL,

EULA'dan değil, lisanslamadan bahsettiğinizi varsayarsak, lisansı dışarıya koyabilirsiniz. Bu neredeyse her zaman GPL gibi gerçekten uzun lisanslarla yapılır. Tüm GPL lisansını her dosyaya koymak aptalca olurdu. Genellikle, gerçek lisansı nerede bulabileceğinizi söyleyen bir tür bildirim alırsınız. Bu tamamen yasal. Bununla birlikte, BSD / Apache / MIT / her neyse gibi gerçekten kısa lisanslarla, lisansı nerede bulacağınızı belirten bildirim neredeyse lisansın kendisi kadar uzun olacağı için her dosyaya lisans eklemek daha kolaydır.


2

Bu, lisansın ne gerektirdiğine bağlıdır. Örneğin GPL, her kaynak dosyaya kısa bir uyarı koymanızı, tüm lisansı kaynak dağıtımınızın bir yerine eklemenizi ve kaynak dağıtımınızı ikili dağıtımın bir kopyasını alan herkes için kullanılabilir hale getirmenizi ister.

Buna katılmıyorsanız ve bu SİZİN kodunuzsa, daha uygun bir lisans seçmekte veya kendi lisansınızı oluşturmakta özgürsünüz.


1

Kodunuz derlenecek ve böylece sadece bir ikili dağıtacaksanız, o zaman gerçekten önemli değil. Çünkü bir ikili dosya oluşturduğunuzda, yorumlar derleme işlemi gerçekleşmeden önce kaldırılır. Yalnızca gerçek kaynak kodunu açık kaynak veya kapalı kaynak olarak dağıtacak olmanız önemlidir. Bu tipik olarak, bir uygulamayı derlemeyen bir betik dilinde dağıtacaksanız önemlidir.


Teşekkürler. Açık kaynak olacak.
Joan Venge

Lisansı içerecek sabit kodlanmış bir dize oluşturabilirsiniz, bu yüzden ikili dosyada görünecektir, ancak bu muhtemelen çok fazladır :).
Liran Orevi

1

Lisans için buna ihtiyacınız yok, hangi dosyaları kapsadığı açık olduğu sürece tek bir harici dosya yeterli olacaktır.

Bununla birlikte, Telif Hakkı için her metin parçası üzerinde telif hakkı bildirimine sahip olmanız gerekir.


Teşekkürler, yani telif hakkı farklı mı?
Joan Venge

INAL ancak bir lisans siz ve kullanıcı / müşteri arasındaki bir sözleşmedir. Telif hakkı, yazılı bir çalışmanın bir parçasının mülkiyet iddiasıdır. Birisi kodunuzun bir parçasını alabilir ve uyarı eksik olduğu için bunun telif hakkı olmadığını makul bir şekilde iddia edebilir. Endişelenmeyin, tek ihtiyacınız olan "Telif Hakkı Joe Soap (Cleansoft Inc.)".
James Anderson

10
Bu konuda çok yanılıyorsun. Açık olmak gerekirse her yere telif hakkı bildirimleri eklemek genellikle iyi olsa da, bu, HER ŞEYİN telif hakkıyla korunduğunu bildiğiniz için "telif hakkına tabi olmadığını varsaymayı" adil bir oyun haline getirmez. Bir kişi kaynak kodunu aldığında, onu kullanmasına izin veren bir lisans beyanı bulabilir veya bir sebepten dolayı kamu malı olduğunu öğrenebilir. Telif hakkı olduğunu düşünmüyorsa ve kopyalanamıyorsa. Telif hakkı otomatik bir şeydir ve bundan bahsetmek iyidir, ancak bunu yapmamak onu kaybettiğiniz anlamına gelmez ...
Jasper

1

Yaptığım şey, dosyanın en üstüne şirketimin adını, son revizyon tarihini ve kaynak dosyanın sahip olduğu lisansın adını belirten iki satırlık bir yorum koymak, ardından dosyanın en altına dosyanın kısa bir sürümünü lisans.

Elbette, tam lisans (birden fazla lisans olması durumunda hepsi) her zaman kaynak dosya ve sürüm dizinlerinde bulunur.


4
son revizyon tarihini nasıl otomatikleştiriyorsunuz?
Dustin Getz
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.