052.1 Bài 1
Chứng chỉ: |
Open Source Essentials |
---|---|
Phiên bản: |
1.0 |
Chủ đề: |
052 Giấy phép dành cho Phần mềm Mã nguồn Mở |
Mục tiêu: |
052.1 Các khái niệm về Giấy phép Phần mềm Mã nguồn Mở |
Bài học: |
1 trên 1 |
Giới thiệu
Bất kỳ một nhà phát triển phần mềm nào cũng sẽ đề cao việc một vấn đề đã có sẵn những phương án giải quyết hiệu quả. Nếu giải pháp đó lại sẵn có ở trên mạng, một phản xạ dễ hiểu sẽ là dùng thử — sao chép hoặc liên kết mã nguồn hiện có vào cơ sở mã của chính mình, kiểm tra nó và nếu nó hoạt động thì sẽ để luôn nó ở đó — và sau đó là quên nó đi.
Tuy vậy, chúng ta cũng phải thận trọng ở một số điểm. Thông thường, mã nguồn phần mềm sẵn có trên mạng internet đều được bảo vệ bởi giấy phép mã nguồn mở và tự do (FOSS). Ở chương này, chúng ta sẽ đi vào một số khái niệm cơ bản về FOSS từ góc nhìn pháp lý và lý do tại sao chúng ta không nên coi mã nguồn FOSS là một điều hiển nhiên, mà trái lại là phải tuân thủ chặt chẽ các điều kiện cấp phép của chúng.
Để làm cơ sở cho việc nắm rõ nghĩa vụ pháp lý của người dùng đối với phần mềm, hãy hiểu rằng giấy phép chi phối hầu hết tất cả các phần mềm. Giấy phép là một loại hợp đồng. Tất cả các phần mềm (bao gồm cả các trang web) phải được phân phối kèm theo phiên bản giấy phép bằng văn bản (thường được gọi là “điều khoản và điều kiện”). Một số chương trình và trang web sẽ yêu cầu người dùng đánh dấu vào một ô thông báo xác nhận rằng họ đã đọc các điều khoản và điều kiện của phần mềm (và người dùng nên làm vậy — dù trong hầu hết mọi trường hợp chúng ta đều không hề thực hiện). Dù thế nào, người dùng cũng đều phải ngầm chấp nhận giấy phép khi họ sử dụng phần mềm.
Định nghĩa về Phần mềm Mã nguồn Mở và Phần mềm Tự do
Phần mềm mã nguồn mở và tự do đã xuất hiện từ khá lâu và các thuật ngữ này thường đi đôi với nhau. Tuy nhiên, có một số khác biệt giữa cái mà một số cá nhân tuyên bố là “phần mềm tự do” và ý nghĩa chính thức của phần mềm tự do cũng như phần mềm mã nguồn mở. Cảnh báo tiết lộ nội dung: “Mã nguồn mở” không chỉ có nghĩa là bất kỳ ai cũng có thể xem mã nguồn — định nghĩa này sẽ là của phần mềm “mã nguồn có sẵn”. Phần mềm mã nguồn mở và tự do có thể làm được nhiều hơn thế.
Phần mềm mã nguồn mở và tự do trái ngược với các loại độc quyền hoặc mã nguồn đóng vì chúng không cung cấp tất cả các quyền tự do sẽ được thảo luận tới trong bài học này.
Có lẽ định nghĩa được trích dẫn nhiều nhất về phần mềm tự do là:
Think of “free speech,” not “free beer.”
Dịch nghĩa: Coi nó là “tự do” như trong “tự do ngôn luận” chứ không phải trong "`vào cổng tự do`*".
*Bản dịch đã được thay đổi để phù hợp với văn phong và nhận thức trong tiếng Việt.
Selling Free Software
Chúng ta sẽ khám phá những điều thú vị trong tuyên bố trên ở các phần sau.
Tự do như trong Tự do Ngôn luận: Quyền Tự do thực sự dành cho Người dùng
Một mặt, các nhà phát triển có thể đưa ra một quyết định đơn giản là bỏ qua những phần thưởng cũng như những khó khăn khi bán phần mềm của họ, và chỉ cho đi mà không cần đền bù. Trong tiếng Anh, phần mềm này là “tự do” theo nghĩa là không ai phải trả tiền cho nó mà sẽ tự do như ra vào một công viên công cộng*. Việc phân phối miễn phí này không liên quan gì đến các điều kiện cấp phép bổ sung và sẽ khiến người dùng luôn phải xem xét một cách kỹ lưỡng hơn (chẳng hạn như có thể họ đã không được cấp các quyền cần thiết để thay đổi hoặc tái phân phối phần mềm).
Mặt khác, các nhà phát triển cũng có thể lựa chọn biến phần mềm của họ thành “phần mềm tự do” theo định nghĩa của Stallman. Thuật ngữ này (được ông đặt ra vào những năm 1980) đề cập đến các quyền tự do thiết yếu của người dùng có thể được tóm tắt như sau:
-
Quyền chạy phần mềm
-
Quyền nghiên cứu phần mềm
-
Quyền trao nó cho người khác (tái phân phối)
-
Quyền tái phân phối các bản sao của các phiên bản đã được sửa đổi
“Phần mềm tự do” trong định nghĩa này được ủng hộ bởi Tổ chức Phần mềm Tự do (FSF) nơi đã đưa ra thuật ngữ copyleft (không có ý nghĩa pháp lý mà thiên về thể hiện sự cân nhắc mang tính triết lý) để mô tả các đặc điểm của giấy phép trên phần mềm tự dọ.
Phần mềm Mã nguồn mở
Bên cạnh phong trào phần mềm tự do, cộng đồng những người ủng hộ mã nguồn mở đã nổi lên vào cuối những năm 1990 như một cách làm cho phần mềm tự do trở nên dễ hiểu và phổ biến hơn đối với những người nằm ngoài phong trào. Một tổ chức phi lợi nhuận là Sáng kiến Mã nguồn mở (OSI) đã được thành lập vào năm 1998 và Linus Torvalds - tác giả đầu tiên của hạt nhân Linux - đã ủng hộ khái niệm này. Sáng kiến Mã nguồn mở đã chính thức hóa Định nghĩa Mã nguồn mở bao gồm các tiêu chí sau:
-
Tái phân phối tự do: Người ta được tự do quyết định cách tái phân phối chương trình dù là miễn phí hay là để bán, miễn là không yêu cầu phí bản quyền hoặc phí giấy phép. Quyền tự do này bao gồm việc kết hợp chương trình này vào một chương trình khác.
-
Tính khả dụng của mã nguồn, có thể là trực tuyến hoặc được cung cấp cùng với phần mềm.
-
Cho phép sáng tạo và phân phối các sản phẩm phái sinh và bản sửa đổi.
-
Tính toàn vẹn mã nguồn của tác giả: Việc sửa đổi có thể bị hạn chế nếu người nhận được phép sửa đổi chương trình thông qua các bản vá tại thời điểm xây dựng và phân phối các bản vá này cùng với mã nguồn. Việc phân phối phần mềm được xây dựng từ mã nguồn đã qua sửa đổi có thể là không bị hạn chế.
-
Không phân biệt đối xử với cá nhân hoặc nhóm: Ví dụ: một giấy phép sử dụng phần mềm “chỉ dành cho giáo viên” sẽ không đáp ứng được Định nghĩa về Mã nguồn mở.
-
Không phân biệt đối xử giữa các mục đích: Ví dụ: không hạn chế mục đích thương mại.
-
Phân phối giấy phép: Bất cứ ai nhận chương trình đều sẽ có giấy phép gốc giống nhau.
-
Giấy phép không được dành riêng cho một sản phẩm.
-
Giấy phép không được hạn chế phần mềm khác: Ví dụ: phần mềm khác đi kèm với phần mềm này có thể có một giấy phép khác.
-
Giấy phép phải trung lập trên phương diện công nghệ.
Tính Tự do và Mã nguồn mở
Tổ chức Phần mềm Tự do (FSF) đã không ủng hộ thuật ngữ "mã nguồn mở" và nhấn mạnh rằng nó đã lấp đi mục tiêu chính là tính tự do. Vì vậy, trong khi những người ủng hộ phần mềm tự do và phần mềm mã nguồn mở dường như đang theo đuổi và ủng hộ cùng một khái niệm thì các phong trào lại có những động cơ riêng biệt. Đơn giản mà nói, những người ủng hộ phần mềm tự do nhấn mạnh đến quyền của các nhà phát triển và người dùng, trong khi những người ủng hộ mã nguồn mở lại ưu tiên việc sử dụng rộng rãi cũng như thành công của phần mềm.
Có khá nhiều phần mềm tự do đạt đủ điều kiện để được coi là mã nguồn mở; trong khi đó, có nhiều giấy phép cũng được coi là mã nguồn mở (được OSI phê duyệt) nhưng lại không tự do theo như FSF.
Bởi sự khác biệt giữa các mục tiêu và động cơ liên quan đến mã nguồn mở và tự do nhiều hơn là nội dung của các giấy phép, và vì cả hai thuật ngữ vẫn được sử dụng thường xuyên, nhiều người ủng hộ tham chiếu cả hai định nghĩa này bằng cách sử dụng các cụm từ là FOSS (Free and Open Source Software) hoặc FLOSS (Free/Libre and Open Source Software). Thuật ngữ “libre” được dùng để chỉ sự tự do trong nhóm ngôn ngữ Rôman.
Các loại Phần mềm Tự do tính phí khác
Ngoài các danh mục rộng rãi về FOSS và phần mềm độc quyền, chúng ta còn có một loạt các chiến lược phân phối khác. Một trong số các chiến lược này là:
- Phần mềm chia sẻ (Shareware)
-
Thuật ngữ này thường đề cập đến các phần mềm độc quyền có mục đích thương mại nhưng có thể được sử dụng miễn phí với chức năng hạn chế cho đến khi người dùng quyết định mua phiên bản đầy đủ.
- Phần mềm miễn phí (Freeware)
-
Thuật ngữ này mô tả phần mềm được phân phối miễn phí và không có giới hạn về việc sử dụng, nhưng cũng không nhất thiết phải tuân theo định nghĩa chính thức về phần mềm tự do. Phần mềm miễn phí trong nhiều trường hợp đều là phần mềm độc quyền và mã nguồn thường không được phát hành.
- Phần mềm mã nguồn có sẵn (Source available software)
-
Đôi khi các nhà phát triển phần mềm độc quyền sẽ cung cấp mã nguồn của họ (ví dụ như nhằm mục đích tạo điều kiện cho việc báo cáo lỗi) nhưng lại áp đặt việc mua lại giấy phép độc quyền như một điều kiện để sử dụng mã nguồn trong các dự án khác. Không nên nhầm lẫn tính khả dụng có các giới hạn nghiêm ngặt này với phần mềm mã nguồn mở đích thực.
- Phần mềm mã nguồn chia sẻ (Shared source software)
-
Thuật ngữ này được Microsoft giới thiệu vào năm 2001 khi công ty này quyết định cung cấp một số mã nguồn phần mềm của họ lên mạng để nghiên cứu và thử nghiệm. Đừng nhầm lẫn định nghĩa có phạm vi rất hẹp này với phần mềm chia sẻ hoặc phần mềm mã nguồn có sẵn.
- Phần mềm thuộc phạm vi công cộng (Public-domain software)
-
Đây là phần mềm mà các tác giả đã từ bỏ mọi quyền bản quyền. Định nghĩa này không áp dụng ở tất cả các khu vực pháp lý (đặc biệt với những khu vực mà tác giả được cấp quyền "droit d’auteur`" hoặc “quyền tác giả” như ở Pháp hoặc Đức). Các giấy phép như “Unlicense” đã được giới thiệu nhắm tới tác dụng tương tự. Hơn nữa, phần mềm cũng có thể thuộc phạm vi công cộng khi hết thời hạn bản quyền.
Các nguyên tắc của Luật Bản quyền và những ảnh hưởng đến từ Giấy phép Phần mềm Mã nguồn mở
Điều đầu tiên và quan trọng nhất: Nếu không có sẵn thông tin giấy phép cho một tệp hoặc một dự án mã nguồn nhất định, chúng ta không thể mặc định rằng tệp hoặc dự án đó không được bảo vệ bản quyền. Thực tế thì ngược lại, ít nhất là vì hầu hết các quốc gia trên thế giới đều đã ký kết Công ước Berne kể từ năm 1887.
Trong công ước này, các quốc gia ký kết đã đồng ý rằng một tác phẩm văn học hoặc nghệ thuật sẽ lập tức được bảo vệ bản quyền ngay khi nó bắt đầu tồn tại (hay nói cách khác là ngay khi nó được "định hình" để trở thành một phương tiện). Điều đó có nghĩa là tác giả sẽ không phải đăng ký hoặc xin bản quyền. Họ vẫn có thể làm việc này ở một số quốc gia và việc đăng ký có thể sẽ trở nên cần thiết khi đối mặt với các hành vi vi phạm ở một số khu vực pháp lý bao gồm cả Hoa Kỳ.
Ngoài ra, các bên ký kết đều đồng ý tôn trọng bản quyền của bất kỳ tác giả nào thuộc về một quốc gia ký kết khác; tính đến tháng 11 năm 2022, số lượng các quốc gia này chiếm tới 181 trong tổng số 195 quốc gia trên thế giới.
Tuy nhiên, không phải bất cứ thứ gì được tạo ra cũng đều sẽ được bảo vệ bản quyền. Để đủ điều kiện để được coi là một tác phẩm được bảo vệ bản quyền, nó cần phải đáp ứng một số tiêu chí cơ bản. Ví dụ như các sự kiện và ý tưởng không thể được bảo vệ bản quyền, nhưng một văn bản lý giải một ý tưởng lại có thể được bảo vệ nếu nó đạt đến một mức độ nguyên bản nhất định. Mức độ nguyên bản ở từng nơi trên thế giới có thể sẽ khác nhau, nhưng rào cản bảo hộ sẽ rất thấp trong nhiều trường hợp. Nhiều khu vực pháp lý hiện đang xem xét mức độ mà trí tuệ nhân tạo có thể được sử dụng để tạo ra một tác phẩm xứng đáng với cái được gọi là tính nguyên bản và từ đó cũng xứng đáng được bảo vệ bản quyền.
Tùy thuộc vào khu vực pháp lý, các chương trình máy tính sẽ được bảo vệ quyền dưới dạng các tác phẩm văn học: tức là bản quyền không áp dụng cho ý tưởng hoặc thuật toán mà áp dụng cho việc triển khai của nó trong mã nguồn.
Bản quyền trao cho tác giả các quyền độc quyền (bên cạnh những quyền khác) để sao chép, sửa đổi, cấp phép lại, phân phối và phát hành tác phẩm. Việc tiếp nhận tác phẩm là miễn phí; vì vậy, người ta không cần giấy phép để đọc một cuốn sách hay nghe một bài hát trên radio, miễn là việc đó không yêu cầu phải tạo ra một bản sao vĩnh viễn.
Bởi quyền của tác giả ra đời mà không cần phải đăng ký nên bất kỳ ai muốn sao chép, sửa đổi, cấp phép lại, phân phối hoặc phát hành tác phẩm của tác giả khác đều phải xin phép trước. Đây là nơi các giấy phép phát huy tác dụng như những hợp đồng giữa tác giả của tác phẩm và những người muốn thực hiện một số quyền độc quyền của tác giả.
Giấy phép FOSS có thể được cung cấp cho bất kỳ ai mà không cần trả phí. Bất cứ ai cũng có thể tạo giấy phép của riêng mình và đăng ký để được OSI hoặc FSF phê duyệt. Tuy nhiên, việc sử dụng giấy phép FOSS sẵn có rất được khuyến khích vì nó đã được đại chúng chấp nhận; hơn thế nữa, nội dung của giấy phép và các nghĩa vụ của nó cũng đã trở nên quen thuộc đối với những người sử dụng phần mềm được trang bị đầy đủ kiến thức. Trên thực tế, chỉ một số ít trong số vô vàn các giấy phép được FSF hoặc OSI phê duyệt là được sử dụng phổ biến.
Nguyên tắc của Luật Sáng chế
Ngược lại với bản quyền (không bảo vệ các ý tưởng), bằng sáng chế sẽ bảo vệ các phát minh (ý tưởng) mà không (hoặc chưa) cần ý tưởng của chúng phải được "định hình" thông qua máy móc hay các quy trình. Một điểm khác biệt nữa là các nhà phát minh sẽ phải nộp đơn xin cấp bằng sáng chế một cách rõ ràng và đăng ký chúng với cơ quan cấp bằng sáng chế của quốc gia nơi yêu cầu bảo hộ.
Để tránh đi quá sâu vào luật sáng chế và các yêu cầu của nó, chúng ta sẽ chỉ tập trung vào một vấn đề trọng tâm: việc bảo vệ bằng sáng chế yêu cầu (bên cạnh các tiêu chí khác) một ý tưởng có một khía cạnh kỹ thuật nhất định. Từ trước tới nay, những ý tưởng về một công thức nấu ăn mới hoặc một trò chơi cờ bàn (board game) mới không đủ điều kiện để được bảo hộ bằng sáng chế; trong khi đó, các ý tưởng về một chiếc máy nấu ăn mới hoặc một máy chơi trò chơi mới lại có thể có đủ điều kiện để được bảo hộ.
Trong bối cảnh của lập trình máy tính, câu hỏi đặt ra là liệu phần mềm có được bảo hộ bởi bằng sáng chế hay không. Điều này phụ thuộc vào cả vùng pháp lý và các ứng dụng cụ thể. Ví dụ, ở Đức, các chương trình máy tính như vậy thường không được bảo hộ bởi bằng sáng chế. Tuy nhiên, nếu các chương trình được kết hợp với một đối tượng vật lý — ví dụ như khi phần mềm điều khiển hệ thống phanh tự động trong ô tô — thì nó có thể yêu cầu bảo hộ bằng sáng chế cho ứng dụng bao gồm thành phần vật lý của phanh chứ không phải phần mềm và nhờ vậy có thể đạt đủ điều kiện để được bảo hộ.
Ở các khu vực pháp lý khác (chẳng hạn như Hoa Kỳ), bằng sáng chế có thể được cấp cho các chương trình máy tính như vậy, tùy thuộc vào sự phát triển của án lệ.
Khái niệm về bảo hộ với bằng sáng chế cần được ghi nhớ khi thực hiện cấp phép FOSS. Một số giấy phép (chẳng hạn như GPLv3) cho phép cấp bằng sáng chế về phần mềm FOSS bằng cách cấp quyền rõ ràng cho việc sử dụng phần mềm. Ngược lại, một số giấy phép thậm chí còn không đề cập đến các bằng sáng chế (chẳng hạn như giấy phép Điều khoản BSD-3) và các giấy phép khác lại loại trừ chúng một cách rõ ràng (chẳng hạn như các giấy phép Tài sản Sáng tạo Công cộng - Creative Commons). Tuy nhiên, trong một số trường hợp nhất định, việc cấp bằng sáng chế có thể được ám chỉ trong giấy phép hoặc có thể được ghi vào giấy phép.
Note
|
Các giấy phép FOSS khác nhau sẽ được đề cập đến trong các bài học tiếp theo. |
Đặc biệt là khi xử lý phần mềm nhúng (như phần mềm trong thiết bị âm thanh), chúng ta cần đặc biệt chú ý đến các bằng sáng chế liên quan đến phần mềm (ví dụ như tiến hành kiểm tra bằng sáng chế của tác giả phần mềm).
Hợp đồng cấp phép
Như đã đề cập từ trước, giấy phép là hợp đồng giữa tác giả của tác phẩm và người muốn thực hiện một số quyền độc quyền của tác giả. Một số giấy phép FOSS mở rộng hơn (chẳng hạn như Giấy phép Công cộng GNU phiên bản 2 và phiên bản 3) sẽ bao gồm cả các điều khoản về việc chấm dứt hợp đồng. Các giấy phép FOSS luôn bao gồm các khoản cấp quyền liên quan đến các quyền tự do trung tâm. Thông thường, các quyền sau đây sẽ được nêu rõ hoặc có thể được ngầm hiểu trong văn bản giấy phép:
…quyền sử dụng, sao chép, sửa đổi, hợp nhất, phát hành, phân phối, cấp phép lại và/hoặc bán bản sao của Phần mềm…
Người quản lý giấy phép là những cá nhân — hoặc trong nhiều trường hợp là các tổ chức (như FSF) — quản lý các phiên bản của giấy phép. Ví dụ: mục 9 của GPLv2 tuyên bố FSF là người quản lý giấy phép:
Tổ chức Phần mềm Tự do đôi khi có thể phát hành các phiên bản sửa đổi và/hoặc phiên bản mới của Giấy phép Công cộng Chung. Các phiên bản mới như vậy sẽ có tinh thần tương tự như phiên bản hiện tại nhưng có thể có các chi tiết khác nhau để giải quyết các vấn đề hoặc mối quan ngại mới.
Một số người quản lý giấy phép cũng sẽ phát hành các câu hỏi thường gặp (FAQs) để giúp trả lời các câu hỏi liên quan đến giấy phép. Những câu hỏi này có thể sẽ rất hữu ích trong việc trao đổi giữa người được cấp phép và người cấp phép.
Phân phối
Việc phân phối phần mềm (đặc biệt là ở dạng mã nhị phân hoặc mã nguồn) là khía cạnh trung tâm của hầu hết các giấy phép FOSS vì việc chỉ sử dụng phần mềm FOSS thường không kích hoạt bất kỳ nghĩa vụ cấp phép nào:
Các hoạt động khác ngoài việc sao chép, phân phối và sửa đổi không được bao gồm trong Giấy phép này mà nằm ngoài phạm vi của nó. Hành vi chạy Chương trình không bị hạn chế…
Hầu hết các nghĩa vụ cấp phép chỉ phát sinh khi phân phối — tức là chuyển một bản sao đã qua sửa đổi hoặc chưa qua sửa đổi, có thể là trên phương tiện hữu hình như CD hoặc thông qua việc tải xuống. Trong một số trường hợp, các điều kiện cấp phép cũng sẽ được kích hoạt nếu phần mềm đang chạy trên một máy chủ (tức là chưa bao giờ phân phối mã nguồn) trong khi người dùng tương tác với phần mềm.
Việc phân phối phần mềm thực thi có thể sẽ yêu cầu phân phối mã nguồn, văn bản giấy phép và thông báo bản quyền, tùy thuộc vào loại giấy phép FOSS. Một số giấy phép sẽ yêu cầu phải đưa thông báo sửa đổi vào mã nguồn nếu mã sửa đổi đang được phân phối.
Việc phân phối cũng có thể kích hoạt các hiệu ứng copyleft — tức là khi phân phối phần mềm được cấp phép GPLv3 đã được sửa đổi, mã nguồn của toàn bộ phần mềm đã sửa đổi có thể sẽ phải được phát hành theo GPLv3.
Mặc dù FOSS có thể được bán nhưng nó lại thường không bị áp đặt phí cấp phép. Điều này có nghĩa là một ai đó có thể bán phần mềm theo giấy phép GPLv3 dưới dạng nhị phân, nhưng vì mã nguồn đang sẵn có (hoặc phải được cung cấp) nên những người quan tâm đến phần mềm luôn có thể chọn lấy các nguồn (có thể là từ một người khác mà không mất phí) và xây dựng phần mềm từ các nguồn đó.
Sản phẩm phái sinh
Khi một nhóm nhà phát triển kết hợp mã từ dự án của người khác vào dự án của riêng họ, kết quả của nó có thể là một sản phẩm dẫn xuất hoặc phái sinh. Các chi tiết khác nhau sẽ tùy theo từng dự án và từ giấy phép này sang giấy phép khác, và bởi vì các chi tiết này đòi hỏi tính tinh vi ở một mức nhất đinh với các kỹ thuật phát triển phần mềm, có thể nói là các nhà phát triển bắt buộc phải đảm bảo rằng phương thức kết hợp mã mà họ sử dụng tuân thủ theo đúng giấy phép.
Vấn đề quan trọng nhất liên quan đến sản phẩm phái sinh là đối với một số giấy phép (như GPL), sản phẩm phái sinh phải được phát hành theo cùng một giấy phép. Những giấy phép như vậy được gọi là giấy phép tương hỗ (reciprocal).
Ý nghĩa thực tế trước mắt của một yêu cầu tương hỗ là ở chỗ, nếu chúng ta sử dụng mã GPL trong dự án của riêng mình theo cách làm cho mã của mình trở thành một nguồn phái sinh, chúng ta sẽ phải tiết lộ mã nguồn của mình và để người khác xây dựng sản phẩm từ đó. Yêu cầu cấp phép này được một số nhà phát triển rất yêu thích bởi họ muốn khuyến khích nhiều người sử dụng giấy phép miễn phí hơn. Tuy nhiên, giấy phép sẽ làm giảm đi sự hấp dẫn của GPL đối với một số nhà phát triển muốn sử dụng mã tự do.
Nhiều giấy phép mã nguồn mở và tự do khác không áp đặt yêu cầu đó. Chúng có xu hướng được gọi là giấy phép linh hoạt (permissive).
Hậu quả của việc vi phạm Giấy phép
Nếu tại thời điểm phân phối các điều kiện cấp phép không được đáp ứng (ví dụ: nếu phần mềm được cấp phép GPLv3 được phân phối dưới dạng nhị phân không kèm theo một mã nguồn), hợp đồng cấp phép sẽ bị vi phạm. Hậu quả của việc vi phạm giấy phép sẽ phụ thuộc vào giấy phép. Ví dụ: vi phạm giấy phép GPLv3 có thể dẫn đến việc chấm dứt giấy phép. Bất kỳ hành động nào khác đều sẽ cần có sự cho phép của tác giả (ví dụ như nếu phân phối phần mềm thì sẽ cấu thành hành vi vi phạm bản quyền).
Nếu một công ty đưa phần mềm được cấp phép GPLv3 vào một sản phẩm và vi phạm giấy phép thì khiếu nại có thể được đưa ra để yêu cầu công ty thu hồi sản phẩm của họ. Việc cố ý vi phạm bản quyền thậm chí có thể dẫn đến các cáo buộc hình sự.
Một số giấy phép sẽ có các điều khoản cụ thể cho phép người được cấp phép khắc phục vi phạm trong vòng 30 ngày kể từ ngày thông báo. Nếu người phân phối phần mềm tuân thủ theo giấy phép trong khoảng thời gian này thì giấy phép sẽ được khôi phục.
Khả năng tương thích và không tương thích của Giấy phép
Các dự án phần mềm lớn thường bao gồm các phần mềm tuân theo các giấy phép khác nhau, mỗi giấy phép sẽ chỉ rõ các yêu cầu riêng của nó. Những dự án như vậy có thể gặp phải trở ngại khi sử dụng các phần mềm yêu cầu giấy phép của nó được sử dụng trên các sản phẩm phái sinh. Điều này là do các điều khoản cấp phép của các giấy phép copyleft đó có thể sẽ khác nhau dẫn đến việc không tương thích. Việc phát hành hoặc phân phối một dự án phần mềm tích hợp các thành phần theo các giấy phép copyleft khác nhau có thể sẽ không thể thực hiện mà không vi phạm một trong các giấy phép.
Một số giấy phép copyleft sẽ liệt kê rõ ràng các giấy phép tương thích để giúp dễ dàng sử dụng thành phần được cấp phép copyleft theo một giấy phép copyleft khác.
Hầu hết các giấy phép linh hoạt đều sẽ tương thích với các giấy phép khác. Ví dụ: các thành phần được MIT cấp phép có thể được sử dụng trong dự án được cấp phép GPLv3 mà không gặp phải rủi ro vi phạm cấp phép. Tuy nhiên, trong mọi trường hợp, một thành phần được cấp phép GPLv3 sẽ không thể được sử dụng trong dự án được MIT cấp phép mà không vi phạm các điều khoản của GPLv3. Do đó, khả năng tương thích không phải lúc nào cũng sẽ hoạt động theo cả hai chiều.
Trước khi một dự án phần mềm được đưa ra thị trường, các nhà phát triển và cố vấn pháp lý của họ nên tiến hành kiểm tra kỹ lưỡng khả năng tương thích của giấy phép để tránh vi phạm giấy phép. Việc quản lý tuân thủ mã nguồn mở nên được tích hợp vào các giai đoạn đầu của quy trình phát triển phần mềm để tránh sự chậm trễ trong việc phân phối phần mềm (ví dụ như do các vấn đề không tương thích với giấy phép). Hãy nghiên cứu kỹ mã nguồn để tìm các giấy phép hiện hành (ví dụ như bằng cách sử dụng các công cụ quét phần mềm) và kiểm tra xem liệu tất cả các điều kiện cấp phép có được đáp ứng hay không.
Cấp phép kép và Đa giấy phép
Một số phần mềm sẽ có thể có sẵn theo nhiều giấy phép. Ví dụ: người cấp phép có thể chọn cấp phép kép cho dự án của họ theo cả giấy phép copyleft như GPLv3 và một giấy phép độc quyền. Ví dụ: giấy phép độc quyền có thể được yêu cầu nếu người được cấp phép tiềm năng kết hợp mã vào sản phẩm độc quyền của riêng họ. Mỗi nhà phát triển sẽ xác định xem họ có thể tuân thủ các điều kiện GPLv3 hay không hay sẽ phải có giấy phép độc quyền và rất có thể là phải trả phí cấp phép.
Như đã chỉ ra trước đó, một số phần mềm có thể bao gồm các thành phần tuân theo nhiều giấy phép khác nhau với các điều kiện cấp phép khác nhau. Mặc dù hầu hết các giấy phép thường không gây ra tình trạng không tương thích nhưng các giấy phép khác nhau có thể có các yêu cầu khác nhau đối với các phần khác nhau của phần mềm.
Bài tập Hướng dẫn
-
FOSS là cụm viết tắt của khái niệm nào?
-
Điều nào sau đây rõ ràng thuộc về các quyền tự do thiết yếu của người dùng đối với phần mềm miễn phí?
Chạy phần mềm
Nghiên cứu phần mềm
Sao chép phần mềm
Thay đổi phần mềm
Phát hành phần mềm
Tái phân phối phần mềm
-
Có phải mã nguồn được tìm thấy trên internet mà không có thông tin cấp phép thì bất kỳ ai cũng có thể sửa đổi và phân phối không? Hãy giải thích vì sao.
-
Phần mềm có thể được cấp bằng sáng chế không?
Có
Không
Tuỳ từng trường hợp
-
Người quản lý giấy phép là ai?
Giống như người cấp phép
Người có thể đề xuất các phiên bản giấy phép trong tương lai
Người có thể chấm dứt giấy phép
Người quản lý phần mềm của máy bay
-
Khả năng tương thích của giấy phép có phải luôn luôn hoạt động theo cả hai chiều hay không?
Có, nếu hai giấy phép tương thích thì việc A được đưa vào B hay B được đưa vào A không thành vấn đề.
Không, trong một số trường hợp, giấy phép A có thể được đưa vào dự án theo giấy phép B, nhưng giấy phép B có thể lại không được phép phân phối theo giấy phép A.
Không, khả năng tương thích của giấy phép luôn luôn là một chiều.
Bài tập Mở rộng
-
Giấy phép GPLv2 và LGPLv2.1 có tương thích không? Hãy đưa ra một lời giải thích ngắn gọn.
-
Phần mềm có thể được phát hành theo giấy phép Nội dung Mở (chẳng hạn như CC-BY) không?
Có, giấy phép CC có thể được áp dụng cho bất kỳ sản phẩm nào có bản quyền.
Không, phần mềm chỉ có thể được bảo vệ bởi bằng sáng chế.
Không, giấy phép CC không áp dụng cho phần mềm.
-
Tại sao việc tái phân phối quan trọng đối với việc cấp phép FOSS?
Tóm tắt
Bài học này đã giới thiệu các khái niệm cơ bản về phần mềm mã nguồn mở và tự do cũng như các khái niệm cơ bản về bản quyền và bằng sáng chế. Nó giải thích một số nền tảng và lịch sử của cả phần mềm tự do và phần mềm mã nguồn mở, cũng như giúp phân biệt cả hai phần mềm này với các khái niệm cấp phép độc quyền. Định nghĩa Mã Nguồn Mở của OSI giúp phân loại các giấy phép thành các giấy phép mã nguồn mở.
Trong khi đã có hàng chục giấy phép FOSS tồn tại, bất cứ ai cũng đều có thể tự do đưa ra các giấy phép bổ sung.
Không nên đánh giá thấp khái niệm cấp phép: Giấy phép cung cấp các quyền xử lý phần mềm và các quyền này vốn chỉ dành riêng cho tác giả (khi không có giấy phép). Việc vi phạm giấy phép có thể dẫn đến tranh chấp pháp lý. Do đó, chúng ta nên tìm kiếm tư vấn pháp lý về việc tuân thủ giấy phép trước khi phần mềm được phân phối hoặc tích hợp vào mã của dự án khác.
Đáp án Bài tập Hướng dẫn
-
FOSS là cụm viết tắt của khái niệm nào?
Free and Open Source Software (Phần mềm Mã nguồn mở và Tự do).
-
Điều nào sau đây rõ ràng thuộc về các quyền tự do thiết yếu của người dùng đối với phần mềm miễn phí?
Chạy phần mềm
X
Nghiên cứu phần mềm
X
Sao chép phần mềm
Thay đổi phần mềm
X
Phát hành phần mềm
Tái phân phối phần mềm
X
-
Có phải mã nguồn được tìm thấy trên internet mà không có thông tin cấp phép thì bất kỳ ai cũng có thể sửa đổi và phân phối không? Hãy giải thích vì sao.
Không. Nếu đạt đến một mức độ nguyên bản nhất định, mã nguồn theo mặc định sẽ được bảo vệ bản quyền như một tác phẩm văn học. Vì việc sửa đổi và phân phối là quyền độc quyền của tác giả nên không ai ngoài tác giả có thể làm hoặc cho phép làm việc này.
-
Phần mềm có thể được cấp bằng sáng chế không?
Có
Không
Tuỳ từng trường hợp
X
-
Người quản lý giấy phép là ai?
Giống như người cấp phép
Người có thể đề xuất các phiên bản giấy phép trong tương lai
X
Người có thể chấm dứt giấy phép
Người quản lý phần mềm của máy bay
-
Khả năng tương thích của giấy phép có phải luôn luôn hoạt động theo cả hai chiều hay không?
Có, nếu hai giấy phép tương thích thì việc A được đưa vào B hay B được đưa vào A không thành vấn đề.
Không, trong một số trường hợp, giấy phép A có thể được đưa vào dự án theo giấy phép B, nhưng giấy phép B có thể lại không được phép phân phối theo giấy phép A.
X
Không, khả năng tương thích của giấy phép luôn luôn là một chiều.
Đáp án Bài tập Mở rộng
-
Giấy phép GPLv2 và LGPLv2.1 có tương thích không? Hãy đưa ra một lời giải thích ngắn gọn.
Nếu phần mềm A được cấp phép theo GPLv2 và phần mềm B được cấp phép theo LGPLv2.1 thì ta có thể sử dụng B trong A vì LGPLv2.1 có cho phép sử dụng theo các điều kiện của giấy phép GPLv2. Tuy nhiên, A không thể được sử dụng trong B theo các điều khoản của LGPLv2.1. Nếu A đang được sử dụng trong B thì toàn bộ phần mềm phải được cấp phép theo GPLv2; điều này là có thể vì LGPLv2.1 có cho phép sử dụng phần mềm theo GPLv2.0.
-
Phần mềm có thể được phát hành theo giấy phép Nội dung Mở (chẳng hạn như CC-BY) không?
Có, giấy phép CC có thể được áp dụng cho bất kỳ sản phẩm nào có bản quyền.
X
Không, phần mềm chỉ có thể được bảo vệ bởi bằng sáng chế.
Không, giấy phép CC không áp dụng cho phần mềm.
-
Tại sao việc tái phân phối quan trọng đối với việc cấp phép FOSS?
Nhiều nghĩa vụ cấp phép FOSS sẽ được kích hoạt khi phân phối phần mềm. Nếu phần mềm không bao giờ được phân phối mà chỉ được thay đổi và sử dụng trong một hệ thống khép kín (chẳng hạn như một bộ phận của công ty) thì người ta có thể sử dụng phần mềm mà không cần tuân thủ các nghĩa vụ cấp phép.