The Document Foundation, LibreOffice and OOXML
Questions and Answers
- 1 Does The Document Foundation support OOXML ?
- 2 Why does LibreOffice offer to read, edit and save documents in OOXML?
- 3 Is there a difference in the way OpenOffice and LibreOffice each support MOX ?
- 4 Ah! So Novell is bringing in odd software bits from Microsoft to betray Free Software!
- 5 Don't you feel as if you are betraying Free and Open Source Software, as well as Open Standards such as ODF?
- 6 What about other proprietary standards ?
- 7 Can I disable MOX support inside LibreOffice ?
- 8 Where can I find the code related to MOX support in LibreOffice?
- 9 Can I propose alternate patches for this feature?
- 10 Can I ship LibreOffice with the MOX support deactivated?
Does The Document Foundation support OOXML ?
The Document Foundation promotes and supports Open Standards. Among them OpenDocument Format (ODF), that offers many benefits to citizens, governments and businesses, and sets the documents and users free from proprietary lock-in.
The reason we enthusiastically promote ODF, is that we believe that no other standard provides the right level of vendor neutrality with widespread participation and implementation. We believe that ODF's absence of lock-in future proofs investment in both documents and software, to the great benefit of all citizens, governments and businesses. The Document Foundation does not promote nor support OOXML.
Why does LibreOffice offer to read, edit and save documents in OOXML?
Just like OpenOffice.org, LibreOffice lets its users handle documents in the format used by Microsoft Office 2007 and 2010. It is important to understand that these formats, also called OOXML are in fact somewhat different from the ISO standard bearing the same name; in fact it is unclear whether anyone is able to implement the ISO standard.
To avoid confusion, we will refer to the Microsoft formats produced by Microsoft Office as Microsoft Open XML (MOX) hereafter. To enable data interchange, LibreOffice and OpenOffice.org before it, has traditionally engaged with the reality of a world filled with data in many, less than ideal formats. Our users are used to exchanging data bi-directionally between many proprietary formats, and their Free Software equivalents. Indeed there are few choices for a non-dominant player to deliberately shun inter-operating, and remain relevant.
Is there a difference in the way OpenOffice and LibreOffice each support MOX ?
Yes, there are two. OpenOffice.org offers the ability to read Microsoft Office 2007 and 2010 documents, to access them, but not to save documents in these formats. LibreOffice does offer the added ability to save documents in these formats. However, OpenOffice.org does have the same ability; but so far, it has been deactivated from the software. We believe it is only a matter of time before such a feature gets reactivated.
The other difference is that LibreOffice embeds specific patches that improve the filters for Microsoft Office 2007 and 2010. These patches are easily identifiable in our code repository (see our technical FAQ) and their author is Novell.
Ah! So Novell is bringing in odd software bits from Microsoft to betray Free Software!
That's not really a question, but there are some things that are quite clear to the Document Foundation:
- Novell and the Document Foundation are not the same entities, nor does Novell own the Document Foundation. Novell is one contributor, among several others, to the Document Foundation.
- The patches related to the Microsoft Office formats support coming from Novell are the indirect result of a specific agreement between Novell and Microsoft. We use the word “indirect” here, as the agreement covers the software known as “OpenOffice Novell Edition”, and that's not the same as LibreOffice.
- To the best of the knowledge of the Document Foundation, there is no specific agreement between Novell and Microsoft about LibreOffice. (But then again, we are not Novell nor do we represent the company in any way).
Don't you feel as if you are betraying Free and Open Source Software, as well as Open Standards such as ODF?
No. And if we felt that way, we would take immediate action to remove the full stack. What we are offering our users is convenience; if we didn't offer these features we would not be serving users and we would get daily messages requesting the support of the new Microsoft Office formats. Besides, the same reasoning applies to the old Microsoft Office formats we support; and while it was thought for a while it was possible to prevent people from using these formats or even buying Microsoft Office, it turned out that it was not possible. We do believe, however, that by offering a full-featured and innovative office suite that exists among a rich and diverse ODF ecosystem, ODF shall prevail in the end.
What about other proprietary standards ?
Unfortunately, the world is not a perfect place, and as such user demand, and compatibility lead us to support many formats with dubious standards pedigree, or even no formal standard at all. One example is PDF – we ship by default with both export and import filters. Similarly, we can export slideshows to SWF (Flash). We also support various image formats of dubious repute exporting to: Windows Meta Files (WMF), Extended Meta Files (EMF), and even the widely loathed GIF file format. Clearly, none of these are recommended. We even have our own non-standardised Star View Metafile format (SVM) supported. Likewise, for documents we both export and import RTF files – despite these being the legacy of a previous document standards war, and clearly both export and import the legacy Microsoft binary file formats DOC / XLS / PPT. Finally, we import, export and execute Visual Basic for Applications macros, despite widespread loathing of this language.
Unfortunately, remaining relevant in the office space, requires such compromise – yet, we remain committed to driving and recommending Open Standards wherever possible.
Can I disable MOX support inside LibreOffice ?
You certainly are welcome to do so. First, MOX support can be deactivated by tweaking LibreOffice's XML configuration Check out this page and feel free to add to it. We encourage anyone to design an extension so that MOX support can be deactivated easily in two clicks.
Second, since we don't actually promote these formats, we are making very clear to our users that saving in these formats entails risks of various nature and that it is not our preferred format. ODF is. Saving in these formats will pop up the standard (localised) foreign format dialog, that reads:
"This document may contain formatting or content that cannot be
saved in Office Open XML Text file format. Do you want to save
the document in this format anyway?
Use the latest ODF file format and be sure all formatting and
content is saved correctly.
[ Keep Current Format ] [ Save in ODF Format ]
Bold sections added – we recommend ODF instead.
NB: we will likely change the text of this pop up screen later in order to stress on our preferred choice.
Some more technical details
You need to read the main FAQ about MOX first before you get here.
The MOX filter is split into two places. The export filter in writer re-uses the majority of the code that is now shared between RTF, DOC and DOCX export – that lives in sw/source/filter/ww8/ - and the primary files are prefixed docx* Similarly for calc ( sc/source/filter/) and impress (sd/source/filter/eppt, sd/source/filter/ppt) - code is shared. This reflects two things – first good engineering practice in not duplicating code, and secondly – the unsurprising similarity in the structure and content of the legact Microsoft binary file formats, and MOX. The import filters are substantially duplicated, and live in the oox/ directory for almost all but docx import filter which lives in writerfilter directory.
To determine the source of any individual pieces of code, simply run 'git annotate' on the given file when you have checked out the the git repositories, see here: Development/gerrit
Can I propose alternate patches for this feature?
Of course ! We welcome all useful code contributions. If you feel you have any improvements or changes to the code, please see Development/GetInvolved.
Can I ship LibreOffice with the MOX support deactivated?
Of course. The easiest way to do this is to search for Excel_2007 in filter/source/config/fragments/* and remove all instances – patches to do that as a build conditional to the list, as above. To disable the code compilation, the makefile.mk files in the above directories would need similar compile-time conditionals.