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 [email protected] mailinglist or file a ticket in Redmine.


Monday
16 September, 2024


face

LibreOffice Conference 2024 logo

Our LibreOffice and Open Source Conference 2024 is taking place in a few weeks in Luxembourg, and the country’s Ministry for Digitalisation wrote to tell us:

We are pleased to contribute to the LibreOffice and Open Source Conference with a speech by Luxembourg’s Minister for Digitalisation and Minister for Research and Higher Education, Stéphanie Obertin and a presentation of Luxchat4Gov by project manager, Patrick Weber.

The secure and interoperable instant messaging dedicated to the public sector, Luxchat4Gov was developed by the Ministry for Digitalisation in collaboration with LU-CIX and leverages the Matrix protocol to ensure seamless interoperability between systems, while maintaining stringent data security. In parallel, LU-CIX and its partners build LuxChat, the public version of LuxChat4Gov to offer the same level of security and digital autonomy.

By adopting this platform, Luxembourg sets a precedent for achieving digital autonomy while fostering an interconnected and secure communication environment across government entities, and the national Luxchat ecosystem. This is just the first effort to assert Luxembourg’s Digital Sovereignty, through using open-source software which has been tailored to fit the country’s specific needs and that is now operating under Luxembourgish jurisdiction. It’s only by having full control on the open-source software and by hosting it in national data centers that a high level of security and confidentiality of the data can ensured.

We’re very happy to have their participation!

Click here to register for the conference



Friday
13 September, 2024


face

LibreOffice Conference 2024 logo

Hossein Nourikhah, our Developer Community Architect, writes:

Learn LibreOffice development and boost your software skills including bug management, coding, version management using Git, code review using Gerrit and much more! Our workshop titled “Introduction to LibreOffice development” at the LibreOffice Conference 2024 is a great opportunity for all those who love getting involved with a world wide open source community.

Please register soon!

This year, the LibreOffice Conference 2024 will be held in Luxembourg. Alongside the main conference tracks, a development workshop will be held to give the people hands-on experience to LibreOffice development.

The workshop will be held on 11 and 12 October 2024, at the same place as the LibreOffice Conference in Luxembourg. If you like to be with us, please register here:

Learn From Experienced LibreOffice Contributors

Many people from The Document Foundation (TDF), the charity behind LibreOffice will present different topics in the workshop. Also, other contributors and also experienced developers from the ecosystem companies will participate.

We are excited to be able to see you in person in Luxembourg to share practical knowledge about LibreOffice and open source development model with you.

Workshop Topics

These are the topics of the workshop. For more information, please refer to the workshop page at the conference website:

Day One: 11 October 2024

Morning:

1. Bug reporting and triaging (1 hour)
Presenter: Xisco Faulí

2. Git Basics (1 hour)
Presenter: Michael Weghorn

3. Gerrit for code reviews (1 hour)
Presenter: Xisco Faulí

4. Introduction to problem solving techniques (30 minutes)
Presenter: Michael Meeks, Collabora Productivity

Afternoon:

5. Building LibreOffice from source code (3 hours)
Presenter: Christian Lohmaier

6. Introduction to LibreOffice Writer Development (1 hour)
Presenter: Miklos Vajna, Collabora Productivity

Day Two: 12 October 2024

Morning:

7. LibreOffice Documentation (1 hour)
Presenter: Olivier Hallot

8. LibreOffice automation via scripting (BASIC, Python) (3 hours)
Presenter: Rafael Lima / Alain Romedenne / Jean-Pierre Ledure

Requirements

The workshop is based on “bring your own device”. For the scripting, you will need a working LibreOffice installation. You will need to install some development tools and libraries to be able to compile LibreOffice from source code.

But, we will be there in-person at the workshop to help you install the requirements step by step!

What Can You Expect?

After successful participation in the workshop, you can gain better understanding the open source development model, bug reporting and triaging, get started with Git and Gerrit, and also build and run your modified LibreOffice from source code. You will also understand the basic structure of the LibreOffice source code, which will help you to start LibreOffice development.

Click here to register


face

European Commission logo

Free Software (like LibreOffice) is about far more than just zero-cost. It’s about the freedom to use, share and modify the software that we all rely on. Our friends over at the Free Software Foundation Europe (FSFE) write:

The European Commission has cut important funds for Free Software. The non-transparent decision shows the need for sustainable long-term funding to allow the EU to control its own technology. Raise your voice and take part in an ongoing consultation to ask for sustainable long-term funds for software freedom.

They provide information on how to participate in the consultation (which closes on 20 September!) so give them a hand.

Click here to learn more and participate



Thursday
12 September, 2024


face

The LibreOffice 24.8 family is optimised for the privacy-conscious office suite user who wants full control over the information they share

Berlin, 12 September 2024 – LibreOffice 24.8.1, the first minor release of the LibreOffice 24.8 family of the free, volunteer-supported office suite for Windows (Intel, AMD and ARM), macOS (Apple and Intel) and Linux, is available at www.libreoffice.org/download. For users who don’t need the latest features and prefer a more tested version, TDF maintains the previous LibreOffice 24.2 family, with several months of back-ported fixes. The current version is LibreOffice 24.2.6.

LibreOffice is the only software for creating documents that contain personal or confidential information that respects the privacy of the user – ensuring that the user is able to decide if and with whom to share the content they create. As such, LibreOffice is the best option for the privacy-conscious office suite user, and offers a feature set comparable to the leading product on the market.

In addition, LibreOffice offers a range of interface options to suit different user habits, from traditional to modern, and makes the most of different screen sizes by optimising the space available on the desktop to put the maximum number of features just a click or two away.

The biggest advantage over competing products is the LibreOffice Technology Engine, the single software platform on which desktop, mobile and cloud versions of LibreOffice – including those from ecosystem companies – are based. This allows LibreOffice to provide a better user experience and to produce identical and fully interoperable documents based on the two available ISO standards: the Open Document Format (ODT, ODS and ODP) and the proprietary Microsoft OOXML (DOCX, XLSX and PPTX). The latter hides a great deal of artificial complexity, which can cause problems for users who are confident that they are using a true open standard.

End users looking for support will be helped by the immediate availability of the LibreOffice 24.8 Getting Started Guide, which can be downloaded from the following link: books.libreoffice.org. In addition, they will be able to get first-level technical support from volunteers on the user mailing lists and the Ask LibreOffice website: ask.libreoffice.org.

A short video highlighting the main new features is available on YouTube and PeerTube peertube.opencloud.lu/w/ibmZUeRgnx9bPXQeYUyXTV.

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.

LibreOffice for Enterprise

For enterprise-class deployments, TDF strongly recommends the LibreOffice Enterprise family of applications from ecosystem partners – for desktop, mobile and cloud – with a wide range of dedicated value-added features and other benefits such as SLAs: www.libreoffice.org/download/libreoffice-in-business/.

Every line of code developed by ecosystem companies for enterprise customers is shared with the community on the master code repository and


Monday
09 September, 2024


face

General Activities

  1. LibreOffice 24.8.0 was released on August 22
  2. Olivier Hallot (TDF) continued with improvements to Calc function help pages, added help pages for Sidebar settings and graphics export via command line, improved help pages for Writer Status Bar, Calc’s Similarity Search and database ranges, updated menu item paths in Help, did lots of Help cleanups, added some extended tooltips, improved the dialog for easy conditional formatting in Calc and removed a misleading Restore Default button from Sidebar Settings
  3. Alain Romedenne improved help for BASIC’s If statement and added unit tests for IF THEN statements in BASIC and VBA
  4. Pierre F. made two dozen improvements to help, in areas such as Calc functions, word count, change tracking, BASIC, regular expressions, AutoRecovery and backup, and freezing of rows and columns in Calc
  5. Dione Maddern added a help page for Quick Find Sidebar deck, updated the help for Writing Aids, reworked help pages for Navigator and Navigation toolbar and updated the instructions for enabling remote control in Impress Remote user guide
  6. Adolfo Jayme Barrientos updated help pages about digital signatures after UI changes
  7. Laurent Balland did cleanups in Resume Writer template and Beehive, Blue Curve, DNA, Blueprint Plans, Focus, Inspiration, Light, DNA, Midnightblue, Piano, Portfolio, and Progress Impress templates
  8. Miklós Vajna (Collabora) made it faster to open DOCX files with many shapes and sections, and headers/footers activated, fixed a layout loop in a certain DOCX file with a complex full-page group shape, fixed losing paragraph styles with many numberings in DOCX export and made Writer layouting smarter, improving performance in LOKit
  9. Sven Göthel, Skyler Grey, Hubert Figuière, Andras Timar, Michael Meeks and Áron Budea (Collabora) worked on LOKit used by Collabora Online. Michael also optimised loading times by reducing the frequency of progress bar updates
  10. Jaume Pujantell (Collabora) implemented handling of firstHeaderRow attibute in XLSX pivot tables and fixed a crash seen when editing text in shapes in Collabora Online
  11. Tomaž Vajngerl (Collabora) worked on the new histogram chart type
  12. Julien Nabet fixed an issue preventing deletion of MySQL/MariaDB tables with spaces in their names and did some code cleanups
  13. Xisco Faulí (TDF) fixed a PDF export crash, improved the contrast accessibility check and did many dependency updates
  14. Michael Stahl (allotropia) improved some automated tests, fixed issues with hidden sections, made HTML pasting more robust when dealing with placeholder fields in Writer, fixed a wrapping issue with long index entries, simplified the code for JPEG quality levels in PDF export and made UA PDFs compatible with Adobe Acrobat Pro’s accessibility checker
  15. Mike Kaganski (Collabora) worked around a bug in MS Access ODBC 64-bit driver preventing database table editing, fixed an issue in Insert Special Character dialog related to changing the font selection and made it possible to filter characters in the dialog by Unicode value, fixed an issue with Calc’s EXACT function when working in array context, improved stability by preventing the closing of a document while it is being layouted

Friday
06 September, 2024


face

V Congreso Latinoamericano de LibreOffice

Our community in the region writes:

After successful previous events in Paraguay, Brazil and Mexico, the largest event of the LibreOffice project in Latin America arrives in Uruguay.

With the aim of bringing together users and collaborators to promote the dissemination of knowledge and experiences related to LibreOffice, the 2024 edition of the Latin American Congress will be held on December 5 and 6, at Espacio Colabora, in Montevideo.

For the realization of the event, the LibreOffice Project has the support of several local Free Software collectives: Resistencia Programada, Impulso Libre, GNLUG and Undernet.

Guest speakers from Argentina, Bolivia, Brazil, Spain, Italy and France will present tutorials on the use of the applications and ways to collaborate with the project. The schedule and registration link will be released shortly on the event’s official website.


Thursday
05 September, 2024


face

Berlin, 5 September 2024 – LibreOffice 24.2.6, the sixth minor release of the free, volunteer-supported office productivity suite for office environments and individuals, the best choice for privacy-conscious users and digital sovereignty, is available at https://www.libreoffice.org/download for Windows, macOS and Linux.

The release includes over 40 bug and regression fixes over LibreOffice 24.2.5 [1] to improve the stability and robustness of the software, as well as interoperability with legacy and proprietary document formats. LibreOffice 24.2.6 is aimed at mainstream users and enterprise production environments.

LibreOffice is the only office suite with a feature set comparable to the market leader, and offers a range of user interface options to suit all users, from traditional to modern Microsoft Office-style. The UI has been developed to make the most of different screen form factors by optimizing the space available on the desktop to put the maximum number of features just a click or two away.

LibreOffice for Enterprises

For enterprise-class deployments, TDF strongly recommends the LibreOffice Enterprise family of applications from ecosystem partners – for desktop, mobile and cloud – with a range of dedicated value-added features, long term support and other benefits such as SLAs: https://www.libreoffice.org/download/libreoffice-in-business/.

Every line of code developed by ecosystem companies for enterprise customers is shared with the community on the master code repository and contributes to the improvement of the LibreOffice Technology platform.

Availability of LibreOffice 24.2.6

LibreOffice 24.2.6 is available at https://www.libreoffice.org/download/. Minimum requirements for proprietary operating systems are Windows 7 SP1 and macOS 10.15. Products based on LibreOffice Technology for Android and iOS are listed here: https://www.libreoffice.org/download/android-and-ios/.

Next week, power users and technology enthusiasts will be able to download LibreOffice 24.8.1, the first minor release of the recently announced new version with many bug and regression fixes. A summary of the new features of the LibreOffice 24.8 ifamily s available on this blog post: https://blog.documentfoundation.org/blog/2024/08/22/libreoffice-248/.

End users looking for support will be helped by the immediate availability of the LibreOffice 24.8 Getting Started Guide, which is available for download from the following link: https://books.libreoffice.org/. In addition, they will be able to get first-level technical support from volunteers on user mailing lists and the Ask LibreOffice website: https://ask.libreoffice.org.

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

[1] Fixes in RC1: https://wiki.documentfoundation.org/Releases/24.2.6/RC1. Fixes in RC2: https://wiki.documentfoundation.org/Releases/24.2.6/RC2.


Tuesday
03 September, 2024


face

LibreOffice Expert magazines

Recently, 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 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 can only send a maximum of five copies to any one place, to make sure many people get a chance. When you contact us, please include this information (any requests without cannot be fulfilled):

  1. What you want to do with the magazines
  2. How many you want
  3. The address to which we should post them

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


face

Writer now has support for doing partial layout passes when LOK clients have pending events, which sometimes improves interactivity a lot.

This work is primarily for Collabora Online, but the feature is useful for any LOK clients.

Motivation

I recently worked with a document that has relatively simple structure, but it has 300 pages, and most of the content is part of a numbered list. Pasting a simple string (like an URL) into the end of a paragraph resulted in a short, but annoying hang. It turns out we updated Writer's layout for all the 300 pages before the content was repainted on the single visible page. In theory, you could reorder events, so you first calculate the first page, you paint the first page, then you calculate the remaining 299 pages. Is this possible in practice? Let's try!

Results so far

The relevant part of the test document is simple: just an empty numbered paragraph, so we can paste somewhere:

Bugdoc: empty paragraph, part of a numbered list and then pasting an URL there

This is a good sample, because pasting into a numbered list requires invalidating all list items in that list, since possibly the paste operation created a new list item, and then the number portion has to be updated for all items in the rest of the list. So if you paste into a numbered list, you need to re-calculate the entire document if all the document is just a numbered list.

The first problem was that Writer tracks its visible area, but LOK needs two kinds of visible areas. The first kind decides if invalidations are interesting for part of the document area. LOK wants to get all invalidations, so in case we cache some document content in the client that is near the visible area, we need to know when to throw away that cache. On the other hand, we want to still track the actually visible viewport of the client, so we can prioritize visible vs hidden parts of the document. Writer in LOK mode thought that all parts of the document are a priority, but this could improved by taking the client's viewport into account.

The second problem was that even if Writer had two layout passes (first is synchronous, for the visible area; second is async, for the rest of the document), both passes were performed before allowing a LOK client to request tiles for the issued invalidations.

This is now solved by a new registerAnyInputCallback() API, which allows the LOK client to signal if it has pending events (e.g. unprocessed callbacks, tiles to be painted) or it's OK for Writer layout to finish its idle job first.

The end result for pasting a URL into this 300 pages document, when measuring end-to-end (from sending the paste command to getting the first updated tile) is a decrease in response time, from 963 ms to 14 ms.

How is this implemented?

If you would like to know


Monday
02 September, 2024


face

LibreOffice project and community recap banner

Here’s our summary of updates, events and activities in the LibreOffice project in the last four weeks – click the links to learn more…

  • The biggest news in August was the release of LibreOffice 24.8. This is our latest major stable branch – and the second to use the “year.month” version number scheme. It has a ton of new features, improvements and fixes, some of which are shown in this short video (PeerTube version here):

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.

LibreOffice Conference 2024 banner

  • In other conference news, we announced that the Luxembourg Media & Digital Design Centre is co-organising it. This is an Economic Interest Grouping gathering the Ministry of Education, Children and Youth (MENEJ), and the Ministry of Higher Education and Research (MESR), and the Luxembourg Institute of Science and Technology (LIST), created to support national activities related to digital learning and to operate service and innovation platforms.


Luxembourg Media & Digital Design Centre logo

  • Next, we spoke to Khushi Gautam who is currently working on fixing bugs in her LibreOffice Outreachy project, “Sidebar Deck for Quick Find”, alongside Google Summer of Code students to make further progress.

Khushi Gautam

LibreOffice in Microsoft Store

  • The Document Foundation (TDF) is the non-profit home of LibreOffice, and its Membership Committee (MC) administers membership applications and renewals following the criteria defined in the Foundation’s Statutes. An election for a new MC is coming up, and in August we ran three live “townhall” Q+A sessions with the candidates. Recordings from two of them are online (PeerTube versions here and here):

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.

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.


Wednesday
28 August, 2024


face

As announced earlier in the month, we’re running live “Q+A” sessions for candidates in The Document Foundation’s upcoming Membership Committee election. Here’s a recording from the second session (PeerTube version here):

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.


Tuesday
27 August, 2024


face

LibreOffice Asia Conference 2024 in Taipei – Government Migration and Community Experiences Sharing

Our Taiwanese community reports back from a recent event:

The LibreOffice Asia Conference 2024 was held in Taipei from 2 – 3 August. This conference was suspended for several years due to the pandemic and was relaunched in Indonesia last year.

In addition to the local community, there were many partners from the Japanese and Indonesian communities, as well as experts from Germany and Italy, representing The Documentation Foundation and the Open Document Format Technical Committee, who attended this conference.

The main visual design of the conference was developed by students at the Open Design Club in National Chengchi University. They boldly adopted the theme of “rice” since that’s a common staple food in Asian countries, and created a series of exquisite logos, icons and merchandise.

LibreOffice Asia Conference 2024 in Taipei – Government Migration and Community Experiences Sharing
Staff in Government Day and the main poster

There were two main topics in this conference: Government Day and Community Day.

Government Day

The first day, “Government Day”, focused on Open Document Format (ODF) policy and “Public Money, Public Code” (PMPC). Six scholars and experts along with LibreOffice community members were invited to give talks, which covered topics from policy theory to practical practices when adopting ODF and PMPC in government. The audience was mostly made up of users from central and local government units.

The first speaker was Lothar Becker, co-chairman of TDF’s Certification Committee and also a board member of Open Source Business Alliance in Germany. This talk summarized lessons learned from 25 years of migration experiences to LibreOffice Technology in governmental organizations, from famous ones like the “LiMux” project in Munich, to up-to-date migration projects for 30,000 PCs in the government of the German state Schleswig-Holstein.

The second speaker was Prof. Naiyi Hsiao, the chair of Department of Public Administration, National Chengchi University. This session explored what and why the PMPC practice has encountered legal and administrative concerns among the diverse stakeholders.

The third speaker was Director Cheng Ming Wang, the general director of Department of Digital Service, Ministry of Digital Affairs, which is responsible for the ODF policy in Taiwan. His talk introduced three aspects of Taiwan’s ODF promotion: why Taiwan promotes ODF; the process and current status of ODF promotionl and the next steps.

The fourth speaker was Svante Schubert, co-chairman and co-editor of the ODF Technical Committee. His talk briefly gave an introduction to ODF and provided an update. In addition, he explained how the TDF-hosted ODF Toolkit is facilitating daily ODF usage (like for automated document translation).

The fifth speaker was Italo Vignoli, Board of Directors member of The Document Foundation. His talk discussed the role of open source software and open standards in digital sovereignty. Today, user-created content – and the ability to share it transparently – is in the hands of a few companies that take advantage of users’ limited digital culture. This situation can only be overcome by moving from proprietary to open source software and from proprietary to open standards.

The last session was from Prof. Tyng-Ruey Chuang, the Associate Research Fellow


Monday
26 August, 2024


face

When I translated one book about Python to Russian which contained many examples of Python code I though quite long how to highlight them in the normal text. For book writing I used LibreOffice Writer (of course) but Writer has no a standard tool for code highlighting.

So after some searching I found the LibreOffice extension - Code Highlighter 2. It is also available on our extension site. This extension makes code highlighting using Pygments Python library. There is support for many programming languages and many color styles for highlighting there.

The extension worked fine, but I didn't like that for highlighting I should manually select every code example in the text, then press some shortcut, then select another code example, etc...

I wrote an issue on the extension github page and after some discussions the extension author Jean-Marc Zambon implemented a new feature that allows to highlight all code example in the book in only one action using Paragraph style!

So my workflow in this case will be as follows:

  • Create a snippet for the AutoText with code example that has a special paragraph style (for example, with font name Consolas and font size 12pt) with name, for example too - 'Python_code'.
  • Use this snippet to insert code examples
  • In the end of book writing just use the new feature in the extension and highlight all code examples in only one action!

 


Above you can see examples of the Code Highlighter work with some light and some dark styles.


Friday
23 August, 2024


face

In Collabora Online (for the normal mode of operation) we have a single server process (coolwsd) that spawns a separate process (kit) to load and manage each individual document. Each of those per-document kit processes runs in its own isolated environment. See architecture for details.

Each environment contains a minimal file system (ideally bind mounted from a template dir for speed, but linked/copied if not possible) that each kit chroots into, limiting its access to that subtree.

That chroot requires the CAP_SYS_CHROOT capability (and the desirable mount requires the CAP_SYS_ADMIN capability), and granting those capabilities to the coolforkit and coolmount binaries is a root privilege that, for typical deb/rpm packages, is done automatically at install time.

But it would be far more convenient not to require these capabilities to be set to do this isolation. They grant online more ability to affect its host system than it uses, we only want to mount dirs and chroot into dirs that belong to online and have no need or desire to make them available to any other process or user, and it's awkward, especially during development. to require root privileges to set these capabilities.

This scenario is not unique, and Linux provides namespaces, typically used by container implementations, to support achieving this. So recent work in Collabora Online leverages these namespaces to do its own layer of per-document kit isolation. (There's a good series of articles by Steve Ovens on the various namespaces, with the mount namespaces the most relevant one here.)

In essence, a user level process can create its own namespace in which it is apparently root from its own perspective, but as the original uid from the outside perspective and limited to operating on resources that the original uid is limited to accessing. So for each forkit, instead of requiring initial system capabilities and creating a system level bind mount we instead have no specific initial capabilities, enter a new namespace, unique to each forkit, in which that forkit becomes king of its own castle with apparent full capabilities, and can create bind mounts and chroot into its minimal file system.

Which is pretty magical to me as the whole existence of namespaces passed me by entirely without notice despite debuting over a decade ago.

Nothing is ever simple however, so some hurdles along the way.

Entering the namespace "requires that the calling process is not threaded" (man 2 unshare) which is not a problem for the normal use case in each kit, but did pose a problem for the test coolwsd does in advance to probe if there are working namespaces on the system in determine if it should operate kits in namespace mode or not. There it turned out that the Poco::Logger we use backups existing logs when it creates a new one, and then by default spawns a  thread to compress the old log.

I initially had the vague notion that I could treat a namespace as a sort pseudo-sudo and


Wednesday
21 August, 2024


face

General Activities

  1. LibreOffice 24.2.5 was released on July, 25
  2. Olivier Hallot (TDF) did many improvements to Calc function help pages and added documentation for wildcards in the Find & Replace help content
  3. Alain Romedenne added a help page for supported MS Office VBA object features and improved the help for IF Basic statement
  4. Pierre F. did many improvements to Calc function help pages and clarified the help text on crash reporter
  5. Dione Maddern reworked the help pages concerning Styles Sidebar deck and added a help page for Page Sidebar deck
  6. Stanislav Horáček updated help for Calc’s XMATCH function
  7. Gábor Kelemen (allotropia) did code cleanups in the area of warnings
  8. Laurent Balland did cleanups in Yellow Idea, Candy, Freshes and Growing Liberty Impress templates
  9. Miklós Vajna (Collabora) continued polishing support for content controls, improved the performance of working with documents having an unusually large number of bulleted lists, disabled export of form fields as PDF forms by default to match user expectations better and improved font fallback in DOCX import
  10. Szymon Kłos, Jaume Pujantell, Attila Szűcs, Michael Meeks, Pranam Lashkari, Marco Cecchetti, Áron Budea and Henry Castro (Collabora) worked on LOKit used by Collabora Online
  11. Tomaž Vajngerl (Collabora) continued refactoring and improving the code for Impress annotations
  12. Julien Nabet fixed crashes and did code cleanups especially in Python code
  13. Xisco Faulí (TDF) fixed an issue with deleting empty columns in Calc removing formatting from adjacent column, fixed a table copying crash, did simplifications in automated tests, added a dozen new tests, converted some tests from Java to Cppunit and upgraded Python to 3.10 alongside other dependency updates
  14. Michael Stahl (allotropia) made document repairing code more robust and made it possible to remove autoformatting from a Writer table while adding a configuration option to disable automatic updates of autoformatting when editing a table
  15. Mike Kaganski (Collabora) fixed rendering issues with GDI and EMF metafiles, made clipboard handling more robust on Windows, made UI tests more stable on Windows, fixed many issues related to database functionality, also making the Firebird integration better, made HTML/ReqIF export more robust and improved the performance of Calc autoformatting when applying to whole rows. He also did many code cleanups and optimisations
  16. Caolán McNamara (Collabora) fixed incorrect font emphasis in Expert Configuration dialog, fixed an issue with a certain type of imported PDF appearing as blank after exporting, improved font fallback automated tests and fixed crashes. He also fixed many issues found by static analysers and fuzzers
  17. Stephan Bergmann (allotropia) worked on WASM build, finishing the UNO bridge for it and enabling Start Center
  18. Noel Grandin (Collabora) greatly improved the export time of complex XLS/X spreadsheets to ODS, made UI tests more stable by making them use a generic clipboard rather than the system one, improved the performance of rendering animated GIFs in Impress and improved the saving time of ODS files with lots of comments
  19. Justin Luth (Collabora) implemented an option to the page number wizard

Thursday
15 August, 2024


face

Various functionalities of the LibreOffice are available through its programming interface, the UNO API. Here I discuss how to extend it.

What is UNO API?

Many functionalities of the LibreOffice is available through UNO API. You can write extensions and external programs that use LibreOffice functionality without the need to change the LibreOffice core source code.

Extensions work seamlessly with the software, and external applications can connect to the LibreOffice process and use it. The ability to do that depends on the UNO API.

On the other hand, some functionalities may not be available through this API. For example, newer features of the decent versions of LibreOffice, or functionalities that are not useful and/or important for external applications. Sometimes, you may want to use such functionalities elsewhere. Then you have to modify the LibreOffice core source code, and expose those functionalities through the API make them available to the external applications.

Let’s refer to the LibreOffice Developer’s Guide, which is mostly around the LibreOffice UNO API. There, you can read:

“The goal of UNO (Universal Network Objects) is to provide an environment for network objects across programming language and platform boundaries. UNO objects run and communicate everywhere.”

As UNO objects should be usable across different languages and platforms, they are described in an abstract meta language called UNOIDL (UNO interface definition language). This is similar to the IDL definitions in many other technologies like CORBA.

Example UNO API: FullScreen

The API that I discuss here, provides functionality to control full screen functionality for top level windows. Stephan, experienced LibreOffice developer, added that API in this commit:

commit af5c4092052c98853b88cf886adb11b4a1532fff

Expose WorkWindow fullscreen mode via new XTopWindow3

...deriving from the existing XTopWindow2. (Exposing this functionality via UNO
is useful e.g. for some embedded LOWA example application.)

The changes in this commit are over these files:

offapi/UnoApi_offapi.mk
offapi/com/sun/star/awt/XTopWindow3.idl
toolkit/inc/awt/vclxtopwindow.hxx
toolkit/source/awt/vclxtopwindow.cxx

First one, offapi/UnoApi_offapi.mk is needed to introduce the IDL file, according to its module, in a proper location. XTopWindow3.idl is added in com/sun/star/awt, which corresponds to com.sun.star.awt module. The other two, vclxtopwindow.hxx and vclxtopwindow.cxx are the implementation of the API in C++.

Let’s look into XTopWindow3.idl:

module com { module sun { module star { module awt {

/** extends XTopWindow with additional functionality

@since LibreOffice 25.2
*/
interface XTopWindow3: XTopWindow2 {
/** controls whether the window is currently shown full screen */
    [attribute] boolean FullScreen;
};

}; }; }; };

As you may see, it contains these important information:

1. It is an interface, called XTopWindow3.

2.It has a boolean attribute, FullScreen.

3. This functionality will be available in LibreOffice 25.2 and later.

4. This interface extends XTopWindow interface. You may find the documentation for XTopWindow in api.libreoffice.org.

More information about XTopWindow interface can be found in XWindow section of the LibreOffice Developer’s Guide, chapter 2.

C++ Implementation

C++ implementation basically consists of two functions to set


Wednesday
07 August, 2024


face

Writer now has improved support for font fallback when you open a DOCX file that refers to fonts which are not available currently.

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

Motivation

Font embedding is meant to solve the problems around missing fonts, but you can also find documents with stub embedded fonts that are to be ignored and our code didn't have any sanity check on such fonts, leading to unexpected glyph-level fallbacks. Additionally, once font-level fallback happened, we didn't take the font style (e.g. sans vs serif) into account, which is expected to work when finding a good replacement for the missing font.

Results so far

Here is how to the original rendering looked like:

Bugdoc, before: ugly glyph-level fallback

Once the handler for the embedded fonts in ODT/DOCX was improved to ignore stub fonts where even basic glyphs were not available, the result was a bit more consistent, but still bad. Here is a different document to show the problem:

Bugdoc, first improvement: no glyph fallback but the result is sans

Note how now we used the same font, but the glyphs are always sans, not serif. So the final step was to import the font type from DOCX and consider that while deciding font fallback:

Bugdoc, second improvement: no glyph fallback and the result is sans / serif

With this, we ignore stub embedded fonts from DOCX, we import the font type and in general font fallback on Linux takes the font type into account while deciding font fallback.

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 development edition of Collabora Online 24.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 (24.8).


Monday
05 August, 2024


face
  • Mail chew - with newly migrated mail servers; hmm. Amused that an unusual job description from LinkedIn generates more interesting spam:
    "Michael, as the Christian & Hacker at Collabora Ltd you know how hard choosing the right global employment and work payment partner can be."
    presumably some new AI super-brain made the connection.
  • 1:1's with Miklos, Lily, Chris, content review with Richard, catch up with Pedro & Eloy.
  • Enjoyed John Stott's The Message of the Sermon on the Mount in the evening.

Sunday
04 August, 2024


face
  • Up early; All Saints - played Guitar, H. on Piano; Rick drumming - good, David S's run a family service.
  • Back for a Pizza lunch; slugged and read stories with the babes. Checked tent & packed with N.
  • Out to see James, Kate & Penelope, lovely to catch up with them in the afternoon.

Saturday
03 August, 2024


face

Friday
02 August, 2024


face
  • Long partner call, missed Ash' TTT, plugged away at some code, fun.

Thursday
01 August, 2024


face
  • Technical planning, COOL community, sync with Oli, lunch, catch up with Noel. Helped E. assemble a new flat-pak desk to much excitement.

Wednesday
31 July, 2024


face
  • Mail, admin, partner call, quick lunch. Monthly all-hands meeting, weekly sales call, interview, catch up with Philippe.

Tuesday
30 July, 2024


face
  • Interview with J. and Karyn in the garden; planning call, sync with Sven, mail chew; worked back through more mail and tickets.

face

LibreOffice 24.8 will be released as final at the end of August, 2024 ( Check the Release Plan ) being LibreOffice 24.8 Release Candidate 2 (RC2) the forth and last pre-release since the development of version 24.8 started at the beginning of December, 2023. Since the previous release, LibreOffice 24.8 RC1, 138 commits have been submitted to the code repository and 87 issues got fixed. Check the release notes to find the new features included in this version of LibreOffice.

LibreOffice 24.8 RC2 can be downloaded for Linux, macOS and Windows, and it will replace the standard installation.

In case you find any problem in this pre-release, please report it in Bugzilla ( You just need a legit email account in order to create a new account ).

For help, you can contact the QA Team directly in the QA IRC channel or via Matrix.

LibreOffice is a volunteer-driven community project, so please help us to test – we appreciate it!

Happy testing!!

IMPORTANT INFORMATION FOR WINDOWS 7 USERS
Internal python version has been upgraded to python 3.9 which no longer supports Windows 7. Be aware some LibreOffice functionalities written in Python may not work, like the wizards in File – Wizards. Please, do test this version and give us feedback.

Download it now!


Monday
29 July, 2024


face
  • Mail chew, lots of 1:1's, marking content review, lots more mail chew. Steve over to look at the window painting horror.

face

Here I discuss what fuzz testing is, and how LibreOffice developers use it incrementally to maintain LibreOffice code quality.

Maintaining Code Quality

LibreOffice developers use various different methods and tools to maintain LibreOffice code quality. These are some of them:

1. Code review: Every patch from contributors should pass code review on Gerrit, and after conforming to coding standards and conventions, it can become part of the LibreOffice source code.

2. Static code checking: “Coverity Scan” continuously scans LibreOffice source code to find the possible defects. An automated script reports these issues to the LibreOffice developers mailing list so that developers can fix them.

3. Continuous Testing: There are various C++ unit test and Python UI tests in LibreOffice core source code to make sure that the functionalities of the software remain working during the later changes. They are also helpful for making sure that the fixed regressions do not happen again. These test run continuously for each and every Gerrit submission on CI machines via Jenkins.

4. Crash testing: A good way to make sure that LibreOffice works fine is to batch open and convert a huge set of documents. This task is done regularly, and if some failure occurs developers are informed to fix the issue.

5. Crash reporting: LibreOffice uses crash testing to find out about the recurrent crashes, and fix them.

6. Tinderbox Platforms: Using dedicated machines with various different architectures, LibreOffice developers make sure that LibreOffice source code builds and runs without problem on different platforms. Here is the description of tinderbox (TB) from TDF Wiki:

Tinderbox is a script to run un-attended build on multiple repos, for multiple branches and for gerrit patch review system.

LibreOffice tinderboxes status

LibreOffice tinderboxes status

You can see the build status here:

https://tinderbox.libreoffice.org/

7. Fuzz testing: LibreOffice software is checked continuously using Fuzz testing. This is essentially giving various automated inputs to the program to find the possible places in the code where problem occurs. Then, developers will become aware of the those problematic places in the code, and can fix them.

Fuzz Testing LibreOffice

Fuzz testing on LibreOffice source code is active since 2017, and since then there has been various bug fixes for the problems that the fuzz tester reported. You can see more than 1500 of such fixes in the git log until now:

$ git shortlog -s -n --grep=ofz#

Issues Found with Fuzz Testing

This tool can find various different problems. These issues are then filed in a section of Chromium bug tracker, and after ~30 days, they are made public. When developers fix bugs of this kind, they refer to the issue number (for example 321) as ofz#321. A comprehensive list of all issues found is visible here:

Fixing the Issues

Let’s look at one of the fixes. You can find commits related to fuzzing with:

$ git log --grep=ofz

This is a recent fix from Caolán, an experienced LibreOffice developer that provided most of


Sunday
28 July, 2024


face
  • Up early; Guitar with Cedric at Church, Rick spoke well. Home for pizza lunch - H.N.M. all left to help serve at a Christian Kids camp together - good stuff.
  • Back to All Saints to play for the YFC AGM; great to see what they're doing.
  • Back; relaxed in the sun with J. and babes.

Saturday
27 July, 2024


face
  • Up earlyish; J. out to her arty church activity with Leanne. Chewed through lots of paper - tried to sort out a box of mixed papers from prior to the move to the new office - urk. Can see more desk now at least.
  • Lunch with J. & E. rested in the afternoon variously, learned a new song for tomorrow.

Friday
26 July, 2024


face
  • Up early, J & babes out to see B&A. Sync with Dennis & Anna, then Aron, TTT form Quikee, sync with Neil, Anna, Elliot.
  • Out for a walk; enjoyed the spotify account that (somehow) the family persuaded me to buy. Family out, Kebab & chat with Leanne. Back to work.

Older blog entries ->