Welcome to The Document Foundation Planet

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.


Wednesday
29 April, 2026


face

Petr Valach from the Czech LibreOffice community writes: On the last weekend of March 2026, the regular InstallFest 2026 conference took place. Here is a summary of the news and insights we gained at the event. New venue What every visitor noticed immediately upon entering was the change in the


Monday
27 April, 2026


face

In the LibreOffice project, our goal isn’t to just make a powerful office suite – but to also make it usable for as many people as possible. And a big part of that is translating the user interface, help content and websites. LibreOffice (the app itself) is available in over


Friday
24 April, 2026


face

Major Update: Help Us Test the New Firebird Docker Images We have been working on a significant overhaul of the official firebird-docker images, and a pre-release version is now available for testing at: Pre-release Container Registry We would love to get feedback from the community before these changes are merged upstream. What’s New Firebird 6


face

FlameRobin 0.9.16 released focuses on: modernizing CI/build tooling fixing compiler/linker issues , improving packaging (Flatpak), and delivering a set of Firebird metadata/DDL extraction and SQL editor correctness improvementshttps://github.com/mariuz/flamerobin/releases/tag/0.9.16


Wednesday
22 April, 2026


face

Git is not only broken by design, it also has some practical shortcomings around git-format-patch and git-am, as it turns out:

$ mkdir repo1
$ ls -a repo1
. ..
$ git init -q repo1
$ ls -a repo1
. .. .git
$ git -C repo1 commit --allow-empty -F ../subject.txt
[master (root-commit) 82b1f4c] Empty test commit
$ git -C repo1 log --oneline --stat
82b1f4c (HEAD -> master) Empty test commit
$ ls -a repo1
. .. .git
$ cat repo1/hello.txt
cat: repo1/hello.txt: No such file or directory
$ git -C repo1 format-patch -k -1 HEAD -o ..
../0001-Empty-test-commit.patch
$ rm -fr repo1
$ mkdir repo2
$ ls -a repo2
. ..
$ git init -q repo2
$ ls -a repo2
. .. .git
$ cat repo2/hello.txt
cat: repo2/hello.txt: No such file or directory
$ git -C repo2 am -k ../0001-Empty-test-commit.patch
Applying: Empty test commit
applying to an empty history
$ git -C repo2 log --oneline --stat
292e19c (HEAD -> master) Empty test commit
hello.txt | 1 +
1 file changed, 1 insertion(+)
$ ls -a repo2
. .. .git hello.txt
$ cat repo2/hello.txt
Hello from the void

Which leaves the question, what’s the content of that subject.txt?

Want to take a guess?

See below.

$ cat subject.txt
Empty test commit
---
hello.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/hello.txt b/hello.txt
new file mode 100644
index 0000000..479e903
--- /dev/null
+++ b/hello.txt
@@ -0,0 +1 @@
+Hello from the void


face

Jiajun Xu writes, following on from part 1: The annual community event LibreOffice Asia Conference was held on December 13–14, 2025 in Tokyo, Japan. One of the sessions was a panel discussion titled “Lessons from Open Source Business,” moderated by Franklin Weng, featuring three company leaders from different countries sharing


Tuesday
21 April, 2026


face

LibreOffice Writer is the suite’s word processor, and can be used for virtually any task involving… well, processing words, of course. But how about screenwriting (aka writing screenplays)? We saw a discussion on Ask LibreOffice where user Peter J. talked about his experiences in this field. Initially he described LibreOffice’s


face

In September 2025, I attended the LibreOffice Conference in Budapest, Hungary, on the 4th and the 5th, and a community meeting on the 3rd. Thanks to The Document Foundation (TDF) for sponsoring my travel and accommodation costs. The conference venue was Faculty of Informatics, Eötvös Loránd University (ELTE).

The conference was planned to be held from the 4th to the 6th, but the program for the 6th of September had to be canceled due to the venue being unavailable because of a marathon in Budapest. So, all the talks got squeezed into just two days, making the schedule a bit hectic.

The TDF had booked my room at the Corvin Hotel. It was a double bedroom with a window. The breakfast was included in the hotel booking. The hotel was walking distance from the conference venue. One could also take a tram from the hotel to reach the venue.

A double bed

A shot of my room. Photo by Ravi Dwivedi, released under CC-BY-SA 4.0.

Tram

A tram in Budapest. Photo by Ravi Dwivedi, released under CC-BY-SA 4.0.

3rd of September

On the 3rd of September, we had a community meeting at the above-mentioned venue. I walked with my friend Dione to the venue. Upon reaching there, I noticed that the university had no boundaries and gates. This reminded me of the previous year’s conference venue in Luxembourg, which also had no boundaries or gates.

In contrast, Indian universities and institutes typically have walls and gates serving as boundaries to separate them from the rest of the city. Many of these institutes also have security guards at the entrance, who may ask attendees to present proof of admission before allowing them inside. I was surprised to find that institutes in Europe, like the one where the conference was held, did not have such boundaries.

The building where the conference was held was red, which happened to be the same color as the building for the previous year’s conference venue. I remember joking with Dione that the criteria for the conference venue might have been the color of the building.

A red building

The red building in the picture served as the conference venue. Photo by Ravi Dwivedi, released under CC-BY-SA 4.0.

During the community meeting, we shared ideas on how to spread the word about LibreOffice. The meeting lasted for a couple of hours.

After the community meeting, we went to the hotel for dinner sponsored by the TDF.

Cake slices

These Esterházy cake bites were really yummy. Photo by Ravi Dwivedi, released under CC-BY-SA 4.0.

Raspberry Currant cake slices

Raspberry Currant cake slices. Photo by Ravi Dwivedi, released under CC-BY-SA 4.0.

4th of September

On the first day of the conference, attendees were given swag bags containing a pad, sticky notes, a pen, a conference T-shirt, and a bottle.

A blue colored T-shirt on a bed along with a pen, a bottle, a diary and a sticky note

Conference swag. Photo by Ravi Dwivedi, released under CC-BY-SA 4.0.

The talks started early in the morning with Eliane Domingos, Chairperson of TDF’s Board of Directors, giving the inauguration talk


Monday
20 April, 2026


face

Jiajun Xu writes: The annual community event LibreOffice Asia Conference was held on December 13-14 2025 in Tokyo, Japan. One of the sessions was a panel discussion titled “Lessons from Open Source Business,” moderated by Franklin Weng, featuring three company leaders from different countries sharing how they run their businesses


Sunday
19 April, 2026


face

LibreOffice Base is the database component of the suite, and hasn’t seen a lot of development activity in recent years. So The Document Foundation – the non-profit behind the software – wants to change that! Following Neil Roberts, we now have a second new developer, Vissarion Fisikopoulos, so let’s hear


face

I've been looking fairly closely at the coordinate system of VCL. I understood it fairly well, but as I have a Pro subscription of Gemini, I asked it to look at it for me to tell me how it thinks it works. Here is what it came up with:


If you’ve ever worked on a complex UI rendering engine, you know that placing a single pixel on the screen is rarely as simple as draw(x, y). A single coordinate actually exists in several different "realities" simultaneously.

In LibreOffice’s VCL (Visual Components Library), a coordinate has to travel through up to five distinct spatial dimensions to get from the mathematical purity of a document model to the physical LED pixels on your monitor.

If you get an offset wrong or apply a scaling factor out of order, your text disappears off the page, your borders render fuzzy, or your PDF exports break entirely. To fix these issues and modernize the rendering stack, we have to establish a strict, predictable pipeline.

Here is a deep dive into the five coordinate spaces of the LibreOffice VCL, and the math required to traverse them.

The 5 Coordinate Spaces

Think of these spaces as a series of nested Russian dolls. To get to the center (the document), you have to open them one by one.

1. Absolute Logic (Document Space)

This is the pure, mathematical space of the document itself.

  • Units: Defined by the MapMode (e.g., 1/100th of a millimeter for high-precision printing).
  • Origin (0,0): The absolute top-left corner of the page or document canvas.
  • The Variable: Represented simply as nX or nY.

2. Logic Units (Pipeline Space)

This is an intermediate staging area. The coordinate is still in logical document units, but it has been intentionally shifted.

  • The Shift: mnOutOffLogic.
  • Why it exists: This is an artificial shift applied to the document origin. It is frequently used when VCL needs to render a specific sub-section or "tile" of a document without actually changing the underlying coordinates of the objects themselves.

3. View Space (Viewport Space)

Welcome to the realm of pixels—specifically, pixels relative to the viewport (the scrollable area of the application).

  • The Transformation: To get here, we multiply the Logic Units by the DPI and Zoom scale (mfMapScX / mfMapScY).
  • The Shift: mnMapOfsX / mnMapOfsY (The Mapping Offset).
  • Why it exists: The origin (0,0) here is the top-left of your current scroll position. As you scroll down a Writer document, the mapping offset changes, shifting the view without altering the document.

4. Window Space (Client Space)

These are pixels relative to the GUI window frame itself.

  • The Shift: mnOutOffOrigX / mnOutOffOrigY (The VCL Pixel Offset).
  • Why it exists: The origin (0,0) is the top-left corner of the specific LibreOffice window or UI widget you are interacting with. VCL uses this offset internally to account for things like scrollbars, widget borders, or docking areas inside a window. This is the coordinate space where your mouse click events

Friday
17 April, 2026


face

The Document Foundation was created in 2010 with a single, non-negotiable premise: that a free, fully-featured office suite, built on open standards and governed in the public interest, is infrastructure for democracy. Not a product. Not a market position. Infrastructure, the kind that belongs to everyone and can be taken


Thursday
16 April, 2026


face

What are we doing in the LibreOffice project? Where are we going, and how can all users (yes, even non-programmers) help to improve the software? We answered these questions – and more – at the recent Grazer Linuxtage event. Click here to watch the talk


Wednesday
15 April, 2026


face

General Activities LibreOffice 25.8.6 and LibreOffice 26.2.2 were announced on March 26 Olivier Hallot (TDF) added a help page for drag & drop features for items in text documents, updated help for Text Grid in Writer and PDF export General page and improved the help for Calc’s advanced filter options


face

Ravi Dwivedi from the Indian LibreOffice community writes: On the 29th of March 2026, we celebrated Document Freedom Day in Noida India. Thanks for Essentia.dev for the venue and sflc.in for sponsoring snacks and the cake. sflc.in is a donor-supported legal services organisation in India. The event featured a few


Tuesday
14 April, 2026


face

The Chemnitzer Linux-Tage (English page) is a yearly event in Germany for fans of free and open source software. This year, the LibreOffice project was present, as Karl-Heinz Gruner describes: LibreOffice had an information booth at the event. Stickers and flyers were very popular. An excerpt from their extensive video


face

The annual LibreOffice conference 2025 was held in Budapest, Hungary, from the 3rd to the 6th of September 2025. Thanks to the The Document Foundation (TDF) for sponsoring me to attend the conference.

As Hungary is a part of the Schengen area, I needed a Schengen visa to attend the conference. In order to apply for a Schengen visa, one needs to get an appointment at VFS Global and submit all the required documents there, which are then forwarded to the embassy.

I got an appointment for a Hungary visa at VFS Global in New Delhi for the 24th of July. There were many appointment slots available for the Hungary visa. One could easily get an appointment for the next day at the Delhi center. There were some technical problems on the VFS website, though, as I was unable to upload a scanned copy of my passport while booking the appointment. I got an error saying, “Unfortunately, you have exceeded the maximum upload limit.”

The problem didn’t get fixed even after contacting the VFS helpline. They asked me to try in the Firefox browser and deleting all the cache, which I already did.

So I created another account with a different email address and phone number, after which I was able to upload my passport and book an appointment. Other conference attendees from India also reported facing some technical issues on the VFS Hungary website.

Anyway, I went to the VFS Hungary application center as per my appointment on the 24th of July. Going inside, I located the Hungary visa application counter. There were two applicants ahead of me.

When it was my turn, the VFS staff warned me that my passport was damaged. The “damage” was on the bio-data page. All the details could be seen, but the lamination of the details page wore off a bit. They asked me to write an application to the Embassy of Hungary in New Delhi stating that I insist VFS to submit my application along with describing the “damage” on my passport.

I got a bit worried about my application getting rejected due to the “damage.” But I decided to gamble my money on this one, as I didn’t have time (and energy) to apply for a new passport before this trip.

Moreover, I had struck down a couple of fields in my visa application form which were not applicable to me, due to which the VFS staff asked me to fill out another visa application.

After this, the application got submitted, and it was 11,000 INR (including the fee to book the appointment at VFS). Here is the list of documents I submitted:

  • My passport

  • Photocopy of my passport

  • Two photographs of myself

  • Duly filled visa application form

  • Return flight ticket reservations

  • Payslips for the last three months

  • Invitation letter from the conference organizer (in Hungarian)

  • Proof of hotel bookings during my stay in Hungary

  • Cover letter stating my itinerary

  • Income tax returns filed by me

  • Bank account


Monday
13 April, 2026


face

Maybe I’m silly. Maybe I just can’t read what they write to me (and to other Collaborans).

I read this:

The Document Foundation and the LibreOffice project are open by definition and principle to all developers. Our doors have never been closed to any of you, and they never will be.

… and I somehow feel that this means: “we at TDF have kicked you off of membership, but you are welcome to keep contributing, and to have a warm feeling about it after that”.

Open doors? I can’t even apply for membership for more than three years from now. They have officially informed me about that – this is a link to the EML with the notice from MC; it includes my reply to their original “notification”. They write:

the Membership Committee expels you from the board of trustees with immediate effect. Because you didn’t relinquished your membership immediately, we decided also considering all circumstances to block membership for at least three calendar years, thus at least up to December, 31 2029.

If I had relinquished my membership as the MC asked, I would have lost my right to challenge this “temporary inconvenience” – and I am puzzled by the claim by a board member that “in the meantime … [I] can reapply for membership as soon as the legal matters have been settled.” (https://community.documentfoundation.org/t/comment-about-collabora-blog-post-tdf-community-blog/13626/9). I can re-apply, but – it is clear I will not be accepted until 2030 (the earliest possibility). After that the “bylaws” they invented this January will prevent me from e.g. nominating to BoD for two more years. Definitely honest and welcoming. (No idea how the remaining TDF members feel about the amazing fact that the board could decide and implement a restriction like that, limiting you without asking your opinion.)

Well, enough of that. No more posts about TDF. It was nice, and I met many people during that period, that I hope I can continue to call friends; but the current policy of that thing claiming nice goals and high standards is so disgusting, that I am even glad to not have relation to that anymore. Let’s do some hacking instead!


Saturday
11 April, 2026


face

After nearly 10 years, it’s time to start contributing to Open Source again.

My Open Spurce journey begann with breeze icons for KDE, than I added breeze icons to LibreOffice. After that I made a the complete new colibre icon theme for LibreOffice which is the default for the Windows users.

After Icon stuff I start with pressts, different visuals and User Interface related stuff like Notebookbar. Which bring me to Collabora Online Office were I fast switch to mobile toolbar and dark mode.

After my first Open Source Journey I had a long break. Which show me, that Open Source is great. Other Community members update and improve my work. I can say, it’s awesome to see the work done within the DNA of each OSS.

Now I will start again where I did my last work. Collabora Online (Desktop/Mobil/Tablet …). Why? Because I can! Thats the great benefit of OSS. Everyone can improve ist and I enjoy the Collabora Community a lot. In addition to it’s fast development, it’s that easy to make changes and contribute.

Happy Hacking on any OSS you enjoy. It would be awesome to meet you at the Collabora Community.


Sunday
05 April, 2026


face

“Ideally, we would have preferred to avoid this post.”

When I read those opening words in Italo’s recent statement, “Let’s put an end to the speculation,” they stung. I don’t know if that specific post should have existed or not, but those first few words are a perfect reflection of the current TDF attitude. It is an attitude directed toward the very people who devoted large parts of their lives, their passion, and their hearts to the Foundation’s ideals.

What I am missing is not that specific post that Italo wrote. What I expected—what I felt I earned—was a post that looked me in the eye. I wanted an explanation as to why I am being cast out from the Trustees after everything I’ve honestly given. I wanted to know my specific “guilt,” or why the Foundation now finds “guilt by association” to be an acceptable standard.

And then—I would hope—they would publicly say: “Mike, we appreciate everything you’ve done. We deeply regret the unfortunate decisions we—not you—made over the years. But we feel this is the only path forward, and we are sorry.”

But that is the post they successfully avoided writing.


Thursday
02 April, 2026


face

PSFirebird is a PowerShell module focused on automating Firebird environments, databases, and common administrative workflows. The main goal is to make Firebird easier to script end-to-end without depending on a manual installer flow or a machine-specific setup. The problem is trying to solve was simple: working with Firebird in automation often means mixing shell scripts, ad hoc local installs,



Tuesday
31 March, 2026


face

<!-- Post Title: Modernizing the Firebird ODBC Driver: Moving to CMake and Cleaning House --> As part of an ongoing effort to improve the project's infrastructure, we have just merged Pull Request #281, which introduces a modern CMake build system and drastically cleans up our repository by removing over 62,000 lines of obsolete configurations, old headers, and broken test projects. This is the


Friday
27 March, 2026


face

I came here due to a (decades-spanning, arguably perverse) love affair with the LibreOffice code body. Less so for a love of organizational bodies.

So I mostly remained passive and watched the coup d’état unfold at the Document Foundation. Where some folks apparently felt the need to have us all thrown out. Oh my.

Should I have been more involved around the apparent issues at TDF? Maybe. But then again, I’m a naive little nerd who loves fixing dysfunctional code way more than navigating dysfunctional political setups. (And to be fair, I tried to do my duty, and did serve a term on the membership committee. Back when that was likely more pleasant than what it would be today.)

Luckily, the code and the fun will most certainly live on, one way or another. Not least at https://collaboraonline.github.io/.

Happy hacking, once more,
sberg


Friday
13 March, 2026


face

A major update has been merged into the FirebirdSQL/firebird-odbc-driver repository (PR #276), introducing a comprehensive Google Test suite to establish a strong regression testing baseline for the project. Authored by fdcastel, this addition is a crucial stepping stone before making future bug fixes or CI/CD improvements. Key Highlights: Extensive Coverage: The PR adds a


Tuesday
10 March, 2026


face

General Activities LibreOffice 26.2.0 was announced on February 4 LibreOffice 25.8.5 was announced on February 19 LibreOffice 26.2.1 was announced on February 26 Olivier Hallot (TDF) added help for Writer’s text dragging and dropping options, Calc’s “Enter key for paste & clear clipboard” option and “Reject silently” in Calc’s Data


Wednesday
18 February, 2026


face

Implementing Firebird 4 Protocol Versions 16 and 17 is crucial for utilizing the advanced features, security enhancements, and performance improvements introduced in Firebird 4.0 and 4.0.1. Using updated clients that support these protocols prevents performance degradation and ensures access to modern functionalities. Key Features Supported by Protocol 16 (Firebird 4.0)Wire Protocol Encryption:&


Wednesday
11 February, 2026


face

General Activities Olivier Hallot (TDF) improved Writer help for hyphenation zones and controlling section visibility, fixed the help example for Calc’s SUMIF function, clarified the topic of fixed colours in the help for document themes, expanded the help for Calc’s sort options, explained in help the option for removing cross-document


Saturday
07 February, 2026


face

Not too long ago, a change landed, that brought Biff12 clipboard format support in Calc v.26.2 – thanks Laurent!

It was an easyhack that I authored some time ago; and Laurent volunteered to implement that long-standing missing feature. The small detail was, that the feature was Windows-specific (it is trivial to get the wanted clipboard content there, simply copying from Excel), while Laurent developed on another platform.

Laurent had made the majority of work, before he was stuck, without being able to test / debug further changes. Then, he asked me, if there a way to continue on the platform he used.

At that time, I answered, that no, one would need Windows (and Excel) to continue the implementation. So I jumped in, and added the rest, and in the end, we have created the change in co-authorship.

But later, when part of my code turned out problematic, and I needed to fix it and create a unit test for it, I discovered a trick, that could put Biff12 data into system clipboard on any platform, without Excel – allowing then just paste, and debug everything that’s going on there. It relies on UNO API, and can be implemented e.g. in Basic:


function XTransferable_getTransferData(aFlavor as com.sun.star.datatransfer.DataFlavor) as variant
  if (not XTransferable_isDataFlavorSupported(aFlavor)) then exit function
  oUcb = CreateUnoService("com.sun.star.ucb.SimpleFileAccess")
  oFile = oUcb.openFileRead(ConvertToURL("/path/to/biff12.clipboard.xlsb"))
  dim sequence() as byte
  oFile.readBytes(sequence, oFile.available()) ' changes value type of 'sequence' to integer
  XTransferable_getTransferData = CreateUnoValue("[]byte", sequence)
end function

function XTransferable_getTransferDataFlavors() as variant
  aFlavor = new com.sun.star.datatransfer.DataFlavor
  aFlavor.MimeType = "application/x-openoffice-biff-12;windows_formatname=""Biff12"""
  XTransferable_getTransferDataFlavors = array(aFlavor)
end function

function XTransferable_isDataFlavorSupported(aFlavor as com.sun.star.datatransfer.DataFlavor) as boolean
  XTransferable_isDataFlavorSupported = (aFlavor.MimeType = "application/x-openoffice-biff-12;windows_formatname=""Biff12""")
end function

sub setClipboardContent
  oClip = CreateUNOService("com.sun.star.datatransfer.clipboard.SystemClipboard")
  oClip.setContents(CreateUNOListener("XTransferable_", "com.sun.star.datatransfer.XTransferable"), nothing)
end sub

The first three functions are Basic implementation of XTransferable interface.

Running setClipboardContent will prepare the system clipboard on any platform, using a trick of implementing arbitrary UNO interface using CreateUNOListener; and after that, pasting into Calc would allow to see if things work (if content of /path/to/biff12.clipboard.xlsb is pasted, as expected), and make improvements. If I knew this trick back then, I would of course share it with Laurent; but I thought I’d put it here now, so maybe it helps me or someone else in the future. (Note that application/x-openoffice-biff-12;windows_formatname="Biff12" there in the code was the name introduced by Laurent in the discussed commit; indeed, that, and the actual data in the file, would depend on the exact format that you work with.)


Wednesday
04 February, 2026


face

If you have a commented text range, which gets deleted while track changes is on and you later save and load this with Writer's DOCX filter, that works now correctly.

This work is primarily for Collabora Online, but the feature is available in desktop Writer as well.

Motivation

It was already possible to comment on text ranges. Comments were also supported inside deletes when track changes is enabled. These could be already exported to and imported from DOCX in Writer. But you could not combine these.

With the increasing popularity of commenting text ranges (rather than just inserting a comment with an anchor), not being able to combine these was annoying.

Results so far

Here is how a commented text range inside a delete from DOCX now looks like, note the semi-transparent comment hinting it's deleted:

Commented text range, inside a tracked delete, in DOCX, Collabora Online

As a side effect, this also fixes the behavior in desktop Writer, which crosses out deleted comments:

Commented text range, inside a tracked delete, in DOCX, desktop

In the past, the "is this deleted" property was not visible in the render result:

Commented text range, inside a tracked delete, in DOCX, Collabora Online, old bad state

And it was also bad in desktop Writer:

Commented text range, inside a tracked delete, in DOCX, desktop, old bad state

This required changes to both DOCX import and export: a comment could be deleted or could have an anchor which is a text range, but you couldn't have both.

How is this implemented?

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:

Want to start using this?

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.8).

Older blog entries ->