- Dự án PHP đang thảo luận một RFC nhằm thống nhất giấy phép riêng của PHP và giấy phép Zend Engine vốn phức tạp, không tương thích thành BSD 3-Clause (giấy phép BSD đã sửa đổi)
- Thời điểm áp dụng giấy phép mới là PHP 9.0; BSD 3-Clause sẽ được phản ánh trên toàn bộ mã nguồn, header và tài liệu, đồng thời các điều khoản đặc thù trước đây và hạn chế liên quan đến thương hiệu sẽ bị loại bỏ
- Được OSI và FSF phê duyệt, tương thích GPL, giúp bảo đảm tính rõ ràng về pháp lý, trong khi quyền của người đóng góp và người dùng vẫn được giữ nguyên như trước
- Để thay đổi giấy phép, cần có sự đồng ý chính thức của PHP Group và Perforce Software (trước đây là Zend), sau đó sẽ trải qua quy trình thảo luận cộng đồng trong ít nhất 6 tháng và bỏ phiếu
- Thay đổi này cũng khuyến nghị các dự án bên ngoài như PECL/extension lựa chọn BSD 3-Clause, và không khuyến khích sử dụng “PHP License”
Tổng quan
- Trong thời gian dài, dự án PHP đã liên tục đối mặt với sự nhầm lẫn và tranh cãi do giấy phép mã nguồn mở riêng và Zend Engine License
- Đặc biệt, Zend Engine License áp dụng cho mã nguồn trong thư mục Zend không phải là giấy phép được OSI phê duyệt, khiến sự phức tạp càng tăng
- RFC này đề xuất một cách đơn giản hóa giấy phép theo hướng thực dụng: vẫn bảo toàn bản quyền của mọi người đóng góp cho PHP, đồng thời trao cho người dùng các quyền giống như giấy phép hiện tại
- Mục tiêu là chọn BSD 3-Clause (giấy phép BSD đã sửa đổi) làm giấy phép chính thức mới, giữ nguyên quyền và điều kiện sử dụng nhưng giảm bớt độ phức tạp và hiểu nhầm
Đề xuất và các thay đổi chính
- Bản chất của vấn đề là công bố phiên bản mới của PHP License và Zend Engine License để chính thức áp dụng Modified BSD License (BSD-3-Clause, được cả OSI/FSF phê duyệt)
- PHP License hiện tại (version 3.01) và Zend Engine License (version 2.00) về cơ bản gần như giống Modified BSD, ngoại trừ một số điều khoản đặc thù, nên không có thay đổi thực chất về quyền hạn
- Sau khi cập nhật giấy phép:
- Không có thay đổi nào về các quyền được cấp cho người đóng góp và người dùng
- Phối hợp với PHP Group và Perforce Software để loại bỏ các điều khoản riêng gắn với từng nhóm cụ thể
- PHP và Zend Engine sẽ được cung cấp theo giấy phép được OSI phê duyệt, tương thích GPL
- Việc sử dụng PHP License cũ và Zend Engine License không còn được khuyến khích
- Tệp LICENSE và các header giấy phép trong mã nguồn cũng sẽ được thay bằng định dạng mới
Tóm tắt nội dung giấy phép
- BSD 3-Clause cho phép tự do sao chép, sửa đổi và phân phối, với điều kiện phải giữ thông báo bản quyền và điều khoản miễn trừ trách nhiệm, đồng thời cấm sử dụng trái phép tên gọi và thương hiệu
- BSD-3-Clause là giấy phép phần mềm tự do được cả OSI (Open Source Initiative) và FSF phê duyệt, đồng thời tương thích GPL
Quy trình thay đổi và phê duyệt
- RFC sẽ được chốt bằng bỏ phiếu sau khi thảo luận công khai trong cộng đồng, và việc áp dụng sẽ được tiến hành sau khi có đồng ý chính thức và bỏ phiếu
- Việc đổi giấy phép cần có sự đồng ý chính thức của PHP Group và Perforce Software
- Quyền của các bên từng đóng góp mã nguồn trước đây vẫn được giữ nguyên, và thay đổi này không xâm phạm các quyền hiện có
- Cộng đồng sẽ có thời gian thảo luận ít nhất 6 tháng trước khi chốt bằng bỏ phiếu
- Thay đổi dự kiến sẽ được phản ánh chính thức trong PHP 9.0
Bối cảnh và lịch sử
- Các phiên bản đầu tiên như PHP 1 và 2 dùng GPL, sau đó phát triển qua giấy phép Apache và giấy phép tùy biến dựa trên BSD
- Zend Engine từng duy trì giấy phép riêng, nhưng hiện nay trên thực tế được xem là một phần không thể tách rời của cùng một dự án
- Các hạn chế về việc sử dụng tên gọi trong giấy phép PHP cũ, cũng như các điều khoản bảo vệ thương hiệu, lâu nay đã liên tục gây ra vấn đề về khả năng tương thích và phân phối với các dự án mã nguồn mở khác
Ảnh hưởng tới mã hiện có, extension và tài liệu
- RFC lần này áp dụng cho toàn bộ
php-src (trừ các phần mã có ghi rõ giấy phép riêng), đồng thời khuyến nghị PECL/extension cũng áp dụng BSD 3-Clause
- Ảnh hưởng tới toàn bộ mã trong các kho mã nguồn PHP mới/cũ đang dùng PHP License hoặc Zend Engine License
- Các giấy phép hiện có khác (ví dụ mã dùng giấy phép riêng như timelib) không thuộc phạm vi áp dụng của thay đổi này
- Tài liệu hướng dẫn PHP sẽ tiếp tục giữ giấy phép Creative Commons Attribution 3.0 trở lên
- Các extension module/phần mềm hiện có sẽ được trao quyền lựa chọn áp dụng PHP License v4 (Modified BSD)
- Với extension và dự án mới trong tương lai, khuyến nghị dùng các giấy phép được công nhận như BSD/Apache mới nhất
Kết luận
- Cấu trúc giấy phép của PHP và Zend Engine sẽ được đơn giản hóa thành BSD 3-Clause, qua đó tăng tính rõ ràng, khả năng tương thích, khả năng khai thác thương mại và độ ổn định pháp lý trong hệ sinh thái mã nguồn mở
- Nếu đề xuất này được phê duyệt và áp dụng, người dùng sẽ có thể tự do sử dụng PHP và Zend Engine theo BSD-3-Clause
- Việc áp dụng chính thức sẽ diễn ra sau khi hoàn tất sự đồng thuận của những người đóng góp trong dự án, cộng đồng và các doanh nghiệp chủ chốt, cùng quy trình bỏ phiếu
1 bình luận
Ý kiến trên Hacker News
zval***) là khi tự học trực tiếp mã nguồn của PHP Zend Engine cách đây 25 năm; sau đó đã làm đủ thứ với PHP, thậm chí thời trung học còn dùng PHP trong môi trường CLI để đi thi lập trình, nhưng vì ban tổ chức lúc đó không quen ngôn ngữ và môi trường này nên đã bị loại trong một trải nghiệm vừa buồn vừa buồn cười. Họ bày tỏ sự biết ơn với những khả năng mà PHP khi đó đã mở rastructthì còn hiểu được, còn việc tự dưng thêm phức tạp như vậy là không hợp lý. Họ nhớ lại một người quen thường nói: “Sao không làm cho đơn giản hơn?”