Если вы не хотите сначала открывать источник, вы можете копировать код и хранить его под закрытой ограничительной лицензией. Если другие хотят внести свой вклад, согласитесь с ними, что-то похожее на соглашение о неразглашении. По сути, вы будете распространять исходный код на них по специальной лицензии, которая позволяет им изменять исходный код и вносить изменения, но не дает им права перераспределять его. Часть этого соглашения может заявить, что вкладчики предоставляют проекту неограниченные права на использование своих взносов, включая, но не ограничиваясь, возможность публикации кода под лицензией с открытым исходным кодом. Таким образом, вкладчики знают, что вы можете повторно лицензировать код и не имеете оснований жаловаться, когда вы это делаете.
Перемещение кода на менее ограничительную лицензию довольно легко сделать. До тех пор, пока вы убедитесь, что проект либо владеет всем исходным кодом, либо имеет неограниченные/неограниченные права на использование, изменение и повторное распространение его, то open-sourcing он по вашему усмотрению не должен быть слишком большой проблемой.
Обновление: К сожалению, таких готовых, как NDA-подобных лицензий, нет, это свободно доступны. Поскольку они призваны придать конкретные юридические права и применять конкретные юридические ограничения, они, как правило, разрабатываются юристом и настраиваются специально для конкретного проекта/ситуации.
Это, как говорится, вы можете использовать available open-source licenses, чтобы написать свою собственную ограничительную лицензию. Вы хотели бы, чтобы ваша лицензия была сосредоточена на предоставлении и резервировании ваших прав и не обязательно ограничивала права других (по крайней мере, не в той же детали). Например, сделайте следующее предложение (модифицированная версия раздела 2.1 от Adaptive Public License):
2.1. ЛИЦЕНЗИЯ АВТОРСКОГО ПРАВА ОТ УЧАСТНИКОВ.
(a) Subject to the terms of this License, the Contributor
hereby grants <<Project Owner>> a world-wide, royalty-free,
non-exclusive copyright license to:
(i) reproduce, prepare derivative works of, publicly display,
publicly perform, distribute, sublicense, and re-license
the Contribution; and
(ii) reproduce, publicly display, publicly perform,
distribute, sublicense, and re-license any derivative
works (if any) prepared by <<Project Owner>>;
in Source Code and Executable form, either with other Modifications,
on an unmodified basis, or as part of a Larger Work.
Вы бы заменить «< < Владелец проекта > >» или с вашим именем или именем вашего проекта. Вы также включили бы еще один раздел, в котором указывалось, что получателям кода не разрешается делиться или повторно распространять код, в том числе измененные его версии, любым способом, формой или формой, кроме как отправлять изменения обратно вам. В другом разделе будет указано, что все модифицированные версии кода должны быть лицензированы по той же лицензии, а другой раздел зарезервирует (для вас) право изменять лицензию кода. Общим отказом от ответственности (например, в конце BSD License) также является удобная вещь. Вы можете использовать язык из существующих лицензий в качестве шаблона (вроде как я сделал выше) для создания различных разделов вашей лицензии.
Если вы пишете свою собственную лицензию и имеете хоть малейшую вероятность, что вам может потребоваться принудительное исполнение ее на законных основаниях или что она может быть применена против вас, попросите ее проверить ее перед использованием (IANAL)!
Update2: Другой вариант, который вы могли бы преследовать, заключается в том, чтобы изменить способ внесения участниками своего кода. Ваш исходный код будет иметь лицензию, которая запрещает вкладчику передавать код в исходной или объектной форме с изменениями или без каких-либо изменений любой другой стороне по какой-либо причине с подошвой исключение отправки файлов патчей к вам. Когда вкладчик отправляет свою работу, пусть они представляют только патч (вместо измененной версии источника) и требуют, чтобы сами заплатки были лицензированы MIT или WTFPL. Таким образом, у вас есть неограниченные права на использование патчей, включая их повторное лицензирование или использование их в вашем проекте (независимо от лицензии вашего проекта). Вам не нужно будет получать оригинальное разрешение автора на повторную лицензию вашего кода, так как единственная часть, на которую они претендуют, является файлом патча. Ваша единственная обязанность, скорее всего, будет давать должное вкладчику (как в разделе «спасибо вам в следующих источниках» в вашей документации или на веб-сайте), но вы, вероятно, планируете это делать в любом случае.
Как вы планируете поощрять и принимать кодовые взносы для проекта, исходный код которого не был выпущен? Просто любопытно ... –
Идея состоит в том, чтобы разрешить доступ ко всем людям, которые хотят помочь. Я еще не полностью его разработал, но это не потребует разрешения на перераспределение исходного кода, не так ли? – Jasper