Có mã nguồn vẫn phải đọc giấy phép
Tác giả có quyền đối với chương trình mình tạo ra. **Giấy phép phần mềm** nêu người nhận được phép sử dụng, sao chép, sửa và chia sẻ trong phạm vi nào, đồng thời có thể yêu cầu giữ thông báo bản quyền hoặc nêu thay đổi. Giấy phép nguồn mở trao các quyền này theo điều kiện của từng giấy phép; nó không có nghĩa “muốn làm gì cũng được”.
Trong SGK, **GNU GPL** là ví dụ giấy phép nguồn mở. Nếu sửa một chương trình GPL để **dùng riêng**, không vì thế mà phải đăng mã sửa lên mạng. Nếu **phân phối bản sửa đổi** cho người khác, phải thực hiện điều kiện GPL về giấy phép và mã nguồn tương ứng cho người nhận. Điều cần hỏi trước là: “Đang dùng riêng hay đang chuyển bản sửa cho người khác?”
Một bản sửa, hai cách sử dụng
Nhóm học tập nhận chương trình X theo GPL, sửa một phần giao diện trên máy thử.
**Trường hợp 1:** Chỉ nhóm dùng bản sửa trong phạm vi riêng. Nhóm có thể tiếp tục thử mà không phải tự công bố bản sửa cho mọi người.
**Trường hợp 2:** Nhóm gửi bản sửa cho câu lạc bộ khác. Khi ấy nhóm phải kiểm và làm đúng điều kiện phân phối của GPL, gồm việc cung cấp mã nguồn tương ứng cho người nhận và giữ thông tin giấy phép cần thiết. Không thể chỉ gửi tệp chạy rồi cấm người nhận xem phần mã đã sửa.
Ví dụ giúp hiểu **thời điểm điều kiện phát sinh**. Với phần mềm dùng giấy phép khác, hãy đọc chính giấy phép đó; không lấy điều kiện của GPL áp cho mọi phần mềm nguồn mở.
Bài luyện
Một nhóm sửa chương trình GPL để dùng riêng và chưa gửi bản sửa cho ai. Theo ví dụ trong bài, kết luận nào đúng?
Sửa để dùng riêng không tự tạo nghĩa vụ đăng công khai.
Điều kiện phân phối phát sinh khi chuyển bản sửa cho người khác.
GPL không bắt buộc bán.
Giấy phép vẫn áp dụng cho chương trình, kể cả khi chưa phân phối.
Lời giải
Điểm cần phân biệt là dùng riêng với phân phối. GPL không buộc nhóm công bố bản sửa chỉ vì nhóm đã sửa để dùng nội bộ.
Bài luyện
Nhóm gửi cho câu lạc bộ khác tệp chạy của phiên bản GPL đã sửa. Bước nào phù hợp?
Khi phân phối bản sửa, phải thực hiện điều kiện của giấy phép.
Điều này trái quyền người nhận theo GPL.
Thông tin giấy phép không được bỏ tùy tiện.
Nguồn mở vẫn có điều kiện giấy phép.
Lời giải
Vì đã chuyển bản sửa cho người khác, nhóm cần giữ thông tin giấy phép và cung cấp mã nguồn tương ứng theo GPL cho người nhận.
Bài luyện
Vì sao cần xem giấy phép của từng phần mềm nguồn mở?
Các giấy phép có điều kiện khác nhau.
Giá và quyền không suy trực tiếp từ mã.
Đó là vai trò của giấy phép.
Giấy phép không chỉ mô tả giao diện.
Lời giải
Nguồn mở không có nghĩa bỏ qua giấy phép. Cần đọc quyền được cấp và những điều kiện đi kèm trước khi sửa hoặc phân phối.
Đang học