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

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

 

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 для улучшения вашего опыта.