Tôi đang viết một gói thương mại sử dụng R (GPL) cho tính toán của nó. Câu hỏi thường gặp về GPL nêu rõ rằng các thông dịch viên ngôn ngữ lập trình GPLed không áp đặt các hạn chế cấp phép đối với "chương trình" (tệp văn bản có mã R). Càng xa càng tốt.
Một phần của gói được biên dịch bằng Rcpp, cũng sử dụng GPL. Đoạn tiếp theo trong Câu hỏi thường gặp là:
Tuy nhiên, khi trình thông dịch được mở rộng để cung cấp "các ràng buộc" cho các cơ sở khác (thường, nhưng không nhất thiết là các thư viện), chương trình thông dịch được liên kết hiệu quả với các phương tiện mà nó sử dụng thông qua các ràng buộc này.
Có thể hiểu rằng R đang cung cấp một ràng buộc cho các thư viện Rcpp ( Rcpp.dll
trong gói windows). Giả định an toàn là điều này làm mờ mã của tôi với GPL, nhưng đây có thực sự là kết luận đúng?
Một phần của sự không chắc chắn của tôi là sự chặt chẽ của liên kết giữa mã của tôi và Rcpp.dll
. Có các tham chiếu đến Rcpp trong dll, nhưng tôi không đủ thành thạo để biết liệu đây là các tham chiếu đến môi trường phát triển hay các cuộc gọi được đặt vào các biểu tượng trong thư viện Rcpp. Nếu trước đây, thì tôi tin rằng thư viện Rcpp đang được liên kết bởi R chứ không phải bởi thư viện của tôi. Tuy nhiên, tôi nghi ngờ điều thứ hai vì Rcpp cung cấp một loại keo (đường, thực tế) để đơn giản hóa việc viết mã và thực thi.
Có vô số các cuộc thảo luận liên quan đến GPL trong phân phối mã. Đến tên một vài:
- Bên trong một máy ảo
- Tiếp xúc sở hữu trí tuệ
- Hậu quả của sự phụ thuộc GPL
- Sử dụng thư viện GPL trong phần mềm thương mại
Lưu ý: Tôi nói chung là một người ủng hộ lớn của OSS và đã tham gia phát triển và phân phối trong quá khứ. Các câu hỏi về "mã bảo vệ" thường đưa ra các bản lập trình mã nguồn mở, thường dẫn đến các cuộc tranh luận sôi nổi về triết lý phần mềm. Tôi nhận ra giá trị từ cả hai phía và muốn đảm bảo rằng tôi đang đáp ứng thư và (nếu có thể) tinh thần của luật pháp. Tôi không câu cá cho một lỗ hổng trong giấy phép; Tôi đang tìm kiếm sự giúp đỡ để giải thích và đặt nó vào bối cảnh.
Các gói R phụ thuộc vào Rcpp có cần thiết để sử dụng GPL không?