2012-02-29 17 views
6

Tôi dự định phát hành dưới dạng mã nguồn mở là một dự án cá nhân cho hầu hết các mục đích giáo dục (nếu có). Nó chỉ là Windows.Cách tổ chức dự án cho bản phát hành mã nguồn mở

mã riêng của tôi sẽ được phát hành theo giấy phép MIT, nhưng tôi cũng sử dụng này thư viện/thành phần:

  • ODE
  • Scintilla
  • Scintilla PJ Naughter phần
  • glaux

Ngoài việc đảm bảo tôi đưa vào từng tệp giấy phép thư viện này, tôi nên tích hợp chúng như thế nào trong mã nguồn r elease tree?

Hiện tại, mỗi lần tôi sử dụng bản phát hành/bản sửa đổi cụ thể mà tôi đã tùy chỉnh hoặc xây dựng và tích hợp theo cách thủ công về tệp mã nguồn và tệp thư viện nhị phân. Như thế này đủ chưa? Tôi không muốn gánh nặng gói kết quả với cây nguồn đầy đủ của bên thứ 3, nhưng đồng thời tôi muốn nó có thể biên dịch được từ đầu.

Ngoài ra tôi muốn bao gồm các tệp thực thi được biên dịch cuối cùng của mình. Cái này có cau mày không? Tôi sẽ kiểm tra kết quả của exe với VirusTotal.

+1

Bao gồm cả hoặc không bao gồm các thành phần của bên thứ ba đều là lựa chọn hợp lệ. Bạn chỉ có thể bao gồm các tệp DLL trong tệp nhị phân nhưng yêu cầu người dùng tải xuống các nguồn của họ khi biên dịch. Và không, việc phát hành các tệp nhị phân không phải là "cau mày", đặc biệt. cho Windows có rất ít người dùng sẽ cài đặt các trình biên dịch. –

+0

Các bánh xe có phiếu bầu gần giống như để giải thích động cơ của họ để làm như vậy? –

+0

Nếu đây là một dự án Java, tôi sẽ nói rằng bạn chắc chắn không nên bao gồm các phụ thuộc dưới mọi hình thức, nhưng thay vì bao gồm siêu dữ liệu mô tả chúng, dưới dạng một kịch bản Gradle, Ivy hoặc Maven. Điều đó sẽ giải phóng bạn khỏi sự cần thiết phải phân phối chúng, đồng thời cho phép người dùng của bạn giữ chúng không đau đớn. Có tương đương với điều này trong thế giới C không? Nếu bạn đang phát hành một bản phân phối Linux cụ thể, bạn có thể tạo một gói nguồn, nhưng có điều gì có thể di chuyển không? –

Trả lời

1

mã riêng của tôi sẽ được phát hành theo giấy phép MIT, nhưng tôi cũng sử dụng thư viện này/thành phần: [...]

Hiện nay đối với mỗi một tôi sử dụng một phiên bản/phiên bản đặc biệt mà tôi bằng tay tùy chỉnh hoặc được xây dựng và tích hợp dưới dạng tệp mã nguồn và tệp thư viện nhị phân. Như thế này đủ chưa? Tôi không muốn gánh nặng gói kết quả với cây nguồn đầy đủ của bên thứ 3, nhưng đồng thời tôi muốn nó có thể biên dịch được từ đầu.

Khi bạn muốn cung cấp ứng dụng cho người khác tin nhắn, bên cạnh bản phát hành chỉ nhị phân, bạn có thể cung cấp loại bản phát hành "SDK" có chứa mã của bạn dưới dạng nguồn và phụ thuộc thư viện dưới dạng tệp nhị phân .

Vì bạn cũng muốn có thể biên dịch từ tất cả các nguồn, bạn nên vì những lý do thực tế cũng tạo ra một gói nguồn đầy đủ cho mỗi bản phát hành.

Tạo cho mình một tập lệnh có thể tự động xây dựng từng gói này. Đặt kịch bản xây dựng của bạn dưới sự kiểm soát sửa đổi là tốt. Nếu bạn không có bất kỳ kiểm soát sửa đổi ngay bây giờ, đặt cây nguồn của bạn dưới sự kiểm soát sửa đổi đầu tiên.

Đó chỉ là những gợi ý thực tế để bạn có thể đạt được những gì bạn đang tìm kiếm đồng thời mang đến cho người dùng khác khả năng truy cập tốt vào chương trình của bạn.

Để cấp giấy phép cho các thư viện/thành phần bạn đã liệt kê, tôi đã cố gắng tìm hiểu thêm. Nếu có, tôi nhận được số nhận dạng ngắn từ SPDX Open Source License Registry.Nó chứa các liên kết đến từng giấy phép, vì vậy nó là một công cụ tốt để phân loại tình trạng giấy phép của gói của bạn:

  • ODE (Open Dynamic Engine) - License: LGPL-v2.1+ hoặc BSD-3-Clause
  • Scintilla (Scintilla and SciTE)-License: HPND
  • Scintilla PJ Naughter component-License: Giấy phép thành phần Scintilla PJ Naughter:

    Copyright // Bạn là al được hạ thấp để bao gồm mã nguồn trong bất kỳ sản phẩm nào (thương mại, phần mềm chia sẻ, phần mềm miễn phí hoặc cách khác) khi sản phẩm của bạn được phát hành ở dạng nhị phân. // Bạn được phép sửa đổi mã nguồn theo bất kỳ cách nào bạn muốn trừ khi bạn không thể sửa đổi các chi tiết bản quyền ở đầu mỗi mô-đun. // Nếu bạn muốn phân phối mã nguồn với ứng dụng của mình, thì bạn chỉ được phép phân phối các phiên bản do tác giả phát hành. Điều này là để duy trì một điểm phân phối duy nhất cho mã nguồn.

  • GLAux (phụ Thư viện OpenGL) - Giấy phép: Unknown/Various

(IANAL) Có vẻ như rằng đây là tất cả các loại-giấy phép dễ dãi, vì vậy bạn chủ yếu là không bắt buộc phải giải phóng nguồn. Hai ghi chú:

  1. Tôi không thể lấy thông tin về GLAux. Bạn có thể muốn xem xét các tệp nguồn mà bạn có giấy phép nào được áp dụng. Nó hơi phức tạp để tìm hiểu thêm, có vẻ như thư viện không được chấp nhận. Những gì tôi thấy là nó là một phần của dự án OpenGL, nhưng tôi không biết bạn đang sử dụng tập tin nguồn nào và nơi bạn lấy chúng.

  2. Các Scintilla PJ Naughter phần có giấy phép phi tiêu chuẩn mà không cho phép sự phân bố của sửa đổi mã nguồn. Nhưng bạn được phép phân phối mã không thay đổi. Tôi nghĩ rằng ý định của tác giả ban đầu là anh ta không muốn phân phối nguồn khác bên cạnh cái riêng của mình (ngã ba nhưng không thay đổi ngã ba). Tôi muốn nói rằng bạn nên tuân thủ miễn là bạn có thể và nếu bạn không còn có thể liên lạc với tác giả ban đầu và thảo luận về vấn đề này. Nếu điều đó không giải quyết cho một giải pháp thực tế, bạn có thể cần phải liên hệ với một luật sư về các quyền bạn có trong trường hợp đó để thay thế các hạn chế theo bản quyền được thể hiện bởi tác giả gốc.

Ngoài ra tôi muốn bao gồm các tệp thực thi được biên dịch cuối cùng của mình. Cái này có cau mày không? Tôi sẽ kiểm tra kết quả của exe với VirusTotal.

Tại sao điều này sẽ làm cho phần mềm có thể truy cập được cho những người không thể hoặc không muốn biên dịch.

Nếu bạn đang tìm kiếm một kho lưu trữ mã nguồn công khai chấp nhận việc repro của bạn theo các điều khoản này, github sẽ thực hiện. Nghĩa vụ duy nhất của họ là mã nguồn có thể nhìn thấy và repo có thể được chia nhỏ - vì điều này không nói nhiều về các quyền được cung cấp với mã và mỗi ngã ba, làm cho việc cấp phép mã bạn đã rõ ràng. Các trang web khác như mã google sẽ không cho phép điều này vì chúng chỉ chấp nhận mã theo giấy phép được OSI phê chuẩn, điều này không đúng với Thành phần Scintilla PJ Naughter.

Thêm tệp rainbru suggested.

2

Ít nhất, bạn nên thêm tệp COPYING chứa văn bản đầy đủ của giấy phép đã sử dụng (ví dụ: MIT). Tôi nghĩ đây là tệp được yêu cầu duy nhất.

Tôi cũng thường bao gồm NEWSAUTHORS. Bạn cũng có thể thêm một tệp DEPENDENCIES.