- Up early, tech planning call, admin, lunch with Julia. Partner call, dug through bugs and patches, UX/Design stand-up.
This is a feed aggregator that collects what LibreOffice and Document Foundation contributors are writing in their respective blogs.
To have your blog added to this aggregator, please mail the website@global.libreoffice.org mailinglist or file a ticket in Redmine.
If you are working with LibreOffice code, trying to understand the code, fix bugs, or implement new features, you will need to debug the code at some point. Here are some general tips for a good debugging experience. Let’s start from the platform
Choosing a platform to debug usually depends on the nature of the problem. If the problem is Windows-only, you need a Windows environment to build and debug the problem. But, if the problems can be reproduced everywhere, then you can choose the platform of your choice with the debugging tools that you prefer to debug the problem.
On Linux, it matters if you are running X11 or Wayland. Also, as there are multiple graphical back-ends available for LibreOffice, it matters if you are using X11, GTK3/4, or Qt5/6 back-end for your debugging. Some bugs are specific to GTK, then you should use GTK3 UI for testing. In 2025, GTK4 UI of LibreOffice is still experimental, so it is better to work with GTK3. For making the debugging easier, many developers work on X11 (gen) UI for debugging.
Various debugging tools can be used to debug the soffice.bin/soffice.exe
LibreOffice binary that you have built. For the common debuggers, you can use GDB on Linux, lldb on macOS, and WinDbg or Visual Studio on Windows.
For using the above debuggers, you can use the IDE or front-end that support them. Various IDEs are usable with LibreOffice code. For a detailed explanation, refer to this Wiki article:
Make sure that you can build and debug a simple program before trying to build and debug LibreOffice.
To have a better debugging experience, or to avoid problems you may have to customize the debugging session with environment variables. A complete article of the TDF Wiki is dedicated to discuss the environment variables that can be used with LibreOffice:
Here is some of the most important ones:
1) Using the X11 user interface:
If you want to use the X11 back-end that is simpler, and usually easier to work with on debug sessions, you have to set SAL_USE_VCLPLUGIN
environment variable:
export SAL_USE_VCLPLUGIN=gen
That is specially useful when you are debugging graphical problems. But in some cases, you may need to avoid it or at least customize it. For example, while debugging mouse-related problems you may need to tell LibreOffice to avoid mouse grabbing this way:
export SAL_NO_MOUSEGRABS=1
2) Using GTK user interface
If you are using GTK user interface, then you may use GTK inspector to interactively debug LibreOffice GUI. You can use it this way:
export GTK_DEBUG=interactive
In solenv/gdb/
inside LibreOffice source code, you may find pretty printers for GDB. This is helpful when debugging LibreOffice with GDB, to be able to see data in a more readable way.
Sometimes when you debug a LibreOffice application, it is easier to …
Here’s a quick video recap from the recent LibreOffice Conference 2025 which took place in Budapest. Thanks to everyone who attended (The video is also available on PeerTube.)
Please confirm that you want to play a YouTube video. By accepting, you will be accessing content from YouTube, a service provided by an external third party.
If you accept this notice, your choice will be saved and the page will refresh.
Companies around the world use LibreOffice to reduce costs, improve their privacy, and free themselves from dependence on single vendors. Today we’re talking to Flotte Karotte, a German company with 50 employees that recently made a generous donation to support the LibreOffice project and community:
Flotte Karotte is an organic delivery service. We have been in business since 1996. Starting out as a marketing channel for regional growers with the aim of bringing organic produce to the masses, we have since become a full-range supplier. This means that in addition to fruit and vegetables, we also deliver bread, meat and sausage, dairy products, pasta, grains/seeds, sauces, spreads, cosmetics, etc. In other words, everything you would find in an organic supermarket. However, we focus on brands that are loyal to the organic trade and are not usually sold in conventional food retail outlets. We also prioritise association products (Bioland, Demeter) over EC organic products wherever possible.
We attach great importance to seasonality and regionality. Of course, the latter cannot be achieved for all products (bananas). Wherever possible, we try to source from regional growers. We have been working with regional farmers and vegetable growers for years. What makes us special is that we can offer smaller farms in particular a secure marketing channel. This enables the farms to grow more different crops and thus promote diversity. They would not be able to sell these smaller quantities in the wholesale market.
We currently have around 50 employees working in the office, and as drivers and in packing. Sustainability is also important to us when it comes to mobility. Since 2017, we have been increasingly focusing on electric mobility and now deliver almost exclusively by electric vehicle. In the Essen Rüttenscheid district, we deliver exclusively by cargo bike with our partner Roman from Frachtradler.
We have relied on open source from the very beginning. Among other reasons, this is of course due to cost considerations. However, it is also because, as in trade and cultivation, we are critical of the concentration of power and the associated dependence on a few providers in the software services sector.
We use Thunderbird as our email programme, Mozilla Firefox as our default browser, and LibreOffice as our office software (especially for word processing and spreadsheets). Our server runs on Linux, and we use Proxmox for virtualisation.
LibreOffice fully meets our requirements for office application software. There is only one compatibility issue with a public sector contractor who works with Microsoft. A formula used in their Excel spreadsheet is not supported by LibreOffice. However, the solution here should be for the public sector to become independent of proprietary software from the US.
Many thanks again to Flotte Karotte for their generous donation! We hope they continue to find LibreOffice useful for many years to come.
Once upon a time, there was a girl, who used WhatsApp in her iPhone. She was rather active there, and collected quite some important data in the app over time. But some things in her iPhone were inconvenient; and the phone was slowly aging. So she wanted to change her phone some day.
For her birthday, a fairy, who learned somehow about the girl’s wish, presented her a new Android phone. That was a nice new phone, and the girl was so happy! She decided to move everything from the old phone to the new one immediately.
She was worrying about how to move the precious data between the devices; but she felt a huge relief, when the phone spoke: “The fairy told me how important your data is to you; and I have magic powers to handle it all. Just connect the old phone to me with a cord”. So she did.
The new phone started its work; and the girl could see how the progress bar was gradually moving to completion; but suddenly it stopped; minutes passed, but the bar was motionless. The girl was impatient to start using her new shiny device, but she knew that she needs to wait. And she waited; and waited; but after an hour passed, she noticed something horrible: the old phone was sucking the life out of the new device through the cable!
The scared girl could only hope that the process would resume, and finish before the new phone is out of power. She searched and learned, that iPhones are known for their insatiable hunger, and whenever they are connected to anything with energy, they start sucking it. She couldn’t even ask the new phone to shine less brightly to save the energy – because it wasn’t ready for such things yet. She used her wireless charger, but its powers were fewer than the hunger of iPhone, combined with the hard work done by Android. The energy level still decreased too fast.
In the end, when the hope almost vanished, the progress resumed moving! But immediately, the new phone said: “When I collected your data from your old phone, something bad happened, and I failed to collect something. I will continue, but please check later, what’s missing!”.
Only a couple of energy drops were remaining in the new phone, when it finished its task, and could be disconnected from the vampire. But the girl was terrified, when she opened WhatsApp, connected to it (using a magic SMS confirmation), only to see that all her data is lost! She tried to open WhatsApp on the old phone to check if something is still there, and saw that the app had disconnected her. So she used the SMS magic again, and – to her great relief – everything was there!
She askes WhatsApp, how to move the data; and it answered, that if she moved from iPhone to iPhone, or from Android to Android, she could use a backup; but from …
The Annual Report of The Document Foundation describes the foundation’s activities and projects, especially in regard to LibreOffice and the Document Liberation Project.
We’ve been posting sections of the 2024 report here on the blog, and now the full version is available in PDF format on TDF’s Nextcloud server in two different versions: low resolution (6.6MB) and high resolution (56.2MB). The Annual Report is based on the German version presented to the authorities.
The document has been entirely created with free open source software: written contents have obviously been developed with LibreOffice Writer (desktop) and collaboratively modified with LibreOffice Writer (online), charts have been created with LibreOffice Calc and prepared for publishing with LibreOffice Draw, drawings and tables have been developed or modified (from legacy PDF originals) with LibreOffice Draw, images have been prepared for publishing with GIMP, and the layout has been created with Scribus based on the existing templates.
We at The Document Foundation are very grateful to all contributors to our projects and communities in 2024 – none of this would be possible without you!
Troubleshooting opening, formatting, and data loss issues with Open Document Format files
ODF files are great for sharing documents across multiple platforms, but they don’t always work perfectly, especially when using Microsoft Office or other software based on proprietary formats. If you’ve encountered problems opening, editing, or preserving the formatting of .odt, .ods, or .odp files, you’re not alone.
Here’s an overview of the most common compatibility issues with ODF files, along with their solutions.
1. The ODF file does not open in Microsoft Office
Opening an .odt file with Word or an .ods file with Excel is unsuccessful, and the file opens with formatting errors. Microsoft Office supports ODF, but not always correctly, and although support has improved in recent versions, files continue to have difficulties with some features.
There are two solutions: updating Microsoft Office, as compatibility improves with each new version; and converting with LibreOffice, which natively handles ODF files and, in compatibility mode, .docx and .xlsx files much better than Microsoft Office does with .odt and .ods files.
2. Formatting changes during transfer between suites
A file may appear perfect in LibreOffice, but when opened in Microsoft Office, the layout, fonts or spacing may change. This happens because the two software programmes interpret elements such as text boxes, tables and styles differently. Line spacing and bullet points may also change.
The solution is to use simple formatting in all cases where the file is shared between multiple office suites, avoiding complex layouts, unusual fonts and embedded elements. If formatting is more important than editability, you can use PDF format for the final version.
3. Images and graphics disappear or become corrupted
Images or graphics embedded in the document disappear, become distorted or can no longer be edited when opened with other software. This is because their formats are specific to the software that created the file – and therefore proprietary – and not standard, as is often the case with Microsoft Office.
The solution is to use standard formats, such as PNG or JPG for bitmap images, and SVG for vector images. In some cases, it is advisable to convert images before embedding them in the document and, if possible, simplify them (without altering them).
4. Macros and scripts do not work
Macros written in one suite do not work (or cause errors) in another. This is a known problem, linked to the fact that the scripting languages – Microsoft Office VBA and LibreOffice Basic – are proprietary and therefore incompatible with each other.
The solution is to avoid macros when sharing files, and if it is really impossible to do without them, you need to rewrite the scripts for each platform, using the respective languages. Unfortunately, there are no shortcuts or interoperable solutions.
5. Some data is lost when saving in proprietary format
In some cases, quite sporadic, saving an ODF file in proprietary format causes data loss. Unfortunately, this is a problem due to the artificial complexity of Microsoft Office proprietary files, which use …
C++ Standard library, which resides in std::
namespace provides common classes and functions which can be used by developers. Among them, Standard Template Library (STL) provides classes and functions to better manage data through data structures named containers. Here I discuss how to use STL functions for better processing of data, and avoid loops.
To iterate over a container to see if some specific condition is valid for all, any, or none of the elements in that container, C/C++ developers traditionally used loops.
On the other hand, since C++11, there are functions that can handle such cases: all_of
, any_of
and none_of
. These functions process STL containers, and can replace loops. If you want to know if a function returns true for all, any, or none of the items of the container, then you can simply use these functions. This is the EasyHack dedicated to such a change:
Here is an example patch which uses any_of instead of a loop:
- bool bFound = false; // convert ASCII apostrophe to the typographic one const OUString aText( rOrig.indexOf( '\'' ) > -1 ? rOrig.replace('\'', u'’') : rOrig ); - size_t nCnt = aVec.size(); - for (size_t i = 0; !bFound && i < nCnt; ++i) - { - if (aVec[i] == aText) - bFound = true; - } + const bool bFound = std::any_of(aVec.begin(), aVec.end(), + [&aText](const OUString& n){ return n == aText; });
As you can see, the new code is more concise, and avoids using loops.
If you want to copy, remove or simply find a value in a container which conforms to a specific functions, you may use copy_if
, remove_if
or find_if
.
Again, this is an example patch:
- for ( size_t i = 0; i < SAL_N_ELEMENTS( arrOEMCP ); ++i ) - if ( arrOEMCP[i] == codepage ) - return true; - - return false; + return std::find(std::begin(arrOEMCP), std::end(arrOEMCP), codepage) != std::end(arrOEMCP);
Refactoring code is a good way to improve knowledge on LibreOffice development. The above EasyHacks are among EasyHacks that everyone can try.
More information about EasyHacks, and how to start working on them can be found on TDF Wiki:
Zdeněk Crhonek (aka “raal”) from the Czech LibreOffice community writes:
The Czech translation of the LibreOffice Calc Guide 25.2 is now available, thanks to the endless efforts of our team. It was translated by Petr Kuběj, Radomír Strnad and me. The Czech screenshots were done by Roman Toman, Petr Kuběj and me. Preparation of the chapters for translation was done in OmegaT – machine translation as suggestions, reuse of old screenshots etc. was done by Miloš Šrámek. Thanks to everyone for the hard work, and if anyone would like to join the team, they are welcome to do so.
Great work everyone!
A few weeks ago, Linux New Media released an updated version of its “LibreOffice Expert” magazine, which contains tutorials, tips and tricks about the office suite. And some articles were contributed by members of the LibreOffice community! The magazines come with DVDs that include LibreOffice for Linux, Windows and macOS, alongside extra templates, extensions, videos and guidebooks.
We have some copies to give away, for schools, universities, libraries and local communities. Ideally, we’d like to get these magazines out to places where internet connections aren’t always available – so that the users can really benefit from the DVDs.
So, if you can help us to distribute these magazines, drop us a line! Please note that we have 50 copies in total and can therefore only send a maximum of five copies to any one place, to make sure many communities get a chance. When you contact us, please include this information (any requests without information cannot be fulfilled and will be ignored):
Include all of that that information in an email to us and let’s see what we can do!
(Note: if you want to buy the magazine directly from the publisher, you can do so here.)
Writer has some support for interdependent (or hierarchical) tracked changes: e.g. the case when you have a delete on top of an insert. See the second post for background.
This work is primarily for Collabora Online, but the feature is available in desktop Writer as well.
With the already mentioned improvements in place, the area of format redlines with character style or direct formatting changes were still lacking: Writer's original model here was just marking a text range as "formatted" and then either accept the format redline as-is, or reject reverting back to the paragraph style (default formatting), losing the old character style or old direct formatting.
Here is a sample case of a document where the old character style is Strong (~bold) and the font size is 24pt, while the new character style is Quote (~italic) and the font size is 36pt. The rest of the document uses no specific character styles and has the font size of 12pt:
Interdependent tracked change: improved format, after document load
Rejecting that format redline resulted in just the defaults, i.e. no character style and 12pt font size:
Interdependent tracked change: old reject, lost character style / direct format
But now we track the old character style & direct format:
Interdependent tracked change: new reject, handled character style / direct format
This required changes in the DOCX import, ODF import and ODF export, too.
If you would like to know a bit more about how this works, continue reading... :-)
As usual, the high-level problem was addressed by a series of small changes. Core side:
You can get a development edition of Collabora Online 25.04 and try it out yourself right now: try the development edition. Collabora intends to continue supporting and contributing to LibreOffice, the code is merged so we expect all of this work will be available in TDF's next release too (26.2).
Berlin, 8 September 2025 – The Document Foundation announces the release of LibreOffice 25.2.6, the sixth maintenance release of the LibreOffice 25.2 family, available for download at www.libreoffice.org/download [1].
LibreOffice 25.2.6 is based on the LibreOffice Technology, which enables the development of desktop, mobile and cloud versions – either from TDF or from the ecosystem – that fully support the two ISO standards for document formats: the open ODF or Open Document Format (ODT, ODS and ODP) and the closed and proprietary Microsoft OOXML (DOCX, XLSX and PPTX).
Products based on the LibreOffice Technology are available for all major desktop operating systems (Windows, macOS, Linux and ChromeOS), mobile platforms (Android and iOS) and the cloud.
For enterprise-class deployments, TDF recommends a LibreOffice Enterprise optimized version from one of the ecosystem companies, with dedicated value-added features and other benefits such as SLAs and security patch backports for three to five years (www.libreoffice.org/download/libreoffice-in-business/).
English manuals for the LibreOffice 25.2 family are available for download at https://books.libreoffice.org/en/. End users can get first-level technical support from volunteers on the user mailing lists and the Ask LibreOffice website: ask.libreoffice.org.
Downloading LibreOffice
All available versions of LibreOffice for the desktop can be downloaded from the same website: www.libreoffice.org/download/.
LibreOffice users, free software advocates and community members can support The Document Foundation and the LibreOffice project by making a donation: https://www.libreoffice.org/donate.
[1] Fixes in RC1: wiki.documentfoundation.org/Releases/25.2.6/RC1. Fixes in RC2: wiki.documentfoundation.org/Releases/25.2.6/RC2.
We’re gathered together at the LibreOffice Conference 2025 in Budapest. A big thanks to the organisers! Here’s the group photo we took this afternoon. Of course, this is just one part of the wider LibreOffice community, made of hundreds of people.
Yes, the conference in Budapest has started. If you’re not there in-person, join one of the chat channels linked to on the site and you can watch talks remotely. Enjoy!
Imprint Privacy Policy | |
The Document Foundation is not responsible for the content on planet.documentfoundation.org. However - if you have any concerns about content please contact act Uwe Altmann for moderation. Copyright information: Unless otherwise specified in the author's blog, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the "Mozilla Public License v2.0". "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy. |
![]() |
this site runs a modified version of planet.opensuse (https://github.com/openSUSE/planet.opensuse.org) © 2010 Pascal Bleser and the openSUSE Community. |