1.2. О лицензии на эти заметки

…право формулировать задачу и объяснять ее решение является неотчуждаемым естественным правом всякого, кто на это способен.

А. Шень. Программирование: теоремы и задачи

Эти заметки вы можете бесплатно скачать (в том числе исходники — на сайте https://github.com/petr-kalinin/progtexts2) и использовать любыми законными способами. Я не беру денег за их использование и распространение, но, соответственно, требую, чтобы и вы не ставили никаких ограничений на использование этого текста, если вы его куда-то дальше распространяете. Более того, вы можете вносить любые изменения и/или использовать заметки или любые их фрагменты (в виде исходного кода, или уже в скомпилированном виде — в виде html, pdf и т.д.), в своих работах, но я требую, чтобы в таком случае вы сделали свободным и исходный код ваших исправлений или тех работ, где вы используете текст этих заметок.

А именно, я распространяю эти заметки на условиях лицензии GNU General Public License версии 3 (или, по вашему выбору, более старшей версии). Строгий текст лицензии вы можете прочитать на сайте Free Sofrware Foundation по адресу http://www.gnu.org/licenses/gpl-3.0.en.html (неофициальный русский перевод: http://rusgpl.ru/rusgpl.html), или в файле LICENSE, распространяемым вместе с исходниками этих заметок. Ниже я вкратце объясняю, что это обозначает; если вы знаете GNU GPL, то можете пропустить эти объяснения до раздела «Дополнительные замечания». В частности, если вам интересно, почему я использую именно GNU GPL, а не CC BY-SA или другую CC лицензию, то читайте раздел «Дополнительные замечания».

Итак, вы можете свободно использовать эти заметки при условии, что вы их не изменяете (в частности, сохраняете указание на мое авторство и указание на лицензию). Вы можете их также распространять (выставлять на сайте, распространять в печатном виде и т.п.) куда угодно на этих же условиях (т.е. по этой же лицензии). Кроме того, вы можете модифицировать эти заметки, а также использовать текст заметок в своих работах, на следующих условиях. Во-первых, вы должны распространять полученный текст (измененную версию этих заметок или свою собственную работу) также на условиях GNU GPL, в том числе не ограничивая дальнейшее распространение. Во-вторых, вы должны сделать свободно доступным на условиях GNU GPL «исходный код» измененных заметок или вашей работы, т.е. тот формат, в котором вы сами вносили изменения и/или создавали свою работу. А именно, если вы правите исходный код restructuredtext (.rst), то вы должны сделать исправленный исходный код restructuredtext свободно доступным. Вы не можете распространять только полученный HTML или PDF или вообще только печатную версию, а исходный rst-код сделать закрытым. Или, если вы, к примеру, используете Photoshop для правки уже сгенерированного PDF, то вы должны распространять также и «сырой» файл PSD. Этот «исходный код» вы должны или распространять сразу вместе с окончательным вариантом (PDF, печатной версией и т.п.), или в PDF или печатную версию должна быть включена информация о том, как получить этот «исходный код». Более строгие определения см. в полном тексте лицензии, ссылки на который приведены выше.

1.2.1. Дополнительные замечания

Вообще, часто для подобных «творческих работ» используются лицензии Creative Commons (CC). Но я распространяю эти заметки на условиях именно GNU GPL потому, что CC-лицензии не содержат понятия исходного кода и не требуют его раскрытия. Если бы я распространял заметки на условиях лицензий CC, то кто угодно мог бы внести изменения в rst-исходники, скомпилировать их в HTML или PDF и дальше распространять только HTML, а rst-исходники засекретить. Это довольно непродуктивно, т.к. скомпилированный HTML править намного сложнее, чем rst-исходники. Я хочу, чтобы все измененные версии этих заметок сопровождались исходниками, чтобы их мог править кто угодно, да и чтобы я сам мог подходящие изменения включить в оригинальный текст заметок. Соответственно, GNU GPL имеет понятие исходного кода, причем с достаточно широким определением: «the preferred form of the work for making modifications to it» («предпочитаемая форма произведения для создания его модификаций»). Для заметок, набранных в rst, исходный код — это очевидно исходный код rst, поэтому GPL позволяет достичь именно той цели, которую я сформулировал выше: она требует, чтобы всякий, кто будет распространять измененную версию заметок, распространял бы и соответствующий исходный код rst.

Более того, исходный код этих заметок лежит в репозитории на GitHub. Если уж вы изменяете заметки, я буду очень рад, если вы пришлете pull request, чтобы я мог при желании легко включить ваши изменения в мою версию.

Еще обратите внимание, что лицензия, конечно, относится только к конкретному тексту этих заметок. Авторское право вообще защищает не идеи, а конкретные воплощения этих идей, поэтому, конечно, я не претендую и не могу претендовать на какие-либо авторские права в отношении алгоритмов, задач и т.п., описанных в этих текстах. Авторские права распространяются только на конкретную текстовую формулировку этих алгоритмов и задач. Кроме того, конечно, я разрешаю свободное использование без каких-либо требований лицензии разумно небольших фрагментов этих заметок. Например, вы, конечно, можете использовать фрагменты кода (но не целые программы), приведенные в этих заметках, в своих программах без каких-либо ссылок на меня, или формулировки отдельных задач и т.п.

Раньше я распространял старую версию некоторых фрагментов этих заметок по лицензии CC-BY-SA. Конечно, на ту версию по-прежнему распространяется эта лицензия, но на этот текст и на последующие версии распространяется только лицензия GPL.