Üçüncü taraf kütüphane lisanslarını “evrak” olarak düzenlemek için en iyi uygulama nedir?


60

Küçük bir açık kaynaklı proje geliştiriyorum. Uygulama, çeşitli lisanslarla yayımlanan birçok üçüncü taraf kütüphanesini kullanır: Apache, MIT, BSD, LGPL ve CDDL.

Bu lisansların her birinin “evrak” gereksinimi vardır. Örneğin, Apache License, v2.0 diyor ki:

Çalışma, dağıtımının bir parçası olarak bir "BİLDİRİM" metin dosyası içeriyorsa, dağıttığınız herhangi bir Türev Çalışması, böyle bir BİLDİRİM dosyasında yer alan özellik bildirimlerinin okunabilir bir kopyasını içermelidir.

MIT lisansı bir telif hakkı bildirimi içeriyor ve diyor ki:

Yukarıdaki telif hakkı bildirimi ve bu izin bildirimi, Yazılımın tüm kopyalarına veya önemli bölümlerine dahil edilecektir.

BSD lisansı ayrıca bir telif hakkı bildirimi içeriyor ve diyor ki:

İkili formdaki yeniden dağıtımlar, yukarıdaki telif hakkı bildirimini, bu koşullar listesini ve aşağıdaki feragatnameyi, dağıtımda sağlanan belgelerde ve / veya diğer materyallerde çoğaltmalıdır.

LGPL v.3 diyor ki:

Birleştirilmiş Çalışmanın her bir kopyasında, Kitaplığın içinde kullanıldığı ve Kitaplığın ve kullanımının bu Lisansın kapsamına girdiğini açıkça belirtmelisiniz.

LGPL ve CDDL lisansları ayrıca kaynak kodun ikili bir kütüphane formuyla birlikte verilmesini de gerektirir, bu nedenle kaynak kodun nasıl elde edilebileceği ile ilgili bilgiler bir yerde sağlanmalıdır.

Tüm bu verileri düzenlemek için en iyi uygulama nedir? Bir metin dosyası oluşturup tüm NOTICEdosyaların, MIT ve BSD lisanslarının vs. içeriğini bu dosyaya kopyalamalı mıyım ? ... yoksa her kütüphane için ayrı bir dizin oluşturmalı ve kütüphane ile ilgili tüm verileri o dizine koymalı mıyım? … veya başka bir şey?

Bu “evraklar” ın herhangi bir örneğini yayınlanan projelerde görmek de ilginç olurdu.

GÜNCELLEME:

Okudum Her kaynak dosyaya bir lisans bildirimi eklemek zorunda mısınız? , ama benim sorunumla ilgilenmiyor. Benim sorum, bir projede kullanılan üçüncü taraf kütüphaneler hakkında ve bu soru projenin kendi kaynak kodundaki başlıklar hakkında.

Yanıtlar:


62

İlk olarak, standart sorumluluk reddi: IANAL ama rastgele bir yabancı.

Son zamanlarda bir AGPL başvurusunu (*) paketliyorum . JQuery, MIT, BSD (ve diğer bazı) lisansları altında dağıtılan üçüncü taraf kütüphaneleri kullanır. İşte nasıl ilerlediğimi.

Bunu tasarlarken asıl amacım şunlardı: uyumlu olmak ve adil olmak . Birincisi yeterli olsa da, ikincisi,% 100 hak sahibi olamadığım için beni dava etmeye çalışanın, iyi niyetle iş yaptığımı kabul etmesini sağlamalıdır.

1) Kaynak dosyalar: tüm dosyalarımın AGPL başlığı var. 3. parti dosyalarının tümü (çoğunlukla) değiştirilmemiş durumdadır ve bu nedenle kendi lisans başlıklarını içerir.

2) LICENSE.txt, paketin kökünde, AGPL lisans metnini içerir ("Bu Koşulların Yeni Programlarınıza Nasıl Uygulanacağı" bölümünde açıklandığı gibi).

3) LICENSE-3RD-PARTY.txt adını verdiğim ve ayrıca paketin kök dizininde bulunan ikincil bir lisans dosyası, TÜM lisansların yazılı kopyalarını içeriyor. Her bir lisans için bir başlık, hangi lisans olduğunu ve hangi bölüm için geçerli olduğunu belirtir. Ayrıca buraya telif hakkı sahiplerinin adını da ekliyorum - Onları daha sonra başka bir yerde yeniden kullanıyorum, bu yüzden çabaya değer.

-----------------------------------------------------------------------------
                        The MIT License (MIT)
        applies to: 
        - AJAX Upload, Copyright (c) Andrew Valums
        - jQuery hashchange event, Copyright (c) 2010 "Cowboy" Ben Alman
        - jquery.hotkeys, Copyright (c) 2010 John Resig
-----------------------------------------------------------------------------

Permission is hereby granted, free of charge [...]

4) README.txt, ayrıca kökte, yazılımın AGPL olduğunu (bkz. LICENSE.txt) ve kendi koşulları altında dağıtılan üçüncü taraf kütüphaneleri kullandığını açıklar (bkz. LICENSE-3RD-PARTY.txt)

5) Çevrimiçi belgelerde, beniokudaki bilgileri tekrarlayan bir Lisans sayfam var: yazılımım AGPL ve BSD / MIT / [...] olan 3. taraf bileşenleri kullanıyor. Bu sayfayı daha temiz ve daha okunaklı tutmaya karar verdim, bu nedenle yalnızca tam lisansa bir ad ve yalnızca kendi web sitesine bir link içeren telif hakkı sahiplerinin adı verildi.

jQuery
    Copyright 2013 jQuery Foundation and other contributors
    http://jquery.com
    MIT License
Data Driven Documents (D3)
    Copyright (c) 2013, Michael Bostock    <-- link to personal website, if any
    http://d3js.org                        <-- link to software website
    BSD-like license                       <-- link to license full text
[...]

6) Ayrıca çevrimiçi belgelerde doğrudan ve dolaylı ana katılımcıları listelediğim bir Kredi sayfam var . Örneğin, PostgreSQL indirme işlemine dahil edilmemiş olsa da PostgreSQL grubundan bahsettim, ancak yazılımı çalıştırmak için ihtiyacınız var. Burası, 3. parti araçların / kütüphanelerin / vb. Yazarlarının istediği veya istediği tüm onayları vermek için iyi bir yer olacaktır.

7) Yazılımın içinde, lisans ve telif hakkı sahipleriyle birlikte kitaplıkların listesi Hakkında iletişim kutusunda tekrarlanır .

Kaynak kodun eklenmesi ve dosya düzeni hakkındaki özel sorularınızı ele almak için:

  • Genelde yalnızca 3. parti paketlerin tam kaynak koduna bağlantı vermesi kabul edilir. Emin olmak için her bir özel lisansa bakın, ancak bağlantıyı sağlayan IMHO yeterli olmalıdır. Örneğin, bir kitaplığın küçültülmüş bir sürümünü kullanıyorsanız, standart indirme bağlantısını sağlayabilir ve iyi olabilirsiniz.

  • 3. taraf bileşeni açıkça dağıtımların dosya düzenini aynı tutmasını talep etmedikçe işleri istediğiniz gibi yeniden düzenleyebilirsiniz. Her biri bir css / ve bir js / dizine sahip web kütüphaneleri kullandığınızı, birleştirilmiş css / ve js / içeren tek bir lib / dizinde birleştirebileceğinizi, hatta kaynak ağacınızın etrafına dağıttığınızı, hatta seçiminizi yapabileceğinizi hayal edin.

Ve son bir not olarak, yapardım daha "yapıyorsun diyerek bir el sallamak karşılama Yorum yapanlar daha bu " ayrıca yapmalıyım ve / veya yanlış " olduğunu ".

(*) Bu, spam bağlantısı oluşturma amaçlı değildir, yalnızca sorunun "lütfen örnekler verin" bölümüne cevap vermek içindir. Kurallara aykırıysa, bu bağlantıyı temizlemek için çekinmeyin modlar.


2
Harika bir cevap için teşekkür ederim! Bu tam olarak aradığım bir tür bilgi. Başkalarının söyleyecek bir şeyleri olup olmadığını görmek için henüz bunu kabul etmiyorum.
Alexey

8
Buraya daha sonra gelecek olanlar için, FireFox'un LICENSE-3RD-PARTY.txtbu cevapta açıklanan dosyaya benzer bir belgesi var . (Click Licensing Informationiçinde Aboutkutu.) Çok Google Chrome'da benzer belge yoktur.
Alexey,

1
İşte IntelliJ IDEA tarafından kullanılan üçüncü taraf yazılımlarını listeleyen benzer bir belge: confluence.jetbrains.com/display/IDEADEV/…
Alexey
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.