Зафиксированы и опровергнуты факты прямого копирования кода Java SE в Android
21 января 2011 года
Флориан Мюллер (Florian Mueller), известный борец с патентованием программного обеспечения, опубликовал результаты изучения обоснованности обвинений Oracle в копировании оригинального кода платформы Java при реализации платформы Android. Выявленные в процессе исследования факты превзошли все ожидания - как минимум 43 файла в дереве исходных текстов платформы Android содержат достаточно большие блоки кода, полностью совпадающие с оригинальным кодом платформы Java SE.
Более того, в 37 файлах из состава Android явно присутствует пометка об их проприетарном или конфиденциальном характере. Данные файлы судя по всему имеют отношение к реализации Mobile Media API из состава Sun Java Wireless Toolkit. Например, заголовок файла PolicyNodeImpl.java гласит "Copyright 2004 Sun Microsystems, Inc. All rights reserved. SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.".
Еще 6 файлов из состава платформы Android 2.2 и 2.3 явно декомпилированы из Java 2 Standard Edition и перелицензированы под лицензией Apache без согласования с правообладателем. Даже если допустить, что в конечном итоге данные файлы входят в состав OpenJDK и поставляются под лицензией GPL, самовольное изменение лицензии может иметь серьезные последствия.
Примечательно, что в обвинительных материалах Oracle [a фигурировали] достаточно спорные утверждения, связанные как правило не с непрерывными блоками кода, а с совпадением структуры и частичным пересечением имен методов и переменных в библиотеке классов Java. Полный отчет о проделанной Флорианом Мюллером работе с детальным построчным сравнением кода можно прочитать по следующим ссылкам: 1, 2, 3, 4, 5, 6, 7, 8, 9.
Тем не менее, опровергнуть обнаруженные факты оказалось значительно проще, чем предполагалось. Почти сразу после публикации была изложена другая точка зрения, в которой показано, что выводы Флориана Мюллера являются ошибочными.
Семь из фигурирующих в разборе файлов (PolicyNodeImpl.java, AclEntryImpl.java, AclImpl.java, GroupImpl.java, OwnerImpl.java, PermissionImpl.java и PrincipalImpl.java) находятся в исходных текстах в каталоге unit-тестов(недоступная ссылка), т.е. используются только для внутреннего тестирования и не входят в конечный продукт. Данные файлы были в свое время опубликованы на сайте Sun для упрощения отладки и тестирования кода. Изменение лицензии в данных файлах можно объяснить результатом работы какого-то скрипта, который автоматически добавил упоминание лицензии Apache во все файлы проекта. Более того, эти файлы уже удалены из репозитория: PolicyNodeImpl.java удален 20 октября 2010 года, а остальные файлы - удалены 14 января 2011 года. Причем удалены с комментарием "удаление бессмысленных тестов".
Остальные 37 файлов представлены в репозитории внутри архива MMAPI.zip, который находится в директории(недоступная ссылка) с кодом аудиодрайвера для одного из поддерживаемых чипсетов. Архив MMAPI.zip содержит модифицированную версию Java ME Mobile Media API (MMAPI) и был добавлен не Google, а входящей в альянс Open Handset Alliance компанией SONiVOX. Код был добавлен в рамках разработки фреймворка Embedded Audio Synthesis (EAS). В сборке платформы данные файлы не участвуют, в документации на фреймворк EAS данный архив помечен как не подлежащий распространению набор примеров. Судя по всему MMAPI.zip был загружен по недосмотру.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.