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.

01 March, 2024


The new Board of Directors of The Document Foundation has just started its two-year term on 18 February 2024.

The full members are, in alphabetical order: Eliane Domingos, Sophie Gautier, Björn Michaelsen, László Németh, Simon Phipps, Eike Rathke, Italo Vignoli.

The deputies are again in alphabetical order: Osvaldo Gervasi, Mike Saunders, Paolo Vecchi.

Mike Saunders was elected to the Board for the first time. All the other members have served either on the Steering Committee from 2010 to 2012 (Sophie Gautier and Italo Vignoli) or on the Board of Directors since 2014 as full or deputy members.

At its first meeting, the Board unanimously elected Eliane Domingos as Chair and Simon Phipps as Vice-Chair.

At the same time, they decided to review and reorganise responsibilities and areas of oversight to ensure a more agile decision-making process.

Six people who served during the previous term have left the Board, but will continue to contribute to the project as TDF Members: Thorsten Behrens, Gábor Kelemen, Gabriel Masei, Cor Nouws, Emiliano Vavassori, Ayhan Yalçınsoy.

We are deeply grateful to all of them for their dedication, their contribution to decision making and all the time they have volunteered to serve on the Board, as well as their ongoing contribution to FOSS and LibreOffice.


Writer now supports legal numbering for two more formats: DOC and RTF (ODT and DOCX were working already.)

This work is primarily for Collabora Online, done as a HackWeek project, but the feature is fully available in desktop Writer as well.


Legal numbering is a way to influence the number format of values inherited in a multi-level numbering. Say, the outer numbering uses Roman numerals and the inner numbering uses X.Y as the number format, but the inner level wants to display the outer values as Arabic numerals. If this is wanted (and guessing from the name, sometimes lawyers do want this), then the inner number portion will expand to values like "2.01" instead of "II.01", while the outer number portions will remain values like "II".

Mike did 80% of the work, what you can see here is just the RTF/DOC filters.

Picking a smaller feature task like this looked like a good idea, since I wanted to spend some of the time on regression fixing around last year's multi-page floating table project.

Results so far

For (binary) DOC, the relevant detail is the fLegal bit in the LVLF structure. Here is the result:

Improved handling of legal numbering from DOC: old, new and reference rendering

It shows how the outer "II" gets turned into "2", while it remained "II" in the past. This works for both loading and saving.

The same feature is now handled in the RTF filter as well. There the relevant detail is the \levellegal control word, which has an odd 1 default value (the default is usually 0). Here is the result:

Improved handling of legal numbering from RTF: old, new and reference rendering

It shows that the RTF filter is up to speed with the DOC one by now.

As for the multi-page floating tables, I looked at tdf#158986 and tdf#158801.

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:

Want to start using this?

You can get a snapshot / demo of Collabora Office 24.04 and try it out yourself right now: try the unstable snapshot. 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 (24.8).

29 February, 2024


If you copy contents from LibreOffice Writer to a plain text editor like gedit or Notepad, you will see that it does a straightforward thing: It copies the text and some basic formatting like converting bullets to ‘•’. For the Writer tables, the conversion is very simple right now: every cell is written in a separate line.

For example, if you have a table like this:

A | B
C | D

When you copy the table from LibreOffice Writer and paste it into a plain text editor, it will become something like this, which is not always desirable.


It is requested that like LibreOffice Calc, or Microsoft Word, and many other programs, the copy/paste mechanism should create a text like this:


The columns are separated by <tab>.

This feature request is filed in Bugzilla as tdf#144576:

Code pointers for Handling Writer tables

There are many steps in copy/pasting, including the data/format conversion and clipboard format handling. Here, you have to know that the document is converted to plain text via “text” filter.

The plaintext (ASCII) filter is located here in the LibreOffice core source code:

Therefore, to change the copy/paste output, you have to fix the ASCII filter. That would also provide the benefit that plain text export will be also fixed as requested here.

In this folder, there are a few files:

$ ls sw/source/filter/ascii/
ascatr.cxx parasc.cxx wrtasc.cxx wrtasc.hxx

To change the output, you have to edit this file:

In this file, there is a loop dedicated to create the output.

// Output all areas of the pam into the ASC file
do {
    bool bTstFly = true;

Inside this loop, the code iterates over the nodes inside the document structure, and extracts text from them. To check for yourself, add the one line below to the code, build LibreOffice, and then test. You will see that a * is appended before each node.

SwTextNode* pNd = m_pCurrentPam->GetPoint()->GetNode().GetTextNode();
if( pNd )
+   Strm().WriteUChar('*');

For example, having this table, with 1 blank paragraph up and down:

A | B
C | D

You will get this after copy/paste into a plain text editor:


To fix the bug, you have to differentiate between table cells and other nodes. Then, you should take care of the table columns and print tab between them.

To go further, you can only add star before table cells:

if( pNd )
    SwTableNode *pTableNd = pNd->FindTableNode();
+   if (pTableNd)
+   {
+       Strm().WriteUChar('*');
+    }

You can look into how other filters handled tables. For example, inside sw/source/filter/html/htmltab.cxx you will see how table is managed, first cell is tracked and appropriate functions to handle HTML table are called.

For the merged cells, the EasyHacker should first checks the behavior in

  • Drove to Stansted; caught up with Gokay; rather delayed flight. Hacked up a tool to annotate unshared pages with names of pointers into shared libraries to better unwind the origin of dirtied pages.


Berlin, 29 February 2024 – LibreOffice 24.2.1 Community, the first minor release of the free, volunteer-supported office suite for personal productivity in office environments, is now available at https://www.libreoffice.org/download for Windows, MacOS and Linux.

The release includes more than 100 bug and regression fixes over LibreOffice 24.2 [1] to improve the stability and robustness of the software. LibreOffice 24.2.1 Community is the most advanced version of the office suite, offering the best features and interoperability with Microsoft Office proprietary formats.

LibreOffice is the only office suite with a feature set comparable to the market leader. It also offers a range of interface options to suit all user habits, from traditional to modern, and makes the most of different screen form factors by optimising the space available on the desktop to put the maximum number of features just a click or two away.

Highlights of LibreOffice 24.2.1 Community

The main advantage of LibreOffice over other office suites is the LibreOffice Technology engine, a single software platform for all environments: desktop, cloud and mobile. This allows LibreOffice to provide a better user experience and produce identical – and interoperable – documents based on both ISO standards: Open Document Format (ODT, ODS and ODP) for users concerned about compatibility, resilience and digital sovereignty, and the proprietary Microsoft OOXML (DOCX, XLSX and PPTX).

Most notable new features in the LibreOffice 24.2 family:

• Save AutoRecovery information is enabled by default, and is always creating backup copies
• Fixed various NotebookBar options, with many menu improvements, better print preview support, proper reset of customised layout, and enhanced use of radio buttons
• The Insert Special Character drop-down list now displays a character description for the selected character (and in the tooltip when you hover over it)

• “Legal” ordered list numbering: make a given list level use Arabic numbering for all its numeric portions
• Comments can now use styles, with the Comment paragraph style being the default
• Improved various aspects of multi-page floating table support: overlap control, borders and footnotes, nesting, wrap on all pages, and related UI improvements

• A new search field has been added to the Functions sidebar deck
• The scientific number format is now supported and saved in ODF
• Highlight the Row and Column corresponding to the active cell

• The handling of small caps has been implemented for Impress
• Moved Presenter Console and Remote control settings from Tools > Options > LibreOffice Impress to Slide Show > Slide Show Settings, with improved labelling and dialogue layout
• Several improvements and fixes to templates

• Several significant improvements to the handling of mouse positions and the presentation of dialogue boxes via the Accessibility APIs, allowing screen readers to present them correctly
• Improved management of IAccessible2 roles and text/object attributes, allowing screen readers to present them correctly
• Status bars in dialogs are reported with the correct accessible role so that screen readers can find and report them appropriately, while checkboxes in dialogs can be toggled using the

28 February, 2024

  • Mail chew, interview & offer with Miklos.
  • Into Cambridge with J. , on to the Moller Institute for a tour of the rather lovely COOL days venue.
  • Back; sales catch-up with Eloy, sync with Caolan.

27 February, 2024

  • Mail chew, planning call, took car to have tires changed, bought J, some flowers on the way back. Patch review, sync with Neil. J. took N. back to university, worked late.
  • Started CofE Domestic Violence safeguarding training; sad its necessary really.

26 February, 2024

  • Took E. to school; bit of a mail backlog to process; started on it. Call with Calc team; 1:1's with Miklos, Pedro, marketing content call; more 1:1's, partner call.

25 February, 2024

  • All Saints; gave a talk on first four beatitudes.
  • Home for a Pizza lunch with the family; and some applied resting.

24 February, 2024

  • Slept, worked on slides & text for Sunday much of the day. Out to see Aaron & Sharn, and for a walk in the sun. Slides until late.

23 February, 2024

  • Breakfast, checked out, massage, soaked, rested; on to Frinton-on-Sea for a walk down the beach together, and a Fish & Chip lunch.
  • Home to the babes; N. returning from university - not so well for nursing.

22 February, 2024

  • Holiday; pootled off with J. to Gainsborough's House museum in Sudbury - amazed at the volume of space given to Rebecca Salter's disappointingly inaccessible work. Amused by many of Gilray's pieces.
  • On to Thorpe-le-Soken - in the rain; enjoyed Lifehouse Spa previously home of Viscount Byng - now a good place for relaxing with a spouse. Fine dinner in the evening - lovely to spend some time together.


Berlin, February 22, 2024 – LibreOffice 7.6.5 Community is immediately available from https://www.libreoffice.org/download for Windows, macOS, and Linux [1]. This is the most thoroughly tested version of the suite, for deployments by individuals, small and medium businesses, and other organizations in productivity environments.

For enterprise-class deployments, TDF strongly recommends the LibreOffice Enterprise family of applications from ecosystem partners – for desktop, mobile and cloud – with a large number of dedicated value-added features and other benefits such as SLA (Service Level Agreements): https://www.libreoffice.org/download/libreoffice-in-business/

Users can download LibreOffice 7.6.5 Community from the office suite website: https://www.libreoffice.org/download/. Minimum requirements are Microsoft Windows 7 SP1 and Apple macOS 10.14. LibreOffice Technology-based products for Android and iOS are listed here: https://www.libreoffice.org/download/android-and-ios/

The Document Foundation does not provide technical support for users, although they can be helped by volunteers on user mailing lists and on the Ask LibreOffice website: https://ask.libreoffice.org

LibreOffice users, free software advocates and community members can support The Document Foundation with a donation at https://www.libreoffice.org/donate

[1] Change log pages: https://wiki.documentfoundation.org/Releases/7.6.5/RC1 and https://wiki.documentfoundation.org/Releases/7.6.5/RC2


When working with LibreOffice Impress, “Slide Master” is the place where you can change the templates used for different types of the slides used in your presentation. Here we discuss a possible improvement for the “Slide Master” by making the copy from master slides possible.

Copying the Master Page in Impress

To see the problem and the room for enhancement, open LibreOffice Impress, then choose “View->Master->Slide Master” from the menus. Then, try to copy the master page on the left in the slide sorter. Unfortunately, it is not possible.

Impress slide master

Impress slide master

Having this feature is helpful, because different page types have many things in common, and being able to copy/paste helps creating templates much faster.

Impress Code Pointers

Looking into sd/source/core/drawdoc3.cxx, you can see a huge function SdDrawDocument::InsertBookmarkAsPage, which is relevant here. It contains ~600 lines of code. This huge function is in itself a problem. Therefore, to implement the enhancement, on should try to first refactor the function, then add a unit test in sd/qa/unit, find and then separate all the ~6 use cases, and fix the style/name merging.

After the cleanup, the main fix should be implemented. The suggested path to implement this comes from Jean-Francois. He suggest to improve the duplicate() method, which is described in the documentation:

As described in the above documentation, its role is to duplicate a page:

Creates a duplicate of a DrawPage or MasterPage, including the Shapes on that page and inserts it into the same model.

However, the implementation does not work for master slides, as the macros in the attachment file implies. The solution should add the needed implementation for master slides.

The implementation is inside sd/source/ui/unoidl/unomodel.cxx inside duplicate function:

// XDrawPageDuplicator
uno::Reference< drawing::XDrawPage > SAL_CALL SdXImpressDocument::duplicate( const uno::Reference< drawing::XDrawPage >& xPage )



Final Words

The above issue is filed as tdf#45617. If you like to work on it, just follow the Bugzilla link to see more information.

To implement this feature, first you have to build LibreOffice from the sources. If you have not done that yet, please refer to this guide first:

Getting Started (Video Tutorial)

21 February, 2024

  • Booked and moved flights; got several CI fixes cleaned up and merged & back-ported, 24.04 C++ unit test seem reliable in parallel; good.
  • Monthly all-hands call, sales call, catch up with Rash & Lily.
  • Plugged away at Sermon on the Mount for Sunday, chat with a friend.


We have received a postcard from FSFE (Free Software Foundation Europe), with a nice small poem.

Every time we see .ODT, every bell rings.
LibreOffice, you are our wings:
so good you make us fly
editing for hours as well as on the fly.

With your huge crows of proud volunteers,
you deserve all of our cheers!
Without you, we could do nothing,
no other software we’d be dating.

“Thank you” from all FSFE,
you give us one more reason to be.

Thanks to all FSFE employees, and to all the members they represent, for the very nice present.

20 February, 2024

  • Mail chew, planning call, sync with Lily, slides, lunch; monthly mgmt call. Poked at some unit test failures.

19 February, 2024

  • Calc stand-up, 1:1s with Miklos, Eloy, Andras. Marketing content call. Sync with Rash & Ash, chased patch merging, poked at a profile.
  • Worked late, slept badly - a correlation I should avoid more.

18 February, 2024

  • Up late, All Saints in the morning; nice to have Lydia playing bass; Lunch, rested, out for a walk, J. picked babes up; studied Matthew 5 in more detail. Bed.

17 February, 2024

  • Up earlyish; J. counselling, out to David's to look at stair-cases; with David M's help built support platform for the stairs, measured and got the upper stair plate cut and into place, home for lunch with J.
  • Got newel post cut and fitted - it fits!; set to adjusting the platform to get the main stair run up, but somewhat defeated by its weight - liftable with two, but waving it two stories up in the air - less easy. Called it a day.
  • Home, tea with J. together, watched Idiocracy - rather amusing but the Eugenicists rallying film; best paired with Gattaca perhaps.

16 February, 2024

  • Mail, patch review, hacked variously on this & that - nice to get to some code.
  • Dropped M & E to AccelR8 camp at Histon Baptist as young leaders; J. and I alone for the weekend.


LibreOffice 24.2 is our new major update, with new features, compatibility improvements, and performance boosts. Check out this video, with subtitles in 28 languages thanks to our awesome localisation community – or if you’d prefer to watch it on PeerTube, here’s a link.

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.

YouTube privacy policy

If you accept this notice, your choice will be saved and the page will refresh.

15 February, 2024

  • Mail, sync with Timur, tech planning call, COOL community meeting, calc stand-up. Plugged away at incredibly tedious contract review all afternoon.
  • Particularly struck by the appearance of log4j alongside asbestos risks or pollution in Hiscox tech insurance. Somehow Apache dodged a bullet by not having their brand all over that.
    "What is not covered[1]:
    A. 19 asbestos risks or pollution.
    A. 21 or contributed to by, resulting from or in connection with the Common Vulnerability and Exposure (CVE) reference CVE-2021-44228 listed in the National Vulnerability Database operated by the National Institute of Standards and Technology." (Log4j vulnerability)
    The first ever software security issue I've seen show up as an exclusion like this.

14 February, 2024

  • Mail chew, poked at patches, call with Miriam & Lily; Weekly sales call, band practice in the evening.

13 February, 2024


General Activities

  1. LibreOffice 24.2 was released on January, 31
  2. Olivier Hallot (TDF) fixed a duplicate Covariance command in Notebookbar UIs, updated menu item paths in Help pages and updated Help pages for conversion filters and style Spotlight
  3. Rafael Lima added a Color Scheme switcher to Basic IDE, added a “Delete Comment” command to the Navigator context menu, fixed drawing comment triangles in Calc at all zoom levels, made it so the visibility of UI components in the Basic IDE is remembered, made Basic IDE highlight the line where the cursor is positioned, made it possible to open the “Go to Line” dialog from the statusbar in Basic IDE, fixed Calc AutoFilter arrow color in dark mode, made it so line numbering and breakpoint in Basic IDE are on the left even in right-to-left UI and fixed a crash in Dialog Editor. He also improved the ScriptForge Help pages
  4. Stanislav Horacek updated menu paths in Help alongside other cleanups and fixes
  5. Ilmari Lauhakangas (TDF) removed unnecessary images from SVG icon themes, saving nearly 5 MB of space. He also changed the Help CSS to account for a quirk in Safari
  6. Stéphane Guillou (TDF) continued linking Sidebar decks to Help
  7. Alain Romedenne updated ScriptForge Help pages
  8. Dione Maddern did many fixes and updates to Draw dialog Help pages
  9. Gábor Kelemen (allotropia) added accessible descriptions to new Dublin Core metadata boxes, updated Help after removal of FTP protocol support and did code cleanups in the area of code simplification and includes
  10. Laurent Balland did cleanups in the metadata of Impress templates
  11. Miklós Vajna (Collabora) fixed the layout handling of empty paragraphs formatted as superscript in Writer, added support for HTML paste to Writer shape text or Calc cell text edit and continued polishing support for multi-page floating tables in Writer
  12. Jean-Pierre Ledure worked on the ScriptForge library
  13. Gabriel Masei (1&1), Paris Oplopoios, Szymon Kłos, Méven Car, Andras Timar, Attila Szűcs and Áron Budea (Collabora) worked on LOKit used by Collabora Online. Andras also fixed some FreeBSD build issues while Attila fixed hyperlink colouring in certain PPTX files and a textbox vertical alignment inversion issue when saving PPTX files
  14. Henry Castro (Collabora) made the status bar in Calc work as expected with language selection
  15. Eike Rathke (Red Hat) made it so the maximum number of hours that can be entered into a Calc cell with time formatting is now a 32-bit integer instead of 65535
  16. Tomaž Vajngerl (Collabora) continued refactoring the EditEngine text editing code
  17. Julien Nabet fixed an issue preventing some position parameters to go beyond 17 mm in Writer, fixed an issue that made ReportBuilder wizards show two different data sources, fixed several crashes and did code cleanups
  18. Andreas Heinisch made it so font, highlight and background colour in toolbar buttons is remembered between sessions, fixed canceling Text Import in Calc locking the document and made it so question mark can be used in autotext shortcuts
  19. László Németh continued polishing support for

11 February, 2024


After a long slog since November when the previous version of coverity was EOLed and we had to start using 2022.6.0 with its new suggestions for std::move etc, LibreOffice is now finally back to a 0 warnings coverity state

08 February, 2024


Donations to The Document Foundation help us to grow our community, run our infrastructure, organise events and share knowledge. And as a result, LibreOffice keeps on improving for all users! Many thanks to all of our supporters. Here’s a quick infographic showing how we used your donations in 2023:

Infographic showing how LibreOffice donations were used to fund the conference, support development mentors and more

06 February, 2024


This post describes some challenges around having multiple views of one opened document in LibreOffice core, when those views belong to LOK views, representing different users, with their own language, locale and other view settings.

This work is primarily for Collabora Online, but is useful for all clients of the LOK API.


LOK views are meant to represent separate users, so we need to make sure that when a user sets their preferences and trigger an action, then the response to that action goes to the correct view, with the correct view settings.

This is different from the desktop LibreOffice use-case, where multiple windows are still meant to share the same user name, language, undo stack and so on.

Results so far

In this post, I would like to present 4 small improvements that recently happened to the LOK API to provide this wanted separation of views.

The first was an issue where two users were editing the same document, one busily typing and the other clicked on a link in Calc. What could happen sometimes is the link popup appeared for the user who typed, not for the user who clicked on the link:

Link popup is actually on the left, should be on the right, now fixed

This specific problem can be fixed by making sure that link click callbacks are invoked synchronously (while the clicking view is still active) and not later, when the current view may or may not be the correct one.

It turns out the same problem (async command dispatch) affects not only hyperlinks, but many other cases as well, where we want to stay async, for example, when one dialog would invoke another dialog, like the Calc conditional format -> add dialog:

Calc conditional format add dialog appearing on the left, should be on the right, now fixed

There you don't want to change async commands into sync commands, because that may mean spinning the main loop inside a dialog, resulting in nested main loops. This can be fixed by making sure that async commands to be dispatched (sfx2 hints in general) are processed in a way that the current view at dispatch & processing is the same, which is now the case.

The third problem was around wrong language & locale in the status bar:

Unexpected English strings in localized statubar UI, now fixed

This is not simply a problem of missing translation, the trouble was that the status bar update is also async and by the time the update happened, the locale of the view on the left was used, for a string that appears on the right.

The way to fix this is to perform the update of toolbars/statusbar/etc (in general: SfxBindings) in a way that the language at job schedule time and at UI string creation time is the same.

The last problem was quite similar, still about bad language on the UI, but this time on the sidebar:

Unexpected English strings in localized sidebar UI, now fixed

04 February, 2024


In this blog post, I discuss gbuild for Java tests. The goal is to write a Makefile to compile and run a JUnit test for LibreOffice. You can also refer to part 1 and part 2 for a brif overiew on gbuild, the LibreOffice build system.

Macro Examples from gbuild for Java Tests

In the first post on gbuild, I have mentioned some macro examples including gb_Output_announce which was used to print nice messages like the ones including “[CXX]”. Now let’s explain some more macros related to Java tests.

Consider that you want to compile and run a JUnitTest. To do that, you need to write the test in a Java file, and create a Makefile to run that.

This is an example for running a test defined in Java file sw/qa/complex/indeterminateState/CheckIndeterminateState.java.

$(eval $(call gb_JunitTest_JunitTest,sw_complex))

$(eval $(call gb_JunitTest_add_sourcefiles,sw_complex,\
sw/qa/complex/indeterminateState/CheckIndeterminateState \

$(eval $(call gb_JunitTest_use_unoapi_jars,sw_complex))

$(eval $(call gb_JunitTest_add_classes,sw_complex,\
complex.indeterminateState.CheckIndeterminateState \

The make file for running this Java test consists of calling multiple macros. It starts with gb_JunitTest_JunitTest macro, which defines the test by its name, sw_complex. This macro is defined in solenv/gbuild/JunitTest.mk. If you grep for define in the same file, you will see this result:

$ grep -w define solenv/gbuild/JunitTest.mk
define gb_JunitTest_JunitTest
define gb_JunitTest_set_defs
define gb_JunitTest_add_classes
define gb_JunitTest_add_class
define gb_JunitTest_add_sourcefile
define gb_JunitTest_add_sourcefiles
define gb_JunitTest_use_jar
define gb_JunitTest_use_jars
define gb_JunitTest_use_jar_classset
define gb_JunitTest_add_classpath
define gb_JunitTest_use_system_jar
define gb_JunitTest_use_system_jars
define gb_JunitTest_use_external
define gb_JunitTest_use_externals
define gb_JunitTest_use_customtarget
define gb_JunitTest_use_customtargets
define gb_JunitTest_use_unoapi_jars
define gb_JunitTest_use_unoapi_test_class
define gb_JunitTest_set_unoapi_test_defaults
define gb_JunitTest_JunitTest

To stick to the macros used in the above example, I describe these macros:

gb_JunitTest_add_sourcefiles: This macro adds a Java source file to the test. It defines the code that adds the sw/qa/complex/indeterminateState/CheckIndeterminateState.java to the test. But please note that you should drop the .java extension:

$(eval $(call gb_JunitTest_add_sourcefiles,sw_complex,\
sw/qa/complex/indeterminateState/CheckIndeterminateState \

The other macro gb_JunitTest_use_unoapi_jars, adds the UNO API JAR files to be used with the test.

And in the end, you need to add the test class name using gb_JunitTest_add_classes macro. The class name is visible in the end.

The result can be quite complex, but it works. 🙂

java.exe -Xmx64M -classpath "$W/JavaClassSet/JunitTest/sw_complex;C:/cygwin64/home/user/lode/opt/share/java/junit.jar;$I/program;$W/Jar/OOoRunner.jar;$I/program/classes/libreoffice.jar;$W/Jar/test.jar" -Dorg.openoffice.test.arg.soffice="path:$I/program/soffice" -Dorg.openoffice.test.arg.env=PATH="$PATH" -Dorg.openoffice.test.arg.user=file:///$W/JunitTest/sw_complex/user org.junit.runner.JUnitCore complex.indeterminateState.CheckIndeterminateState

The above is the actual command that runs the test. Please note that if you forget the gb_JunitTest_add_classes macro to define the class name, the test may compile, but it will not run.

As an example, you can see the below patch. This patch fixes the problem of the JUnit test not running:

Final Words

Many macros are available in gbuild, making easier

31 January, 2024


Berlin, 31 January 2024 – LibreOffice 24.2 Community, the new major release of the free, volunteer-supported office suite and the first to use the new calendar-based numbering scheme (YY.M), is now available at https://www.libreoffice.org/download for Windows (Intel, AMD and ARM), macOS (Apple and Intel) and Linux. The new numbering scheme will help users keep their LibreOffice installation up to date.

LibreOffice is the only open source personal productivity office suite with a feature set comparable to the leading product on the market. It also offers a range of interface options to suit different user habits, from traditional to modern, and makes the most of different screen form factors by optimising the space available on the desktop to put the maximum number of features just a click or two away.

The biggest advantage of LibreOffice over any other office suite is the LibreOffice Technology engine, a single software platform for all environments: desktop, cloud and mobile. This infrastructure allows LibreOffice to offer a better user experience and, most importantly, to produce identical – and perfectly interoperable – documents based on the two available ISO standards: the Open Document Format (ODT, ODS and ODP) for users concerned about compatibility, resilience and digital sovereignty and the proprietary Microsoft OOXML (DOCX, XLSX and PPTX).

Highlights of LibreOffice 24.2 Community


  • Save AutoRecovery information is enabled by default, and is always creating backup copies. This reduces the risk of losing content for first-time users who are unfamiliar with LibreOffice settings.
  • Fixed various NotebookBar options, with many menu improvements, better print preview support, proper resetting of customised layout, and enhanced use of radio buttons. This improves the experience for users familiar with the Microsoft Office UI.
  • The Insert Special Character drop-down list now displays a character description for the selected character (and in the tooltip when you hover over it).


  • “Legal” ordered list numbering: make a given list level use Arabic numbering for all its numeric portions.
  • Comments can now use styles, with the Comment paragraph style being the default. This makes it easier to change the formatting of all comments at once, or to visually categorise different types of comments.
  • Improved various aspects of multi-page floating table support: overlap control, borders and footnotes, nesting, wrap on all pages, and related UI improvements.


  • A new search field has been added to the Functions sidebar deck.
  • The scientific number format is now supported and saved in ODF: embedded text (with number format like ###.000 E0); lower case for exponent (with number format like ###.000e0); exponent with empty ‘?’ instead of ‘0’ (with number format like 0.00E+?0).
  • Highlight the Row and Column corresponding to the active cell.


  • The handling of small caps has been implemented for Impress.
  • Moved Presenter Console and Remote control settings from Tools > Options > LibreOffice Impress to Slide Show > Slide Show Settings, with improved labelling and dialogue layout.
  • Several improvements and fixes to templates: added and improved placement of various placeholders; fixed order of slides; made

Older blog entries ->