Выпуск ASP.NET MVC 3 OpenId StarterKit под открытой лицензией
Я создал сайт ASP.NET MVC 3 (RC на данный момент), который использует систему входа OpenID. Я все еще изучал OpenID при реализации этого, поэтому я комментировал код сильно. В результате получается сайт, который позволяет пользователям входить / регистрироваться с OpenID, добавлять другие OpenID в свою учетную запись, а также удалять их. Этот маленький проект может быть использован в качестве отправной точки для любого нового проекта, который будет использовать систему входа OpenID. Он также может быть использован в качестве ресурса для изучения OpenID.
Я решил выпустить этот проект как открытый исходный код. Это будет мой первый проект с открытым исходным кодом, и мне нужно решить, какую лицензию использовать. Я хочу, чтобы люди могли использовать это для любых целей. Они могут извлечь из этого уроки, использовать его для коммерческих или некоммерческих проектов и создавать собственные ветки кода. Также было бы неплохо, чтобы другие могли внести свой вклад в проект с помощью таких исправлений, как исправления ошибок на сайтах, таких как GitHub. Но я хотел бы быть владельцем авторских прав на код, который находится под моим контролем. Например, код, который находится в моем репозитории GitHub (я назову это основной базой кода). Я слышал, что для этого мне нужно, чтобы каждый участник, который добавляет код в эту базу кода, предоставил мне авторские права на их вклад. Как именно это работает?
Я также использую другие лицензированные (в основном с открытым исходным кодом) ресурсы в своих проектах. Вот их список и их лицензии:
- DotNetOpenAuth (Ms-PL)
- T4MVC (часть MvcContrib, которая лицензируется с использованием Apache License 2.0)
- ASP.NET MVC (Ms-PL)
- ADO.NET Entity Framework CTP4 (я не смог найти лицензию)
Я, конечно, хочу использовать основную базу кода для любого типа проектов, которые я хочу. Коммерческий, некоммерческий, с открытым исходным кодом,...
Поэтому у меня есть несколько очень важных вопросов:
- Какую лицензию я должен использовать? Я думаю, что GPL или LGPL здесь не подходит. Я смотрел на Apache 2, новый BSD, MIT и Ms-PL. Ms-PL, кажется, хорошо подходит, но я не уверен.
- Какие ограничения и / или обязательства у меня есть в отношении ресурсов, которые я использую в этом проекте? Я думаю, что где-то читал, что мне нужно добавить -LICENSE.txt для ресурсов Ms-PL. Это правда? Как это работает для Apache 2 и других лицензий? Что мне нужно сделать, если я изменю код любого из этих ресурсов, а затем использую его в своем проекте?
- Я бы также хотел, чтобы в лицензии было указано "как есть", поэтому люди не могут подать в суд на меня, если что-то пойдет не так, пока они используют мой код.
- Нужно ли что-нибудь добавлять в мои файлы, чтобы было понятно, что это за лицензия? Если да, то как мне это отформатировать?
Также последнее. Если я решу сделать шаблон Visual Studio из этих примеров, как мне это лицензировать?
1 ответ
Я слышал одно сообщение (от кого-то, кто не смог его сохранить), что Ms-PL ограничивает использование другим программным обеспечением с открытым исходным кодом других лицензий. Я с ними не согласен, но ни один из нас не был юристом.
Большинство лицензий с открытым исходным кодом, включая Ms-PL, содержат положения "как есть".
Я полностью поддерживаю отказ от GPL или LGPL, потому что это серьезно ограничивает вашу "свободу" делать с программным обеспечением все, что вы хотите. Он сильно склонен к "религии" вечного "свободного программного обеспечения" и не столько к свободе. Не пытаюсь приманить, но это настоящая проблема.
Лично я выбрал Ms-PL, потому что разделяю те же цели, которые предлагает ваш вопрос, и я чувствовал, что Ms-PL отвечает всем требованиям. Я не в состоянии обещать правильное юридическое толкование, но это мое непрофессиональное мнение.
Я действительно считаю, что вы обязаны включать лицензии / уведомления об авторских правах в свои собственные списки программного обеспечения, основанные на Ms-PL, но вам не нужно добавлять новые ссылки на эти лицензии, я полагаю. Поэтому я бы посчитал достаточным, если бы ваш файл LICENSE содержал вашу собственную лицензию и лицензии на другое программное обеспечение, которое включает в себя ваш редистер, и укажите, к каким файлам применяется каждая лицензия. И затем не перекомпилируйте ни одну из ваших зависимостей, чтобы удалить уведомления об авторских правах, которые могли быть включены в скомпилированное программное обеспечение.