LibreOffice Macro Team: progress report

Macros help users to automate common tasks in LibreOffice, and in September, we announced a new team in our community to work on macro support.

So, what has happened in the meantime? This article is a collection of the work done by the LibreOffice Macro Team in the past few months, as well as any other macro-related things in the project. If you are interested in contributing to the macro team (development, testing or documentation), we’d love to hear from you – please send an email to ilmari.lauhakangas@libreoffice.org and we’ll get in touch.

Quality assurance work

Tomoyuki Kubota and Alain Romedenne reorganised the macro meta bug, creating several subcategories for macro issues and feature requests.

Wiki docs

Soon after the announcement of the macro team in early September, we were contacted by Nathan Ullberg, who promptly started contributing to the wiki documentation. Nathan is keeping notes on the progress of his work on his wiki user page. Alain is collaborating with Nathan on the wiki effort, which includes creating new articles with example macros, reviewing old ones and translating them from French to English.

Code contributions from macro team members

Tomoyuki Kubota:

Andreas Heinisch:

Alain Romedenne:

Code contributions from honorary associate members

Mike Kaganski (Collabora):

Stephan Bergmann (Red Hat):

Samuel Mehrbrodt (CIB):

Help content

Improved by Alain Romedenne:

Improved by Olivier Hallot (TDF):

Added by Olivier Hallot (TDF):

Finally, we have to highlight Alain’s presentation from the LibreOffice Conference 2019: Scripting LibreOffice Python macros, aka “Macros Well Kept Secrets”:

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.

Big thanks to everyone for their contributions and special thanks to Alain for coordinating things and being a tireless macro educator! As mentioned, everyone is welcome to join our efforts to improve macro support in LibreOffice – you don’t need to be a developer. Help us with documentation, bug reports and more – and gain valuable experience on the way!

LibreOffice and Google Summer of Code 2019: The results

This year, LibreOffice was once again a mentoring organization in the Google Summer of Code (GSoC) a global programme focused on bringing more student developers into free and open source software development. We ran six projects – and all were finished successfully. Both students and mentors enjoyed the time, and here we present some of the achievements, which should make their way into LibreOffice 6.4 in early February!

Generating QR Codes in LibreOffice – by Shubham Goyal

The ability to print and display hyperlinks as quick response (QR) codes has been requested for many years (bug 62168), and eventually Shubham Goyal implemented this feature. You can insert a QR code at the current cursor position or the table cell per Insert > Object > QR Code… or edit the inserted object with the context menu. Learn more in the final report.

NotebookBar improvements – by Sumit Chauhan

LibreOffice introduced the optional NotebookBar user interface in version 6.2. Now, thanks to Sumit, users can customise the NotebookBar by changing the visibility of buttons, as shown 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.

Users will be able to access this dialog from the menu: Tools > Customize, then go to the NotebookBar tab. Sumit explains some of the technical work behind this on his blog.

Another project Sumit worked on is extension support, which allows users to add extensions in the NotebookBar. There is an extension tab in all the NotebookBar interfaces where the added extension will be available (technical details here).

LibreOffice for Android (Online) – by Kaishu Sahu

In the last few years, LibreOffice for Android was lagging behind development of LibreOffice Online, because all the new features had to be re-implemented in Java. This year, a new approach to the LibreOffice Android app took place, reusing the Online work directly in the app. Kaishu Sahu’s code was important part of this effort – he has implemented features like inserting images, slideshows, save as, printing, sharing a document, dimming when inactive, and more.

Implement Chart Styles – by Gagandeep Singh

Previously, all chart formatting was directly applied. Chart styles allow users to quickly apply the same formatting presets to different charts and therefore make it easier to change them.

Wrapping up

Many thanks to all students who spent their summer time improving LibreOffice. You are awesome! And special thanks also to the mentors who always put some much love and energy into these tasks. That‘s what makes LibreOffice rock.

Now we are looking forward to next year’s GsoC. If you are interested, why not prepare early? Learn more at out wiki page where some ideas are listed.

LibreOffice and macOS Catalina

Apple has released macOS 10.15 Catalina on October 7, 2019. Mac apps, installer packages and kernel extensions that are signed with a Developer ID must be notarized by Apple to run on macOS Catalina. Although we have duly followed the instructions, when users launch LibreOffice 6.3.x – which has been notarized by Apple – the system shows the following scary message: LibreOffice.app cannot be opened because the developer cannot be verified, and provides only two options: Move to Bin (delete) and Cancel (revert the operation, i.e. do not run LibreOffice). Of course, this represents a problem for all Mac users who rely on LibreOffice for their office documents after they have upgraded to macOS Catalina.

To solve the issue and bypass the block, the user has to right-click with the mouse (or press Control on the keyboard while clicking with the mouse) on the LibreOffice icon and select Open. The system will show a less scary message: macOS cannot verify the developer of LibreOffice.app. Are you sure you want to open it?, and will eventually provide the Open option to launch LibreOffice.

There is also another solution, which does not bypass Gatekeeper forcing macOS Catalina to open LibreOffice as the solution just described (which is perfectly safe, in any case).

When the first scary message is on screen, the user has to click first on Cancel to close the window and then on the Apple menu to open the System Preferences window. Here the user has to open Security & Privacy and click on the Open Anyway button on the right side of the message LibreOffice.app was blocked from use because it is not from an identified developer to launch LibreOffice. Both solutions authorize LibreOffice to run without further authorizations. Of course, we will try to sort out the issue with Apple, in order to avoid similar issues in the future with macOS Catalina.

IMPORTANT NOTE: Screenshots have been grabbed while installing LibreOfficeDev.app (LibreOffice 6.4 Alpha) instead of LibreOffice.app, but do reproduce the same windows.

To complete the article, four screenshots of LibreOffice Writer, LibreOffice Calc, LibreOffice Impress and LibreOffice Draw (version 6.3.3.1) running on macOS Catalina.

Updates from the Document Liberation Project

We mostly focus on LibreOffice on this blog, but The Document Foundation also oversees the Document Liberation Project (DLP), which develops software libraries to import and export many different file formats. If you have some old documents or spreadsheets from legacy office software, for instance, the DLP can help you to access that data – giving control back to you.

Many well-known free and open source programs use DLP libraries, such as Inkscape, Scribus, Calligra and of course LibreOffice. A few days ago, there were some DLP updates, so here’s a quick summary:

libvisio 0.1.7

libvisio is a library that helps software to import documents from the Microsoft Visio diagramming and vector graphics application. It turns this:

Into this:

In libvisio 0.1.7, various conversion fixes were made, and a few memory leaks were plugged thanks to OSS-Fuzz. Check out the full release notes here.

libabw 0.1.3

Meanwhile, libabw was also updated. This is a library to import documents from AbiWord, a free software word processing tool. In libabw 0.1.3, a memory access error was fixed thanks to OSS-Fuzz, while expanding entities by the XML parser were disabled as well as a preventative measure.

Learn more and get involved!

The Document Liberation community is always looking for help: if you have old documents or files in legacy formats that you can’t open (or which don’t look right when opened in free software tools), let the project know! You can help the community to better understand file formats by submitting examples, and test new releases.

To learn more about DLP, check out this short video:

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.

Annual Report 2018: LibreOffice development

In 2018, 17,473 commits were made to the LibreOffice source code, from 223 authors. Here’s an overview of what they worked on…

Behind the scenes of LibreOffice 6.2

Throughout the second half of 2018, the developer community worked on a new major release: LibreOffice 6.2. Details about the end-user-facing new features are provided on this page, and in the following video – so in the rest of this blog post, we’ll focus on developer-related changes.

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.

So, let’s get technical!

In terms of system requirements, the macOS minimum version was bumped up to 10.9 (and will be 10.10 in LibreOffice 6.3). Similarly, binary Linux x86 (32-bit) releases from The Document Foundation were deprecated, so there will be no Linux x86 builds produced by TDF after LibreOffice 6.2. However, this does not mean that Linux x86 compatibility will be removed; Linux distributions can still opt to build 32-bit binaries. See here for more details.

On the user interface front, there were other changes. Two new VCL plugins (qt5 and kde5) were implemented (with the KDE5 plugin extending the Qt5 one), to provide integration with KDE Plasma 5 and other Qt5-based desktop environments. These were mainly implemented by Katarína Behrens (CIB) and Jan-Marek Glogowski (City of Munich).

If the kde5 and the gtk3_kde5 plugins are installed, the desktop detection will now prefer the kde5 one. The qt5 plugin must be explicitly selected via SAL_USE_VCLPLUGIN=qt5, as it’s never selected automatically.

Native copy and paste of spreadsheet data in Writer tables was implemented by László Németh (NISZ): previously, you could paste a copied table as image, object, plain text, and as RTF; the latter resulting in a new table in Writer. In LibreOffice 6.2 you can paste directly in an existing table.

Data Validation now supports custom formulas thanks to Marco Cecchetti (Collabora), while Edit > Track Changes > Show no longer severely impacts performance in documents with many tracked changes. The document view is now capable of hiding the tracked changes, so they do not have to be rearranged in the document model to be hidden – implemented by Michael Stahl (CIB).

LibreLogo, the programming interface for graphic design and education got unit testing, IDE and compiler fixes and improvements (László Németh – FSF.hu Foundation). Meanwhile, work continued on the native GTK3 UI, as demonstrated by Caolan McNamara (Red Hat) at FOSDEM 2018:

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.

Google Summer of Code

The Google Summer of Code (GSoC) takes place every year, and provides university students with funding to work on free and open source software. For 2018, seven LibreOffice developers were accepted into GSoC, and they worked on various features and updates. These improvements were presented in a session at the LibreOffice Conference in Tirana, Albania.

Daniel Silva showed his work on the revamped print dialog, which reorganised options into two tabs, to make them easier to find: a General tab, covering all components of the suite, and then a separate tab for component-specific features (ie those found in Writer, Calc, Impress and so forth). Altogether, this makes it easier for end users to find the options they need, without having to look through many different tabs.

Meanwhile, Mert Tümer worked on the LibreOffice Android Viewer as part of GSoC: he produced 23 patches, made up of nine new features and 14 bug fixes. Some of the new features include Export to PDF, printing, customising worksheets, and better language support.

Saurav Chirania implemented a logger for user interface testing, which logs interactions and stores them in a file, while Vikas Mahato worked on features for importing data from external sources, along with transformations for the data (38 types of transformation were implemented). Finally, Hrishabh Rajput worked on updating listbox widgets to separate read values from input values, Kshitij Pathania added some improvements to the Notebookbar, and Shobhan Mandal focused on adding support for Python in the LOEclipse plugin.

A big thanks to everyone who contributed code last year! Why not join them?

You don’t need to be the world’s best C++ wizard to get involved – just some C++ knowledge and willingness to explore the codebase is great!

We have Easy Hacks to get your started, so check out this page for inspiration. Cheers!

What is the Open Document Format (ODF), and how is it developed?

Regina Henschel is a long-time member of the LibreOffice community, and has worked on ODF, the native file format of the suite. At our recent German community meetup, we talked to her about how ODF is developed, and how users can help to improve it…

Tell us a bit about ODF…

Open Document Format is LibreOffice’s native file format. (If you have a file with a .odt, .ods, .odp or .odg extension, then it’s an Open Document Text, Spreadsheet or Presentation file or Graphic respectively.)

ODF is developed by OASIS, then submitted to ISO (the International Organization for Standardization), and then adopted as a standard. There is also a working group at ISO, which by the way also works on OOXML – which can then ask questions about development, and so on.

For ODF we are now working on version 1.3. We had a “feature freeze” last summer. We have come so far that everything we wanted to have in it is available in the “editor version”. Now we’re going to fine-tune it, then we’ll be back in summer – so that was a whole year. Then comes the coordination process at OASIS, so it usually takes two years until a new version of the standard is ready.

How do you decide which new features to add?

The feature has to be well defined, and that depends a little on how good the proposal you get is. There are some suggestions like: “We want to have a feature for Fourier transformations” – but nothing else! And then we say: as long as there is no implementation that actively handles it, we’ll postpone it for later. It’s not worth it, for a standards body to deal with a proposal like this, if there are no applications that are actually interested in it.

ODF exists as a “strict” standard, for features that are fully standardized, and then there is an “extended mode” in which you can try out new features in applications. They then run under their own namespace, and if that works, organizations can make a suggestion for OASIS, eg: “This feature works well for us, so please include this in the strict standard.”

Then others can say: “Yes, we want to do something similar, but it would be better for us if we didn’t call it X, but Y instead”. Or: “We need an additional attribute to make it work for us”, for example. In situations like that, the proposals are discussed.

For example, in LibreOffice, it’s now possible to specify the size of charts, independent of their labels. In the old standard, you could only set the size including the label. This means that when data changed and the label changed, the effect was that the size of the chart changed. So that’s been fixed in ODF 1.3.

There are also bugfixes, where there are things that are simply wrong, or that are not clear enough for implementation. For example, one thing that was really incorrect was to put the units “at” and “atm” on the same level – that was definitely wrong. And one time, a matrix form was wrong as well. So we work on fixes for these.

Can normal end-users help out?

Yes, you can be a “normal person”, so to speak, without being on any committee – you can still send something to the Technical Committee. There is a mailing list, and also a homepage, where you can get informed about the work of the committee. There you can also find a link to the mailing list – but you have to register, because of spam. Messages on this list are then read and answered by the Committee.

The second way to get involved is when the Committee is about to make a new version of ODF. This will then be made available for voting – and then there will be an official time for comments. There the regulations are a bit stricter; this is not voluntary, but the committee has to actually work on these comments. That should then give a qualified answer.

The next step where official participation takes place is at ISO. They have the same disclosure process again, where comments are collected accordingly. Then the Technical Committee gets a long list from ISO: “We have received these comments, please discuss them.”

So this is a process that is very open. That’s one of the reasons why I decided to join the Committee. It’s not that something happens in secret, and then suddenly there’s a standard – but rather, the process is totally comprehensible.

The other thing that interested people can see is the archives of the mailing lists – and there are weekly teleconferences too.

Thanks to Regina for all her help over the years! ODF – and other open standards – are incredibly important, especially for long-term data storage. Indeed, the UK government recommends using ODF, and has guidelines for using the format in organisations and companies. Also check out this presentation from Regina at FOSDEM 2018.