Làm thế nào tôi nên cấp phép cho mô-đun của tôi?


15

Tôi có một mô-đun mà tôi đã viết cho công ty của tôi. Nó lấy dữ liệu từ giải pháp văn phòng hỗ trợ của chúng tôi và nhập nó vào Magento. Nó cũng nhận đơn đặt hàng từ Magento và nhập chúng vào phần mềm văn phòng hỗ trợ. Tôi đã đọc một số loại giấy phép tôi có thể sử dụng nhưng không biết nên sử dụng loại giấy phép nào. Yêu cầu cơ bản của tôi là:

  1. Tôi không muốn ai đó sao chép / phân phối mã như công việc của họ.
  2. Mã được viết bởi chính tôi nhưng gọi các hàm magento cốt lõi.
  3. Mô-đun sẽ được tải xuống miễn phí nhưng để sử dụng, bạn sẽ cần một Url dịch vụ web mà công ty tôi sẽ cung cấp (sau khi đã nhận được thanh toán).
  4. Tôi muốn có thể phân phối nó cho tất cả các phiên bản Magento (ngoại trừ GO (tôi nghĩ)).

Hai câu hỏi với những điều trên:

  1. Giấy phép nào phù hợp nhất với nhu cầu của tôi? (Tôi chưa tìm thấy một danh sách dứt khoát của tất cả chúng để đọc chúng).
  2. Làm thế nào để tôi thực thi giấy phép này? Là thêm một số điều khoản vào đầu mỗi tập lệnh đủ để đảm bảo giấy phép được đưa ra?

Nếu thông tin này được chứa ở đâu đó thì xin vui lòng liên kết tôi với nó nhưng tôi không thể tìm thấy bất cứ điều gì sau khi tìm kiếm trả lời cụ thể tình huống của tôi.


licensecũng có thể được đánh vần là licence oxforddictionaries.com/def định / english /licence . Tôi đến từ Vương quốc Anh;)
webnoob

Sau đó chúng tôi có thể hoàn nguyên nếu bạn muốn.
philwinkle

1
@David - Cảm ơn, không có quyền tạo thẻ.
webnoob

1
Cá nhân, tôi thích -se cho động từ và -ce cho danh từ (so sánh lời khuyên / lời khuyên ), nhưng từ điển của bạn lưu ý rằng -ce là cách đánh vần "chấp nhận được" của động từ. Collins liệt kê dạng -ce chỉ như một danh từ.
TRiG

Câu trả lời:


10

Tuyên bố miễn trừ trách nhiệm: Tôi không phải là luật sư, vì vậy đừng coi đây là tư vấn pháp lý. Thông tin được đưa ra dựa trên kinh nghiệm và nghiên cứu cá nhân của tôi trong ngành. :)

Đề nghị của tôi sẽ là sử dụng giấy phép OSL-3.0. Đây là cùng một giấy phép mà lõi Magento CE được phân phối theo ( http: //www.magentoc Commerce.com/license/ ) và bao gồm những gì tôi nghĩ bạn muốn dựa trên thông tin được cung cấp. Các phần của Magento, chẳng hạn như chủ đề mặc định / cơ sở, được phân phối theo AFL vì lý do Roy nêu ra tại đây: http : //www.magentoc Commerce.com/license/

Bạn có thể tìm thấy giấy phép OSL-3.0 đầy đủ tại đây: http://opensource.org/licenses/OSL-3.0 .

Để phát hành tiện ích mở rộng trên Magento Connect, bạn phải chọn một trong các loại giấy phép sau (mục hàng đầu được liệt kê là loại tôi đang đề xuất):

  • Giấy phép phần mềm mở (OSL)
  • Giấy phép công cộng Mozilla (MPL)
  • Giấy phép của Viện Công nghệ Massachusetts (MITL)
  • Giấy phép Công cộng GNU Ít hơn (LGPL)
  • Giấy phép Công cộng GNU (GPL)
  • Giấy phép phân phối phần mềm Berkeley (BSDL)
  • Giấy phép phần mềm Apache (ASL)
  • Giấy phép học tập miễn phí (AFL)

Ngoài ra còn có tùy chọn "chỉ định giấy phép (thương mại) khác nếu bạn phân phối gói mở rộng là đã trả tiền" - nhưng như nó lưu ý, nó phải được thanh toán, điều đó có nghĩa đây không phải là một tùy chọn cho bạn.

Tôi khuyên bạn nên xem toàn bộ OSL (được liên kết ở trên), nhưng đây là một vài điều có thể áp dụng về nó:

  • Giấy phép cấp cho người dùng quyền sản xuất, sử dụng và bán các bản sao của cả tác phẩm gốc và tác phẩm phái sinh. Vì bạn không có kế hoạch tính phí cho mô-đun, nên đây không phải là vấn đề.
  • Giấy phép yêu cầu tất cả các thông báo ghi nhận vẫn còn nguyên trong cả tác phẩm gốc và tác phẩm phái sinh. Tức là mọi bản sao được phân phối lại (bao gồm sửa đổi, gia hạn, v.v.) phải duy trì tất cả các thông báo bản quyền, bằng sáng chế, nhãn hiệu và giấy phép được xác định là "Thông báo ghi công"

Vì vậy, câu hỏi lớn là: Làm thế nào để bạn áp dụng điều này cho mã của bạn? Tôi sẽ đưa ra một vài gợi ý:

  • Đảm bảo rằng bạn phân phối một bản sao đầy đủ của giấy phép OSL-3.0 trong mã nguồn của mô-đun của bạn có trong tệp LICENSE.txt.
  • Bao gồm một tiêu đề ở đầu mỗi tệp mã đưa ra "Thông báo ghi công" hoặc "Thông báo giấy phép" Điều này sẽ khai báo giấy phép mà mã được phân phối theo, cung cấp từ chối trách nhiệm cơ bản (nếu cần) và cung cấp thông tin bản quyền và liên kết đến giấy phép.
  • Để tham khảo, bạn có thể xem nhanh tiêu đề mà Magento CE sử dụng trong tất cả các mã mà nó cấp phép theo Giấy phép phần mềm mở.

1
@philwinkle - đã tự hỏi như tôi đã viết nếu bạn đã điền vào cùng một hộp như tôi đã ... :)
davidalger

8

Chỉnh sửa 16/07/13:

Github vừa phát hành một tổng quan tuyệt vời về tất cả các mô hình cấp phép chính để giúp bạn đưa ra lựa chọn sáng suốt hơn:

http://choosealicense.com/

http://choosealicense.com/licenses/


Tôi không phải là một luật sư. Bạn nên nói chuyện với một.

Theo cách đó - có quá nhiều giấy phép phần mềm miễn phí để liệt kê. Có 4 giấy phép Phần mềm mở chính (và tôi đang chờ sự tấn công của các chỉnh sửa để mở rộng danh sách này cho những người tôi đã quên):

  • Apache
  • OSL 3.0
  • MIT
  • BSD mới

Và nhiều sản phẩm phần mềm nguồn mở yêu thích của bạn có thể sử dụng một trong 4 sản phẩm trên.

Làm thế nào để tôi lựa chọn?

Jeff Atwood đã thực hiện một công việc tuyệt vời khi so sánh các giấy phép trên blog Mã hóa kinh dị của mình: http : //www.codinghorror.com/blog/2007/04/pick-a-license-any-license.html

Cũng có sẵn ứng dụng web 'người chọn giấy phép': http://three.org/openart/license_chooser/

Phil Haack chắt lọc tất cả những điều này xuống bốn loại giấy phép sau đây; Tôi có xu hướng đồng ý với anh ta:

Độc quyền - Mã là của tôi! Bạn không thể nhìn vào nó. Bạn không thể đảo ngược nó. Mỏ của tôi!

GPL - Bạn có thể làm bất cứ điều gì bạn muốn với mã, nhưng nếu bạn phân phối mã hoặc nhị phân, bạn phải thực hiện các thay đổi của mình thông qua giấy phép GPL.

BSD mới - Sử dụng có nguy cơ của riêng bạn. Làm bất cứ điều gì bạn muốn với mã, chỉ cần giữ nguyên giấy phép, ghi có cho tôi và không bao giờ kiện tôi nếu phần mềm làm bạn thất vọng. Giấy phép MIT là một thay thế đáng chú ý cho BSD mới và rất giống nhau.

Miền công cộng - Làm bất cứ điều gì bạn muốn với mã. Giai đoạn = Stage. Không cần phải nhắc đến tôi nữa. Bạn có thể quên tôi từng tồn tại.

Đối với tất cả ý định và mục đích, đối với tôi, BSD / MIT mới là thứ bạn đang tìm kiếm, tuy nhiên, chỉ bạn mới có thể đưa ra quyết định này.

Đối với bản ghi, Magento là AFL 3.0, nhưng được sử dụng là OSL 3.0. http: //www.magentoc Commerce.com/license/

Có thể cho rằng, tính năng quan trọng nhất của các giấy phép này là Khả năng tương thích GPL . Quỹ phần mềm miễn phí chứng thực nhiều người khác trên trang web của riêng họ - được trích dẫn tại đây trong Wiki này: http://en.wikipedia.org/wiki/List_of_FSF_approved_software_licenses

Nói ngắn gọn:

Bạn cần phải đưa ra lựa chọn của riêng bạn. Không ai có thể đưa ra một câu hỏi ngắn trên StackExchange và giải thích nhu cầu cá nhân của bạn. Nói chung, nếu bạn không muốn phần mềm của mình được chia sẻ qua các mạng công cộng , bạn muốn xem OSL 3.0 và các biến thể của nó.

Khi tôi đã chọn giấy phép, làm thế nào để tôi áp dụng nó?

Bao gồm phân bổ và thông báo giấy phép ở đầu tất cả các tệp của bạn. Bao gồm LICENSE.TXT và liên kết đến thông báo giấy phép trên trang web của riêng bạn.


Sửa chữa: Magento không phải là AFL. Họ phân phối AFL thông qua tệp LICENSE_AFL.txt trong thư mục gốc, nhưng tôi nghĩ đó là mã được bao gồm trong AFL. Magento là (và đã có từ ít nhất 1.3) được cấp phép theo OSL 3.0. Ngay cả bản 1.8 alpha cũng tham chiếu OSL 3.0 trong các tiêu đề giấy phép của nó. ;)
davidalger

Trên thực tế, chúng tôi đều đúng. Một số tiện ích mở rộng và chủ đề cơ bản đã được thay đổi thành AFL vào cuối năm 2008 để ngăn các nhà phát triển bên thứ 3 buộc phải phát hành mã nguồn tác phẩm phụ (không phân phối). Tham chiếu: magentoc Commerce.com/boards/viewthread/21377
davidalger

2
Roy Rubin đã có một writeup tuyệt vời về lý do tại sao AFL vs OSL - xem comment của mình sau khi bài viết trên blog: fabrizioballiano.net/2008/02/27/...
philwinkle

Liên kết rất tốt Tôi chưa bao giờ thấy bài viết trên blog trước đây.
davidalger
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.