Slide 1

Slide 1 text

1 Give me my drawing back! Fridrich Štrba Straight Engineer Dragging your proprietary files to free-sofware world Валек Филиппов Reverse Engineer

Slide 2

Slide 2 text

2 LibreOffice's contribution to wider FOSS eco-system libwpg, libvisio, libcdr and libmspub Standalone libraries Using the same interface Standalone framework to generate ODG Internal class generating SVG for lazy hackers :) Users outside LibreOffice Inkscape reuses libvisio and libcdr in 0.49 Calligra reuses libvisio and (possibly) libcdr Scribus recently started integration with libmspub More users, more bug reports and (eventually) fixes

Slide 3

Slide 3 text

Done!

Slide 4

Slide 4 text

4 Visio Import filter - libvisio Google Summer of Code 2011 Eilidh McAdam (currently Lanedo) Started with Visio 2000 – Visio 2010 file-formats LibreOffice 3.5 release Extended in 2012 to ALL Visio file-format versions that ever existed LibreOffice 4.0 release Visio 2013 (*.vsdx), Visio 1–5, Visio XML Drawings (*.vdx) Stencils/master shapes extraction Used in trunk inkscape (since December 2012)

Slide 5

Slide 5 text

5 Extending the Visio version coverage Bug driven rewrite A document (most likely generated by SDK) Re-factoring of the parser Microsoft Visio 2013 Preview xml-based (ooxml-ish) file-format (*.vsdx) Another rewrite of the parsers Side-effect: support of Visio XML Drawing (*.vdx) Versions 1 to 5 Improved understanding of the file-format Cleaner and simpler parser

Slide 6

Slide 6 text

6 CorelDraw import filter - libcdr Work started in late 2011 Released in LibreOffice 3.6 An interesting challenge after the success of libvisio Continuation of a fruitful collaboration Support for ALL CorelDraw file-formats Starting from version 1 (code Waldo) Ending by CorelDraw x6 released in March 2012

Slide 7

Slide 7 text

7 Extending the CorelDraw version coverage Extending the coverage upwards x4 and x5 (RIFF documents inside ZIP storage) x6 (More complicated ZIP-based structure) Extending the coverage downwards Version 6 (first 32-bit version) Versions 4 and 5 (16-bit versions) Version 3 (first RIFF-based version) Shape transform does not accumulate group transforms Versions 2 and 1 Not RIFF based at all

Slide 8

Slide 8 text

8 Microsoft Publisher Import filter - libmspub Google Summer of Code 2012 Brennan T. Vincent Flagship feature of LibreOffice 4.0 Version support MS Publisher 97 MS Publisher 98/2000 MS Publisher 2002-2013

Slide 9

Slide 9 text

Tools¡

Slide 10

Slide 10 text

10 OleToy and colupatr Developed for Reverse-engineering Collaboration between reverse and straight engineers RCA for import issues OleToy Support for many proprietary formats Knobs for quick navigation and information gathering Colupatr Hexviewer with variable string length “Hints” for values, comments, format for storing findings

Slide 11

Slide 11 text

11 Tools update Added support for CPT, PICT, CDW, CPL, CDX, ICC, CMX, QPW, RTF, ABR, BGR, ZIP Improved support for CDR, PUB, XLS, WMF, Escher Freehand 7, 8 and 9 support

Slide 12

Slide 12 text

¿Join?

Slide 13

Slide 13 text

13 Future file-formats to import Google Summer of Code LibreOffice mentoring organization in 2013 again The possibility for a student to work with outstanding mentors (Altsys, Aldus, Macromedia & Adobe) Freehand File-format partially reverse-engineered Ripe to be a successful project A talented student can make difference in LibreOffice and known universe

Slide 14

Slide 14 text

14 All text and image content in this document is licensed under the Creative Commons Attribution-Share Alike 3.0 License (unless otherwise specified). "LibreOffice" and "The Document Foundation" are registered trademarks. Their respective logos and icons are subject to international copyright laws. The use of these therefore is subject to the trademark policy. QA and Stoning session