Аудит открытого кода в вашем продукте

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

 

Written source offer

Обещание исходника

at least 3 years

не меньше 3 лет

After a first notice

После уведомления

30 days to cure

30 дней на исправление

After you stop

После прекращения

60 silent days

60 дней молчания

A patent grant

Патентное разрешение

ends the day you sue

снимается вашим иском

Когда нужен аудит открытого кода

Покупатель просит список компонентов

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

Вы выпускаете готовое устройство

Программа уезжает к покупателю внутри железа. Часть условий включается только в этот момент. Со страницей загрузки всё устроено иначе.

Заказчик просит гарантию возмещения убытков за весь продукт

По договору вы должны отвечать за продукт целиком. Но часть кода написали посторонние люди. И на условиях, которых никто не читал.

Вам пришла претензия

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

Сборка сама выбирает пакеты

Зависимости приводят с собой свои зависимости. Что попало в выпуск, решила система сборки. А лицензии к этим пакетам никто не читал.

Что вы получаете

  • Список всех компонентов сборки
  • Текст лицензии к каждому из них
  • Условия и то, что их включает
  • Файл уведомлений, который вы обязаны приложить
  • Правило, как добавлять новые пакеты

Что проверяет аудит открытого кода

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

Аудит письменно отвечает на три вопроса. Что лежит в сборке? Чего требует каждая лицензия? Какие из этих требований уже действуют для вашего выпуска? Кому принадлежит код вашей собственной команды — отдельная работа: это аудит цепочки прав.

Что проверяет аудит

  • Дерево зависимостей — в том виде, в каком его собирает система сборки. Включая пакеты, которые никто не выбирал.
  • Текст лицензии в самом пакете той версии, которую вы выпускаете. Не ярлык, который пакету присвоил каталог.
  • Код, скопированный вручную: куски с форумов, файлы примеров и сгенерированные фрагменты.
  • Как программа попадает к людям: загрузкой, в готовом устройстве, в приборе, как сервис по сети.
  • Что вы уже публикуете: файл уведомлений и экран благодарностей.

Откуда берутся условия

Одни условия требуют только передать документы дальше. Нужно сохранить в распространяемом исходном коде уведомления об авторстве, патентах, товарных знаках и авторах. Приложить копию лицензии. Пометить изменённые файлы. И воспроизвести файл уведомлений, если он пришёл с пакетом. Такой набор требует лицензия Apache версии 2.0.

Другие условия распространяются на ваш собственный код, причём в разной мере. Общественная лицензия Mozilla версии 2.0 охватывает файлы, где лежит её код. В том числе новые файлы, куда вы его перенесли. Стандартная общественная лицензия GNU охватывает всю работу, которую вы распространяете.

Стандартная общественная лицензия GNU Affero версии 3 идёт дальше. Если вы изменили программу и даёте людям пользоваться ею по сети, вы обязаны предложить им исходный код вашей версии. Бесплатно и с сетевого сервера.

Что прекращает разрешение

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

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

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

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

Источники: письменное обещание выдать исходный код (три года и пока вы предлагаете запчасти или поддержку для этой модели) и восстановление прав после шестидесяти дней молчания или исправления за тридцать дней с первого уведомления — в Стандартной общественной лицензии GNU; автоматическое прекращение — в её версии 2; выдача исходного кода по сети — в лицензии Affero; патент — в лицензии Apache.

Этапы работы

Собираем список компонентов — 3–5 рабочих дней.

Отправная точка — выпуск, который вы реально отдаёте людям. Сегодняшний вид репозитория здесь ни при чём. Мы возьмём дерево зависимостей этой версии со всем, что подтянулось по цепочке.

Читаем сами лицензии.

Лицензия — это файл внутри пакета. Ярлык в каталоге — только догадка о нём. Мы прочитаем текст и версию, которые пришли с пакетом, и запишем, какую именно прочитали.

Находим, где срабатывает каждое условие.

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

Отмечаем то, что распространяется на ваш код.

Мы отделим компоненты, которым нужны только уведомления, от тех, чьи условия переходят на всё, с чем вы их соединили. И скажем, как далеко заходит каждое из них в вашей сборке.

Чиним дешёвое и называем дорогое.

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

Отчёт и правило на будущее.

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

Эта услуга входит в более широкое направление «IP и контент».

Наши кейсы

Вход сингапурской IT-компании в Саудовскую Аравию

Клиент

Leading Singapore-based technology company

arrow_outward

Лидеры направления

Alexandra Kurdyumova

Александра

Курдюмова

arrow_outward
Anton Karpenko

Антон

Карпенко

arrow_outward

FAQ

Открытый код делает наш продукт открытым?
add
remove
Чего требует лицензия открытого кода?
add
remove
Что будет, если мы нарушили лицензию?
add
remove
Почему покупатели спрашивают про открытый код?
add
remove

Обсудить
Задание

Поговорите с нашей командой

Поговорите с нашей командой.
Расскажите нам о своей задаче —

мы поможем вам в этом в любой юрисдикции.

Расскажите о вашей задаче — 

разберёмся в любой юрисдикции.

Спасибо! Ваша заявка получена!
Упс! При отправке формы что-то пошло не так.

Мы используем файлы cookie для улучшения вашего опыта.