Re-lab отчитывается за 2011 год

Симбиотический организм из редакции линуксграфикса и проекта re-lab подготовил отчёт о своей деятельности в 2011 году, за которую ему ни капельки не стыдно.

Маленький хулиганский проект re-lab, занимающийся реверс-инжинерингом закрытых форматов, решил не восставать против системы и всё-таки подвести итоги года.

В истекшие 365 дней работа велась по следующим фронтам:

  • разбор VSD вместе c командой LibreOffice;
  • разбор прочих форматов MS Office;
  • разбор разных звуковых и графических форматов;
  • улучшение вспомогательных утилит.

Разбор форматов Visio

Начиная с мая проект re-lab работает с командой LibreOffice над разбором двоичных файлов VSD, создаваемых Microsoft Visio. Формат является достаточно распространённым, поскольку даже Visio 2003, который по-прежнему очень часто используется и умеет сохранять файлы VDX (основаны на XML), по умолчанию пишет всё-таки VSD.

Результатом сотрудничества по этому проекту стало существенное улучшение качества разбора VSD.

Основную работу по созданию библиотеки для чтения VSD выполнила шотландская студентка Эйлид МакАдам и её руководитель в программе GSoC Фридрих Штрба. Интервью с ними по итогам проекта GSoC можно почитать здесь.

Пример открытой сетевой схемы

Дополнительные материалы:

  • выступление Эйлид на LibreOffice Conference 2011;
  • презентация Фридриха на ODF PlugFest.

Выпуск LibreOffice с поддержкой файлов Visio «из коробки» запланирован на первую половину февраля 2012 года.

Работа над остальными форматами MS Office

Сотрудничество с LibreOffice стало серьёзным мотивом далее развивать программу OLE Toy, которая была изначально создана для разбора файлов Microsoft Publisher.

За лето в неё был добавлен разбор файлов EMF/EMF+ и WMF, CLP (буфер обмена Microsoft), PPT (PowerPoint), XLS (Excel), DOC и VBA, а осенью появился разбор баз данных MDB. Примерно тогда же программа была продемонстрирована разработчикам на LibreOffice Conference 2011.

OLE Toy была использована для анализа проблем с импортом файлов XLS в LibreOffice и Gnumeric, для подготовки тестовых файлов WMF/EMF/EMF+, для выявления (не)соответствия опубликованной спецификации алгоритмов сжатия модулей VBA используемых разными приложениями MS Office. За это время мы умудрились поработать и с командой Gnumeric.

Итогом этой работы стало исправление ряда ошибок в LibreOffice и Gnumeric:

  • fdo#38580 – проблема с показом кривых Безье из файлов EMF/EMF+ в OOo/LO, а также незарегистрированный в багзилле NULL dereference (исправлено Caolan McNamara), обнаруженный в процессе работы над исправлением этой ошибки;
  • fdo#41369 (LO) и bgo#660605 (gnumeric) – обеспечение багосовместимости с XL на кривых файлах сгенерированных 1C;
  • bgo#656531 (libgsf) – исправление алгоритма декомпрессии VBA, аналогичное исправление в LO сделал Noel Power;
  • fdo#42785 (LO) – падение LO при открытии странного ODT, пересохранённого из Calligra Suite;
  • bgo#614399 (gnumeric) – неправильные размеры ячеек при импорте кривых файлов сгенерированных 1C;
  • bgo#651260 – ошибка в Excel со вставкой в буфер обмена комментариев к ячейкам;
  • bgo#356711 (gnumeric) – неправильный импорт из XLS ячеек, содержащих строки с переносами;
  • bgo#304007, bgo#535473 (gnumeric) и fdo#33100 (LO) – разные проблемы с кодировкой в кривых XLS, сгенерированных 1C;
  • обзор проблем с поддержкой WMF в Calligra 2.4alpha3 (напрямую с Inge Wallin).

Уже упомянутое выше добавление поддержки MDB, улучшения в разборе DOC и XLS выполнялись с учётом пожеланий разработчиков LibreOffice и Calligra Suite.

Разбор прочих форматов

Летом в OLE Toy был перенесён, а затем и улучшен уже написанный ранее парсер файлов CDR. В конце ноября Фридрих начал работу над libcdr, так что скоро LibreOffice начнёт читать файлы Corel DRAW.

Кроме того, Фридрих планирует сделать на FOSDEM 2012 доклад о разработке импортировщиков графических форматов и предложить желающим поучаствовать в разработке импортировщика файлов Microsoft Publisher на базе libwpg/libwpd (эти же библитеки используются для libcdr и libvisio). Именно с этого формата началась разработка OLE Toy, так что минимальный разбор PUB уже выполнен.

В самом конце августе в OLE Toy был перенесён парсер FH (FreeHand), который в течение сентября и октября был улучшен настолько, что стало возможным написать простой экспортировщик в SVG, переносящий контуры и сплошную заливку.

Экспортированный файл FreeHand

Тогда же, в конце августа, к проекту re-lab ненадолго подключился разработчик JSynthLib Фрэнки Фишер, который улучшил парсер файлов REX/RX2 (Propellerhead Recycle).

OLE Toy и Colupatr

Совокупно за этот год в OLE Toy появилась поддержка (с разной степенью детальности) следующих форматов:

  • WMF, EMF, EMF+, CLP;
  • VBA, Escher, CFB;
  • PUB, VSD, VSS, XLS, DOC, PPT, MDB;
  • CDR (7-X4);
  • REX, RX2;
  • FH (9, 10, 11);
  • SVM.

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

Колупатр

Буквально неделю назад мы выложили Colupatr в открытый доступ и понемногу улучшаем его.

Оставьте первый комментарий

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*


Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.