Куперс

Бухучет и анализ

СПО свободное программное обеспечение

Определение свободной программы

Есть вопрос, на который здесь не ответили? Обратитесь к нашим материалам по лицензированию или свяжитесь с лабораторией по адресу licensing@fsf.org.

Определение свободной программы содержит критерии того, является ли конкретная компьютерная программа свободной. Время от времени мы пересматриваем это определение, чтобы пояснить его или разрешить тонкие вопросы. Список изменений, затрагивающих определение свободной программы, см. в разделе истории в нижней части страницы.

«Открытый исходный текст” представляет собой нечто другое: у него совсем другая философия, основанная на других ценностях. Его практическое определение тоже другое, но почти все программы с открытым исходным текстом на деле свободны. Разницу мы объясняем в статье Почему «открытый исходный текст” не передает понятия «свободная программа”.

Слова «свободная программа” означают программу, которая уважает свободу и сообщество пользователей. В двух словах это значит, что у пользователей есть свобода выполнять, копировать, распространять, изменять и улучшать программу. Таким образом, понятие «свободная программа” относится к свободе, а не к стоимости. Чтобы верно воспринимать эту концепцию, вы должны понимать слово «свободный” в том смысле, который заключается в выражении «вольная речь”, а не «бесплатное пиво”.

Мы выступаем за эти свободы, потому что их заслуживает каждый. Когда есть эти свободы, пользователи контролируют (как индивидуально, так и коллективно) программу и то, что она для них делает. Когда пользователи не контролируют программу, мы называем ее «несвободной” программой. Несвободная программа контролирует пользователей, а разработчик контролирует программу; это делает программу орудием несправедливой власти.

Четыре важнейших свободы

Программа свободна, если у ее пользователей есть четыре важнейших свободы:

  • Свобода выполнять программу как вам угодно в любых целях (свобода 0).
  • Свобода изучать работу программы и модифицировать программу, чтобы она выполняла ваши вычисления, как вы пожелаете (свобода 1). Это предполагает доступ к исходному тексту.
  • Свобода передавать копии, чтобы помочь другим (свобода 2).
  • Свобода передавать копии своих измененных версий другим (свобода 3). Этим вы можете дать всему сообществу возможность получать выгоду от ваших изменений. Это предполагает доступ к исходному тексту.

Программа свободна, если она предоставляет пользователям все эти свободы в достаточном объеме. В противном случае она не свободна. Хотя мы различаем различные схемы несвободного распространения по тому, насколько далеко они отстоят от того, чтобы быть свободными, мы считаем все их равным образом неэтичными.

Эти свободы должны применяться при любом заданном сценарии к любым частям программ, которые мы планируем использовать или давать использовать другим. Например, рассмотрим программу А, которая автоматически запускает программу Б для обработки каких-то случаев. Если мы планируем распространять А в том виде, в каком она есть, это подразумевает, что пользователям понадобится и Б, так что нам нужно вынести суждение, свободна ли как А, так и Б. Однако если мы планируем изменить А так, чтобы в ней не применялась Б, то свободной нужно быть только программе А; Б на эти планы никак не влияет.

«Свободная программа” не значит «некоммерческая”. Свободная программа должна быть доступна для коммерческого применения, коммерческой разработки и коммерческого распространения. Коммерческая разработка свободных программ уже не является чем-то из ряда вон выходящим; такие свободные коммерческие программы очень важны. Может быть, вы заплатили деньги за то, чтобы получить свободные программы, а может быть, они вам достались бесплатно. Но независимо от того, как вы получили свои копии, вы всегда вольны копировать и изменять программы и даже продавать копии.

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

Пояснение позиции в различных аспектах

В остальной части этой статьи мы поясняем более подробно, насколько далеко должны заходить различные свободы по различным вопросам, чтобы программа была свободна.

Свобода выполнять программу как вам угодно

Свобода выполнять программу означает свободу для любого рода лиц или организаций применять ее на любого рода вычислительной системе для любого рода работ и целей без требования связаться по этому поводу с разработчиком или любым другим лицом. В данном случае подразумеваются цели пользователя, а не разработчика; вы как пользователь вольны выполнять программу в своих целях, а если вы передаете ее кому-то другому, то этот человек волен выполнять программу в своих целях, но вы не уполномочены навязывать ему свои цели.

Свобода выполнять программу как вам угодно означает, что вам не запрещено и не мешают запускать ее. Это никак не связано ни с тем, какой функциональностью обладает программа, ни с тем, есть ли у нее технические возможности работы в любой конкретной среде, ни с тем, полезна ли она для какой бы то ни было конкретной вычислительной деятельности.

Например, если программа произвольно отвергает определенные осмысленные данные на входе — даже если она во всех случаях выдает отказ — это может делать программу менее полезной, возможно, даже полностью бесполезной, но это не отказывает пользователям в свободе выполнять программу, так что это не противоречит свободе 0. Если программа свободна, пользователи могут преодолеть потерю полезности, потому что свободы 1 и 3 позволяют пользователям и сообществам подготавливать и распространять измененные версии без той части программы, которая создает неудобства.

Свобода изучать исходный текст и вносить изменения

Чтобы свободы 1 и 3 (свобода вносить изменения и свобода публиковать измененные версии) имели смысл, вам нужен доступ к исходному тексту программы. Следовательно, доступность исходного текста является необходимым условием свободы программы. «Исходный текст”, искусственно преобразованный к виду, в котором затруднено его чтение и модификация человеком, не является настоящим исходным текстом и не может служить его заменой.

Свобода 1 распространяется на свободу применения измененной вами версии программы. Если программа поставляется в составе продукта, разработанного так, что он выполняет версии с изменениями кого-то другого, но отказывается выполнять версии с вашими изменениями — практика, называемая «тивоизацией” или (в вывернутых наизнанку терминах тех, кто это практикует) «безопасной загрузкой”,— то свобода 1 становится пустым притворством, а не практической реальностью. Эти двоичные файлы не являются свободными программами, даже если исходные тексты, из которых они получены, свободны.

Один из важных способов изменения программы — присоединение доступных подпрограмм и модулей. Если в лицензии программы сказано, что присоединять модули с подходящей лицензией нельзя,— например, если для этого нужно быть правообладателем всех текстов, которые вы добавляете — то лицензия слишком ограничительна, чтобы считаться свободной.

Улучшает ли изменение программу — вопрос субъективный. Если ваше право изменять программу по существу ограничено лишь изменениями, которые кто-то другой считает улучшениями, то эта программа не свободна.

Свобода передавать копии, если вам угодно: основные требования

Свобода распространять (свободы 2 и 3) означает, что вы вольны передавать копии, с изменениями или без них, бесплатно или взимая плату за распространение, кому угодно и где угодно. Свобода этих действий означает (кроме прочего), что вы не обязаны спрашивать разрешения на эти действия или платить за него.

У вас также должна быть свобода вносить изменения и пользоваться ими частным порядком на работе или в игре, даже без упоминания о том, что они существуют. Если же вы публикуете свои изменения, от вас не должны требовать извещать об этом кого-то конкретно или каким-то конкретным способом.

Свобода 3 распространяется на свободу выпускать версии с вашими изменениями как свободные программы. Свободная лицензия может допускать также другие способы выпуска этих версий; другими словами, она не обязательно должна быть лицензией с авторским левом. Однако лицензия, которая требует, чтобы измененные версии были несвободны, не может считаться свободной.

Свобода передавать копии должна распространяться как на двоичные или исполняемые формы программы, так и на исходный текст, с изменениями или без них (распространение программ в исполнимом виде необходимо для удобства в установке свободных операционных систем). Для некоторой программы может не существовать способа преобразования в двоичный или исполняемый вид (поскольку некоторые языки не поддерживают такой возможности), но вы должны быть вольны распространять программу в таком виде, если вы найдете или разработаете способ такого преобразования.

Авторское лево

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

В проекте GNU мы пользуемся авторским левом, чтобы юридически защитить эти четыре свободы для каждого. Мы убеждены, что есть веские доводы в пользу того, что авторским левом лучше пользоваться. Однако свободные программы без авторского лева тоже этичны. Описание того, как соотносятся друг с другом «свободные программы”, «программы с авторским левом” и другие разновидности программ, см. в классификации свободных программ.

Регламентация оформления и распространения

Правила оформления модифицированных версий допустимы, если они по существу не ограничивают вашу свободу выпускать модифицированные версии, а также вашу свободу делать и применять модифицированные версии частным порядком. Таким образом, допустимо, чтобы лицензия требовала изменения названия модифицированной версии, удаления эмблемы или идентификации ваших правок как принадлежащих вам. До тех пор, пока эти требования не настолько обременительны, чтобы фактически удерживать вас от выпуска своих изменений, они допустимы; вы уже вносите изменения в программу, так что вас не затруднит внести еще немного.

Правила, что «если вы делаете свою версию доступной тем образом, то вы должны также сделать ее доступной этим образом”, тоже могут быть приемлемы при том же условии. Пример такого приемлемого правила — правило о том, что если вы распространяли измененную версию, а предыдущий разработчик попросил ее копию, то вы должны ее выслать (обратите внимание, что это правило все же оставляет за вами выбор, распространять ли вашу версию вообще). Правила, которые требуют передачи пользователям исходного текста версий, которые вы предоставляете в общее пользование, также приемлемы.

Особая проблема возникает, когда лицензия требует изменения имени, под которым программа будет вызываться из других программ. Это по существу затрудняет вам выпуск своей измененной версии так, чтобы она могла заменить первоначальную при вызове теми другими программами. Этого рода требование допустимо, только если есть подходящее средство переназначения, позволяющее вам задать имя первоначальной программы как перенаправление на измененную версию.

Контроль экспорта

Иногда государственный контроль экспорта и торговые санкции могут ограничить вашу свободу передавать копии программ на международном уровне. Разработчики программ не в силах устранить или обойти эти ограничения, но отказаться от них как условий использования программы они могут. Таким образом эти ограничения не коснутся деятельности людей вне юрисдикции этих государств. Итак, лицензии свободных программ не должны требовать подчинения каким бы то ни было нетривиальным правилам экспорта как условия осуществления любой из существенных свобод.

Простое упоминание о существовании экспортных норм, без включения их в условия самой лицензии, приемлемо, поскольку это не ограничивает пользователей. Если экспортные нормы в действительности тривиальны для свободных программ, то требование их соблюдения в качестве условия в действительности не представляет проблемы; однако это потенциальная проблема, поскольку последующее изменение в законодательстве могло бы сделать это требование нетривиальным и тем самым обратить программу в несвободную.

Юридические соображения

Чтобы эти свободы были действительны, они должны быть непрерывны и неотзываемы до тех пор, пока вы не делаете ничего дурного; если за разработчиком программы остается право отозвать лицензию или добавлять ограничения в ее условия после факта распространения без какого бы то ни было повода с вашей стороны, то программа несвободна.

Лицензия свободной программы не может требовать соблюдения лицензии несвободной программы. Таким образом, например, если лицензия требует, чтобы вы соблюдали лицензии «всех программ, которыми вы пользуетесь”, в стучае пользователя, который работает с несвободными программами, это потребовало бы соблюдения лицензий этих несвободных программ; тем самым лицензия стала бы лицензией несвободных программ.

Для лицензии свободных программ допустимо указывать, закон какой юрисдикции применим, где должны проходить разбирательства или и то, и другое.

Лицензии на основе контрактов

Большинство лицензий свободных программ основано на авторском праве. У требований, которые можно налагать с помощью авторского права, есть свои пределы. Если основанная на авторском праве лицензия уважает свободу в описанных выше аспектах, то едва ли с ней будут проблемы другого рода, которых мы не предвидели (хотя временами это и случается). Однако некоторые лицензии свободных программ основаны на контрактах, а контракты могут налагать ограничения в гораздо более широких пределах. Это значит, что есть много возможных причин, по которым лицензия может быть неприемлемо жесткой и несвободной.

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

Говоря о свободных программах, выбирайте слова

Когда речь идет о свободных программах, лучше всего избегать употребления таких терминов, как «раздавать” или «бесплатные”, потому что эти термины подразумевают, что дело в стоимости, а не в свободе. Некоторые общепринятые термины, например «пиратство”, несут в себе точку зрения, которую вы, как мы надеемся, не одобряете. Эти термины обсуждаются на странице Запутывающие слова и выражения, которых стоит избегать. У нас есть также список верных переводов выражения «свободные программы” на разные языки.

Как мы трактуем эти критерии

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

Консультации по лицензиям свободных программ

Если вы интересуетесь, является ли конкретная лицензия лицензией свободных программ, обратитесь к нашему списку лицензий. Если лицензия, которая вас интересует, там не указана, вы можете спросить нас о ней, прислав запрос по адресу <licensing@gnu.org>.

Если вы собираетесь написать новую лицензию, пожалуйста, свяжитесь сначала с Фондом свободного программного обеспечения по указанному адресу. Увеличение количества разных лицензий свободных программ означает, что пользователям потребуется больше усилий, чтобы разобраться в них; мы, возможно, сумеем помочь вам подобрать существующую лицензию свободных программ, которая вам подойдет.

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

Кроме программ

Руководства по программам должны быть свободны по тем же причинам, по которым программы должны быть свободны, а также потому, что руководства фактически являются частью программ.

Те же самые аргументы имеют смысл для других разновидностей прикладных произведений — другими словами, произведений, которые содержат практические знания, такие, как учебники и справочники. Википедия — наиболее известный пример.

Любого рода произведение может быть свободно, и определение свободной программы было расширено до определения свободных произведений культуры, применимого к произведениям любого рода.

Открытый исходный текст?

Другая группа употребляет термин «открытый исходный текст” для обозначения близкого (но не тождественного) «свободным программам” понятия. Мы предпочитаем термин «свободная программа”, потому что, как только вы услышали, что он относится к свободе, а не к стоимости, он станет напоминать о свободе. Слово «открытый” не имеет никакого отношения к свободе.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Наверх