Всем известно, что автомобильное программное обеспечение Tesla создано на базе open source проектов, а именно на операционной системе Linux под лицензией GPL. Эта лицензия требует у разработчиков производных программ обязательно публиковать свой исходный код. Иначе это превращается в улицу с односторонним движением, когда разрешено только брать, но не отдавать. Но именно так до недавнего времени поступала Tesla.
В мае 2018 года процесс сдвинулся с мёртвой точки: Tesla опубликовала значительную часть кода софтверного релиза Model S/X 2018.12. Это системный образ платформы Tesla Autopilot, системный код для аппаратного обеспечения и код информационно-развлекательной системы на базе Nvidia Tegra, которая работает в автомобиле.
Репозитории на Github:
https://github.com/teslamotors/buildroot
https://github.com/teslamotors/linux
Фонд Software Freedom Conservancy поздравил компанию с «первым публичным шагом на пути к выполнению условий GPL». Фонд отметил, что редко публично рассказывает о специфике текущих разбирательств с корпорациями, нарушающими условия лицензии. Обычно нарушители просят соблюдать конфиденциальность и не выносить вопрос на публику, чтобы не подвергаться общественному порицанию. Очень редко компания открыто и публично признаёт факты нарушений и публично начинает их исправлять. Так несколько лет назад поступила Samsung, а сейчас — Tesla.
Переговоры с Tesla велись с июня 2013 года, когда появились многочисленные сообщения о нарушении GPL в автомобиле Tesla Model S. Покупателям автомобиля была поставлены автомобили с компьютерной системой, которая работала на Linux и BusyBox. При этом покупатели не получили никаких исходников.
Кроме Tesla, одновременно велись переговоры с поставщиками программного обеспечения для Tesla — Nvidia и Parrot по раскрытию полных соответствующих исходников (complete, corresponding source, CCS) для всех бинарных файлов под GPL, найденных в Tesla Model S. В частности, компании Nvidia принадлежит найденный в автомобиле бинарник 2.15.50.img.bz2, а компании Parrot — бинарник firmware_2.12.126. Первый из них, вероятно, соответствует так называемой платформе Tesla Autopilot 2.
На протяжении этого времени Tesla предоставила Фонду несколько CCS-кандидатов, которые не были ни полными, ни соответствующими бинарникам. Соответственно, специалисты Software Freedom Conservancy помогали советами Tesla, как исправить ситуацию.
По условиям CCS, исходники должны соответствовать двум условиям:
- Из них можно скомпилировать бинарник, в точности совпадающий с бинарником в автомобиле.
- Пользователь должен иметь возможность заменить бинарник в автомобиле на свой.
Казалось бы, мелкие формальности, но очень важно их обязательно соблюдать.
Важно понимать, что этот этап — приведение исходников в полное соответствие — самый длительный. Может охватить ложная радость, что от отсутствия исходников мы перешли к наличию. Но нет, это ещё далеко не всё. Очень важно соблюдение всех требований GPL.
Однако в мае 2018 года Tesla решила выбрать неожиданный курс — и сама опубликовала на Github исходники, которые не полностью соответствуют CCS. Фонд Software Freedom Conservancy приветствует этот шаг как публичное признание своих нарушений, однако напоминает о необходимости привести всё-таки код в соответствующий вид. С этой целью создан публичный лист рассылки для обсуждения релиза от Tesla. Первое же сообщение в списке — анализ CCS-кандидата, который опубликован на Github и в реальности является седьмым по счёту CCS-кандидатом.
В отчёте говорится, что опубликованные исходники только частично содержат код от Nvidia (отсутствуют исходники файлов 88w8688_uap.ko и 88w8688_uap_mlan.ko из Tesla Model S), а код Parrot полностью отсутствует.
Таким образом, дело сдвинулось с мёртвой точкой. Если Tesla продолжит работу в этом направлении, откроет соответствующий портал свободного ПО, будет выкладывать полные релизы ПО для каждой модели, то тогда любой владелец машины Tesla сможет скачать, скомпилировать и установить на свою машину свежую версию автопилота или другого софта. Вот это будет полное соответствие условиям GPL.
Автор: alizar