Giấy phép phần mềm tự do

Giấy phép phần mềm tự do là thông báo cấp cho người nhận một phần của các quyền mở rộng phần mềm để sửa đổi và phân phối lại phần mềm đó. Những hành động này thường bị luật bản quyền cấm, nhưng chủ bản quyền (thường là tác giả) của một phần mềm có thể loại bỏ những hạn chế này bằng cách kèm theo phần mềm với giấy phép phần mềm cấp cho người nhận các quyền này. Phần mềm sử dụng giấy phép đó là phần mềm tự do (hoặc phần mềm tự do - mã nguồn mở) do chủ sở hữu bản quyền trao tặng. Giấy phép phần mềm miễn phí được áp dụng cho phần mềm trong mã nguồn và cũng dưới dạng mã đối tượng nhị phân, vì luật bản quyền công nhận cả hai biểu mẫu.[3]

Giấy phép phần mềm trong bối cảnh bản quyền theo Mark Webbink.[1] Từ trái sang phải ít quyền cho người được cấp phép/user của một phần mềm và nhiều hơn nữa quyền giữ lại bởi chủ sở hữu. Ba danh mục giấy phép đầu tiên từ bên trái được coi là một phần của hệ sinh thái "phần mềm tự do", cũng bao gồm Giấy phép tương đương tên miền công cộng (như CC0).
Phổ phần mềm cấp phép tự do và một số ví dụ về các chương trình theo các giấy phép đó theo David A. Wheeler (2007)[2]

Lịch sử

Trước thập niên 1980

Trong thời kỳ đầu của phần mềm, chia sẻ phần mèm và mã nguồn là phổ biến trong cộng đồng, cho các tổ chức giáo dục chẳng hạn.Trước khi Ủy ban Hoa Kỳ về sử dụng công nghệ mới có bản quyền (CONTU) quyết định năm 1974 rằng "chương trình máy tính, trong phạm vi mà chúng thể hiện sáng tạo ban đầu của tác giả, là đối tượng thích hợp của bản quyền",[4][5] phần mềm không được coi là có bản quyền. Do đó, phần mềm không có giấy phép kèm theo và được chia sẻ như là phần mềm tên miền công cộng. Quyết định của CONTU cùng với quết định của tòa án tại vụ viện giữa Apple v. Franklin năm 1983 cho mã đối tượng, đã làm rõ rằng luật Bản quyền đã cung cấp cho ứng dụng máy tính có bản quyền của tác phẩm văn học và bắt đầu cấp phép phần mềm.

Giấy phép phần mềm tự do trước cuối những năm 1980 là những thông báo chính thức thường được viết bởi chính các nhà phát triển. Những giấy phép ban đầu này thuộc loại "được phép".

Giữa thập niên 1980,dự án GNU đã tạo ra các giấy phép phần mềm tự do copyleft cho mỗi gói phần mềm của nó. Giấy phép sớm như vậy ("GNU Emacs Copying Permission Notice") đã được sử dụng cho GNU Emacs vào năm 1985,[6] với các sửa đổi tiếp theo vào năm 1986, 1987 và 1988 lấy tên là "GNU Emacs General Public License".[7] Tương tự vậy, Giấy phép Công cộng GCC (GCC General Public License) đã được áp dụng cho GNU Compiler Collection, ban đầu được phát hành vào năm 1987.[8][9] Giấy phép BSD ban đầu cũng là một trong những giấy phép phần mềm tự do đầu tiên, bắt đầu từ năm 1988. Năm 1989, phiên bản 1 của GNU General Public License (GPL) được phát hành. Phiên bản 2 của GPL, phát hành năm 1991, tiếp tục trở thành giấy phép phần mềm miễn phí được sử dụng rộng rãi nhất.[10][11][12]

Những năm 1980

Giữa thập niên 1980, GNU project đã tạo ra các giấy phép phần mềm miễn phí copyleft cho từng gói phần mềm của nó. Giấy phép sớm như vậy ("GNU Emacs Copying Permission Notice") được dùng cho GNU Emacs năm 1985,[13] với các sửa đổi tiếp theo vào năm 1986, 1987 và 1988 với tên gọi "GNU Emacs General Public License".[14] Tương tự như vậy, GCC General Public License được áp dụng cho GNU Compiler Collection, ban đầu được xuất bản vào năm 1987.[15][16] Giấy phép BSD gốc cũng là một trong những giấy phép phần mềm tự do đầu tiên, bắt đầu từ 1988. Năm 1989, phiên bản 1 của GNU General Public License (GPL) được phát hành. Phiên bản 2 của GPL được phát hành năm 1991, đã trở thành giấy phép phần mềm tự do được sử dụng rộng rãi nhất.[17][18][19]

Thập niên 1990 đến thập niên 2000

Từ giữa thập niên 1990 và cho đến giữa thập niên 2000, phong trào nguồn mở đã điều chỉnh và tập trung ý tưởng phần mềm tự do theo hướng nhận thức công khai và kinh doanh rộng hơn.[20] Trong thời kỳ bong bóng Dot-com, bước đi của Netscape Communications phát hành trình duyệt web của họ theo giấy phép tự do năm 1998,[21][22] đã truyền cảm hứng cho nhiều công ty khác thích ứng với hệ sinh thái FOSS.[23] Trong các công ty theo xu hướng này và các dự án mới (Mozilla, Apache Foundation, và Sun...) đã viết các giấy phép FOSS riêng của họ, hoặc điều chỉnh các giấy phép hiện có. Sự gia tăng Giấy phép này sau đó được công nhận là vấn đề đối với hệ sinh thái tự do và nguồn mở do sự phức tạp về tính tương thích của giấy phép.[24] Trong khi việc tạo ra các giấy phép mới bị chậm lại sau đó, sự gia tăng giấy phép và tác động của nó được coi là một thách thức nghiêm trọng đang diễn ra đối với hệ sinh thái tự do và nguồn mở.

Từ giấy phép phần mềm tự do, GNU GPL v2 đã được thử nghiệm tại tòa án, lần đầu tiên ở Đức vào năm 2004 và sau đó tại Mỹ. Trong trường hợp ở Đức, thẩm phán đã không thảo luận rõ ràng về tính hợp lệ của các điều khoản của GPL nhưng đã chấp nhận rằng GPL phải được tôn trọng: "Nếu GPL không được các bên thỏa thuận, bị cáo bất kể thiếu các quyền cần thiết để sao chép, phân phối và làm cho phần mềm 'netfilter / iptables' có sẵn công khai."Bởi vì bị đơn không tuân thủ GPL, nên họ phải ngừng sử dụng phần mềm này..[25] Thrường hợp ở (Mỹ MySQL với Progress) đã được giải quyết trước khi phán quyết được đưa ra, nhưng tại phiên điều trần ban đầu, Thẩm phán Saris "không thấy lý do gì" rằng GPL sẽ không được thi hành..[26]

Khoảng năm 2004 luật sư Lawrence Rosen tranh luận trong bài luận Tại sao Phạm vi công cộng không phải là một giấy phép phần mềm có thể không thực sự từ bỏ và không thể hiểu là cấp phép theo giấy phép FOSS,[27] một vị trí phải đối mặt với sự phản đối của Daniel J. Bernstein những người khác.[28] Vào năm 2012, tranh chấp cuối cùng đã được giải quyết khi Rosen chấp nhận các CC0 là một giấy phép nguồn mở, trong khi thừa nhận rằng trái với bản quyền yêu cầu trước đó của mình có thể phải từ bỏ, được hỗ trợ bởi các quyết định củaTòa phúc thẩm Hoa Kỳ cho Vòng thứ chín.[29]

Năm 2007, sau nhiều năm thảo luận dự thảo,GPLv3 bản cập nhật lớn của GPLv2 đã được phát hành. Bản phát hành đã gây tranh cãi do phạm vi mở rộng đáng kể của giấy phép[30], khiến nó không tương thích với GPLv2.[31] Một số dự án FOSS lớn (Linux kernel,[32][33] MySQL,[34] BusyBox,[35][36] Blender,[37] VLC media player[38]) đã quyết định không chấp nhận GPLv3. Mặt khác, trong năm 2009, hai năm sau khi phát hành GPLv3, Quản lý văn phòng chương trình nguồn mở của Google Chris DiBona đã báo cáo rằng số lượng các dự án mã nguồn mở được cấp phép phần mềm đã chuyển sang GPLv3 từ GPLv2 là 50%, chỉ bao gồm các dự án được lưu trữ tại Google Code.[39]

Những năm 2010

Năm 2011, bốn năm sau khi phát hành GPLv3, 6.5% giấy phép nguồn mở của các dự án là GPLv3 trong khi 42,5% vẫn là GPLv2 theo dữ liệu Black Duck Software.[33][40] Sau năm 2011, nhà phân tích Matthew Aslett của 451 Group đã lập luận trong một bài đăng trên blog rằng các giấy phép copyleft đã bị từ chối và giấy phép được phép tăng lên, dựa trên số liệu thống kê từ Black Duck Software.[41][42]

Năm 2015 theo số liệu thống kê của Black Duck Software[43]GitHub,[44] giấy phép MIT trở thành giấy phép nguồn mở phổ biến nhất và GPLv2 bị đẩy xuống vị trí thứ hai trong khi giấy phép Apache theo sau sau đây đã ở vị trí thứ ba. Tháng 6 năm 2016, một phân tích về các gói của Dự án Fedora được tiết lộ là hầu hết các giấy phép sử dụng của GPL, MIT, BSD và LGPL.[45]

Định nghĩa

Giấy phép "nguồn mở" được OSI phê chuẩn

Tổ chức Open Source Initiative (OSI) định nghĩa và duy trì một danh sách các giấy phép nguồn mở được chấp thuận. OSI đồng ý với FSF trên tất cả các giấy phép Phần mềm Tự do được sử dụng rộng rãi, nhưng khác với danh sách của FSF, vì nó phê duyệt dựa trên Định nghĩa nguồn mở hơn là Định nghĩa phần mềm tự do. Nó xem xét Free Software Permissive là một tham chiếu cho giấy phép phần mềm tự do.[cần dẫn nguồn][cần giải thích] Vì vậy yêu cầu phê duyệt giấy phép của nó là khác nhau.

Giấy phép "phần mềm tự do" được FSF phê duyệt

Free Software Foundation, nhóm duy trì Định nghĩa phần mềm tự do, duy trì một danh sách không đầy đủ về Giấy phép Phần mềm Tự do.[46]

Free Software Foundation ưu ái giấy phép phần mềm tự do copyleft (share-alike) thay vì cấp phép Phần mềm Tự do miễn phí cho hầu hết các mục đích. Thư của nó phân biệt giữa các giấy phép phần mềm tự do tương thích hoặc không tương thích với Copyleft GNU General Public License. của FSF.

Điều kiện trong giấy phép phần mềm tự do

Có tồn tại một cuộc tranh luận đang diễn ra trong cộng đồng phần mềm tự do về ranh giới giữa những hạn chế nào có thể được áp dụng và vẫn được gọi là "tự do".[cần dẫn nguồn]

Chỉ "phần mềm phạm vi công cộng" và phần mềm theo Giấy phép tương tự phạm vi công cộng là hạn chế tự do.[cần dẫn nguồn] Ví dụ về các giấy phép tương tự phạm vi công cộng, giấy phép WTFPLCC0. Cấp phép có thể mang các nghĩa vụ nhỏ như ghi công tác giả nhưng cho phép thực tế tất cả các trường hợp sử dụng mã. Một số giấy phép, cụ thể là giấy phép copyleft, bao gồm các hạn chế cố ý mạnh hơn (đặc biệt là trên phân phối/nhà phân phối) để buộc các dự án có nguồn gốc đảm bảo các quyền cụ thể không thể lấy đi.

Copyleft

Giấy phép chia sẻ phần mềm tự do được viết bởi Richard Stallman giữa những năm 1980 đã đi tiên phong trong một khái niệm được gọi là "copyleft". Việc tuân thủ các quy định copyleft cho biết rằng khi các phiên bản sửa đổi của phần mềm tự do được phân phối, chúng phải được phân phối theo cùng các điều khoản như phần mềm gốc. Do đó chúng được gọi là "chia sẻ và chia sẻ tương tự" hoặc "quid pro quo". Điều này dẫn đến phần mềm mới là nguồn mở. Vì copyleft đảm bảo rằng các thế hệ sau của phần mềm cho phép tự do sửa đổi mã, đây là "phần mềm tự do". Các giấy phép không copyleft không đảm bảo rằng các thế hệ sau của phần mềm sẽ vẫn miễn phí.

Các nhà phát triển sử dụng mã GPL trong sản phẩm của họ phải cung cấp mã nguồn cho bất kỳ ai khi họ chia sẻ hoặc bán mã đối tượng.Trong trường hợp này, mã nguồn cũng phải chứa bất kỳ thay đổi nào mà nhà phát triển có thể đã thực hiện. Nếu mã GPL được sử dụng nhưng không được chia sẻ hoặc bán, mã này không bắt buộc phải có sẵn và mọi thay đổi có thể vẫn là riêng tư. Điều này cho phép các nhà phát triển và tổ chức sử dụng và sửa đổi mã GPL cho các mục đích cá nhân (nghĩa là, khi mã hoặc dự án không được bán hoặc chia sẻ) mà không cần phải thực hiện thay đổi của họ cho công chúng.

Những người ủng hộ GPL cho rằng bằng cách ủy thác rằng các tác phẩm phái sinh vẫn còn theo GPL, nó thúc đẩy sự phát triển của phần mềm tự do và đòi hỏi sự tham gia bình đẳng của tất cả người dùng. Những người phản đối GPL [47] cho rằng "không có giấy phép nào có thể đảm bảo tính sẵn có của phần mềm trong tương lai" và những nhược điểm của GPL lớn hơn lợi thế của nó.[48] Một số người cũng cho rằng hạn chế phân phối làm cho giấy phép ít mtựhdo ơn. Trong khi những người ủng hộ cho rằng không bảo toàn tự do trong quá trình phân phối sẽ làm cho nó ít tự do hơn. Ví dụ, một giấy phép không copyleft không cho phép tác giả tự do xem các phiên bản sửa đổi của tác phẩm của mình nếu nó được xuất bản công khai, trong khi đó một giấy phép copyleft không cấp quyền tự do đó.

Trả đũa bằng sáng chế

Trong những năm 1990, các giấy phép phần mềm tự do bắt đầu bao gồm các điều khoản, chẳng hạn như trả đũa bằng sáng chế, để bảo vệ chống lại các trường hợp kiện tụng bằng sáng chế phần mềm - một vấn đề chưa từng tồn tại trước đây. Mối đe dọa mới này là một trong những lý do để viết phiên bản 3 của GNU GPL vào năm 2006.[49] Trong những năm gần đây, thuật ngữ tivoization mô tả quá trình hạn chế phần cứng được sử dụng để ngăn người dùng chạy các phiên bản phần mềm sửa đổi trên phần cứng đó thiết bị TiVo là một ví dụ.Nó được FSF xem như một cách để biến phần mềm tự do thành không có hiệu quả, và là lý do tại sao họ đã chọn cấm nó trong GPLv3.[50] Hầu hết các giấy phép phần mềm tự do mới được viết kể từ cuối những năm 1990 đều bao gồm một số điều khoản trả đũa bằng sáng chế. Các biện pháp này quy định rằng các quyền của mình theo giấy phép (chẳng hạn như phân phối lại), có thể bị chấm dứt nếu một người cố gắng thực thi các bằng sáng chế liên quan đến phần mềm được cấp phép, trong một số trường hợp nhất định. Ví dụ, Apple Public Source License có thể chấm dứt quyền của người dùng nếu người dùng nói trên bắt tay vào các thủ tục kiện tụng chống lại họ do kiện tụng bằng sáng chế. Trả đũa bằng sáng chế xuất hiện để đáp ứng với sự gia tăng và lạm dụng các bằng sáng chế phần mềm.

Hạn chế phần cứng

GNU GPL v3 bao gồmbao gồm các ngôn ngữ cụ thể cấm các hạn chế bổ sung được thực thi bởi các hạn chế phần cứng và quản lý quyền kỹ thuật số (DRM), một thực hành FSF gọi tivoization sau Tivo sử dụng phần mềm GPL trên các thiết bị không cho phép người dùng sửa đổi phần mềm đó.

Ghi nhận tác giả, tuyên bố từ chối trách nhiệm và thông báo

Phần lớn giấy phép phần mềm tự do yêu cầu phần mềm sửa đổi không yêu cầu được sửa đổi. Một số giấy phép cũng yêu cầu giữ bản quyền được tạo. Một ví dụ như vậy là GNU GPL v2, yêu cầu các chương trình tương tác in thông tin bảo hành hoặc giấy phép, có thể không xóa các thông báo này khỏi các phiên bản được sửa đổi nhằm phân phối.

Vấn đề thực tế với giấy phép

Tương thích giấy phép

License compatibility between common FOSS software licenses according to David A. Wheeler (2007): the vector arrows denote a one directional compatibility, therefore better compatibility on the left side ("permissive licenses") than on the right side ("copyleft licenses")[51]

Giấy phép của các gói phần mềm chứa các yêu cầu mâu thuẫn nhau, khiến cho không thể kết hợp mã nguồn từ các gói đó để tạo các gói phần mềm mới.[52] Khả năng tương thích giấy phép giữa giấy phép copyleft và giấy phép khác thường chỉ là khả năng tương thích một chiều.[53] Đặc tính "tương thích một chiều" này bị chỉ trích bởi Apache Foundation, tổ chức cấp Giấy phép Apache mà không có đặc điểm này.[54] Giấy phép không copyleft, chẳng hạn như giấy phép cấp phép cho FOSS, có tương tác giấy phép ít phức tạp hơn và thường thể hiện khả năng tương thích giấy phép tốt hơn.[55][56] Ví dụ: nếu một giấy phép nói "phiên bản sửa đổi phải đề cập đến nhà phát triển trong bất kỳ tài liệu quảng cáo nào" và giấy phép khác nói "phiên bản sửa đổi không thể chứa các yêu cầu phân bổ bổ sung", thì, nếu ai đó kết hợp gói phần mềm sử dụng một giấy phép với gói phần mềm trong đó sử dụng cái khác, sẽ không thể phân phối kết hợp vì những yêu cầu mâu thuẫn này không thể được đáp ứng đồng thời. Vì vậy, hai gói này sẽ không tương thích giấy phép. Khi nói đến giấy phép phần mềm copyleft, chúng vốn không tương thích với các giấy phép copyleft khác, ngay cả bản thân GPLv2 cũng không tương thích với GPLv3.[31][57]

Mục đích sử dụng

Các hạn chế khi sử dụng phần mềm ("hạn chế sử dụng") thường không được chấp nhận theo các bản phân phối dựa trên FSF, OSI, Debian, hay BSD. Các ví dụ bao gồm việc cấm sử dụng phần mềm cho các ứng dụng phi cá nhân, cho mục đích quân sự, để so sánh hoặc đo benchmark, cho các phương tiện nghi vấn đạo đức[58] hoặc trong các tổ chức thương mại.[59]

Thị phần

Trong khi về mặt lịch sử, giấy phép FOSS được sử dụng rộng rãi nhất là GPLv2, vào năm 2015, theo Black Duck Software[60] giấy phép MIT cho phép đã thay thế GPLv2 ở vị trí thứ hai trong khi giấy phép Apache cho phép ở vị trí thứ ba. Một nghiên cứu từ năm 2012, sử dụng dữ liệu công khai có sẵn, chỉ trích Black Duck Software vì không xuất bản phương pháp luận của họ được sử dụng trong việc thu thập số liệu thống kê.[61] Daniel German, giáo sư Khoa Khoa học Máy tính tại Đại học VictoriaCanada, đã trình bày một bài nói chuyện vào năm 2013 về những thách thức về phương pháp luận trong việc xác định giấy phép phần mềm tự do được sử dụng rộng rãi nhất, và chỉ ra cách ông không thể nhân rộng kết quả từ Black Duck Software.[62]

Một nghiên cứu trên GitHub năm 2015 về dữ liệu thống kê của họ cho thấy rằng giấy phép MIT là giấy phép FOSS nổi bật nhất trên nền tảng đó.[63]

Tháng 6/2016 một phân tích về các gói của Fedora Project cho thấy là giấy phép được sử dụng nhiều nhất trong họ GPL, theo sau là MIT, BSD, họ LGP, Artistic (cho các gói Perl), LPPL (cho các gói texlive), và ASL. GNU GPLv2+ là giấy phép phổ biến nhất[64]

Xem thêm

Ghi chú

Chú thích

Liên kết ngoài