The Document Foundation Planet


August 17, 2018

Andreas Mantke

Update Extensions Website With Upgraded Plug-ins

I made some backups of the current state of all projects on the LibreOffice extensions and templates website and also created a copy of the content of the site. This took some time because I had to fight with too little disk space on the virtual machine. Thus I had to limit the amount of backup.

Once I finished the backup I run a buildout for the LibreOffice extensions and templates website and updated the plug-ins that we use to run the site on the Content Management System Plone. The upgraded plug-ins change particularly the workflow for projects and thus led to a situation where I had to check and update the review state of every project. I finished this work, which took a longer time for the extensions projects yet. I’ll work on the state of the template projects later, because I need a break now.

The change of the workflow state (e.g. to published) will send an automatic generated message to the project owner.

by Andreas Mantke at August 17, 2018 10:41 PM

August 16, 2018

Naruhiko Ogasawara

One-day trip for COSCUP x GNOME.Asia x openSUSE.Asia 2018

Last weekend (precisely, Aug. 11th and 12th 2018), COSCUP x GNOME.Asia x openSUSE.Asia 2018, one of the largest FLOSS-related conference in Eastern Asia this year, has done with huge success, gathered many attendees not only from Asian regions but also outside of Asia.

I had only attended the Sunday the conference because of unfortunate reason, but I really had enjoyed the day!

The slide of my presentation for openSUSE.Asia track is here.

As the title mentions, I would like to tell average Linux users to use the modern packaging system (in this context, Flatpak or AppImage) instead of using TDF rpm/deb packages with dnf, zypper or apt, if you want to follow a latest Fresh version of LibreOffice.  Some reasons it couldn't attract many people, It was a good opportunity for me to summarize these systems.
Right now I haven't switched them from distro-official one (LibO 6.0) on my Ubuntu bionic desktop yet because of my laziness, but I'll move to Snap or Flatpak, not using classical PPA build.

Shinji Enoki also from Japan had a talk to summarize LibreOffice CJK issues status and said so many thanks to Mark Hung, who is solved several CJK issues in LibO 6.1.  Of course, I also would like to say thanks to him :).
In this session, we had a little time to discuss how to encourage each language community (for us from Japan and Daehyun Sung from South Korea, or else).  Of course, it's a difficult question to answer, but we can do something together to do so I guess.  What we can do with is a good discussion point in Tirana I guess ;).

[UPDATE 2018.8.16] I forgot to mention one more thing which is important for Japanese users; Support new era (next to Heisei) of the Japanese calendar.  Mark Hung also tell us this has been already (almost) done and may need a small modification after the new era will be decided.  Here is a commit  Thanks, Eike!

And we have a small booth to introduce Japanese FLOSS communities (to me, LibreOffice and Selenium users community JP) for (mainly) Asian people.
Advertisement: Selenium world conference SeleniumConf 2019 will be in Tokyo. We are preparing the site for now, and Call for proposal for sessions will be opened soon.

I only had one day (because my flight 10th evening was canceled and the extra flight departed 11th evening) but really had a great time.  Thanks, friends who I met and see you around!

by Naruhiko Ogasawara ( at August 16, 2018 02:03 PM

Official TDF Blog

LibreOffice 6.1: A week in stats

On August 8, we announced LibreOffice 6.1, a new version of the suite with many great features and updates created by our worldwide community. Let’s look at some stats from the last week!


These are just stats for our official downloads page, of course – some Linux users will have acquired the new release via their distribution’s package repositories. And we still offer the LibreOffice 6.0 branch which is especially suited to enterprise deployments.

274,916 visits to our website

Our main website is the central resource for all things LibreOffice, including downloads, release notes, help, community support and more.

192,232 visits to our blog

Most of these were for the release announcement, but we’ve been posting other updates as well. On a related note, if you want to follow blog posts by other members of the LibreOffice community, check out the TDF Planet.

18,738 views of our New Features video

We made a video highlighting the new features in LibreOffice 6.1, with an awesome introduction created by our Taiwanese community. This video was embedded into various news websites that covered the release.

21,347 impressions of the announcement tweet

We use Twitter to spread the word about LibreOffice, free software and open standards, so a big thanks to our supporters who retweeted the announcement. It had 197 retweets and 269 likes.

Over 32,000 views of our Reddit “Ask us Anything”

One day after the release, team and board members from The Document Foundation, along with some community members, organised an “Ask us Anything” session on the /r/linux subreddit. This was an opportunity for free software and GNU/Linux fans to ask us all about the new release, and indeed anything else about LibreOffice. We had 205 comments and 312 upvotes.

But there’s more to come!

A huge thanks to our community for making LibreOffice 6.1 happen! But we’re not done yet; we’re already busy adding new features and updates to LibreOffice 6.2, which is due for release early next year – and you can help out! Whether it’s with design, marketing, documentation, coding or translations, you can get involved, join our friendly community and make a big difference to LibreOffice. Come join us!

by Mike Saunders at August 16, 2018 08:22 AM

August 15, 2018

Andreas Mantke

Python Script To Get Project State

I worked on a new Python script to get the current review state of all extension projects from the LibreOffice extensions website and write this state together with the project title and its url to a csv file.

I’ll work on a similar implementation for template projects next days.

by Andreas Mantke at August 15, 2018 07:54 PM

August 13, 2018

Andreas Mantke

LibreOffice-Non-Code-Extensions erstellen

Im Zusammenhang mit der Betreuung der LibreOffice webseite für Extensions (Erweiterungen) und Templates (Vorlagen) habe ich vor einiger Zeit angefangen, eine kleine Dokumentation für den Bau von LibreOffice Extensions zu schreiben, die keine Zusatzprogramme enthalten, sondern weitere Inhalte für das Office-Programm ausliefern. Dies können beispielsweise weitere Grafiken, Autokorrekturen oder Farbpaletten sein. Die Dokumentation ist ein Projekt “im Fluss”. D.h., ich werde weiter an ihr arbeiten und sie ergänzen. Hier nun die aktuelle Fassung der Dokumentation. Sie enthält auch Links zu Beispielen für die Struktur entsprechender Extensions.

by Andreas Mantke at August 13, 2018 06:35 PM

Official TDF Blog

Community Member Monday: Sam Tuke

Over the last few years we’ve posted many LibreOffice contributor interviews on this blog. Today, we catch up with Sam Tuke who is a member of the marketing community and helps out with QA too…

Where do you live, and are you active on IRC/social media?

I live in Berlin, Germany. Originally I’m from Suffolk, England. I like Twitter and Mastodon for community news. For my business, which makes Free Software newsletter app phpList, I use Facebook and Telegram too.

In which areas of the LibreOffice project are you active?

The marketing team, and filing occasional bugs.

How did you get involved with LibreOffice?

While in high school I started a small business building computers for local people. They needed an office suite to come with their new PCs, and was the perfect fit. I’ve been a user and advocate ever since, following my friends to LibreOffice when it was established.

Later on I became a full time Free Software developer, and after that a campaigner. From 2014 I worked on marketing LibreOffice-related products at Collabora. It was an exiting time and I had the opportunity to announce LibreOffice for Android and LibreOffice Online.

What was your initial experience of contributing to LibreOffice like?

Much like other open source apps: find and use a complicated bug tracker to report an annoying problem. But I was encouraged by quick follow up by a friendly bug triager, and since then several issues that I reported have been fixed and released. Satisfying!

What does LibreOffice need most right now?

Marketing. It’s a brilliant software suite which offers great potential value to most people alive today, particularly when you consider the mobile and web-based products. Reaching all those people who stand to benefit from LibreOffice is hard work, but it’s worth doing. Italo Vignoli and Mike Saunders have been making strides in this direction, and that’s fantastic to see.

Also: focus. With so many different kinds of users out there, LibreOffice can suffer from being too powerful for it’s own good. LibreOffice has had the benefit of contributions from a variety of usability experts and professionals. There’s plenty more to do, but recent releases, and particularly LibreOffice 6.1 include gratifying improvements from Kendy, Heiko, Andreas and others, which I’m eager to see.

What tools do you use for your work?

Markdown everywhere: Gedit, Writer, Nextcloud notes, and Pandoc to convert between them. Sometimes I also use Thorsten’s odpdown to make presentations.

Calc handles internal financial reporting at the firm, with many charts, and a few arcane formulas which LibreOffice fortunately includes. Draw is great for quick colourful diagrams like server infrastructure and organisational charts.

What do you do when you’re not working on LibreOffice?

Since finishing a Master’s degree in spring I’ve become a mentor of startups in West Africa, and had time so speak at more Free Software conferences at home and abroad. In order to keep up with new interns at work I’ve also been reading textbooks on marketing and security – perfect for long sunny evenings in the park.

Thanks Sam! Stay tuned to the blog for more interviews. In the meantime, if you’re new to the LibreOffice project and want to help us make it even better, start here!

by Mike Saunders at August 13, 2018 01:11 PM

August 12, 2018

Ekansh Jha

Google Summer of Code — Final Submission

Image result for libreoffice gsoc

For the last three months, I’ve been working with Libreoffice, an open source organisation selected for the Google Summer of Code program. Working at LibreOffice has been a great experience for me. It has been really steep learning curve this summer under Google Summer of Code. This has further enhanced my interest towards open source.

Project Motivation and Overview

SmartArt is a nice feature that allows users to quickly add charts/diagrams to presentations. LibreOffice has a partial implementation as an experimental feature, my project was to implement as many features and to correctly render the smartart. Interested folks can click here.

All GSoC related Patches

In chronological order(Some of them are under review at this point of time):

  1. Unit test for Line algorithm

2. tdf#117761 Corrected Snake Algorithm

3. Smartart: Corrected Line Algorithm

4. coverity#1436015 UNUSED_VALUE

5. Smartart : test documents

6. Unit test for Snake Algorithm

7. Unit test for Chevron Smartart and modified Unit test for Line algorithm.

8. Support txAnchorVert parameter

9. Node layout information

10. Support parTxRTLAlign parameter

11. Support ctrShpMap(Center Shape Mapping) Paramter

12. Smartart Pyramid: Support Inverted Pyramid

13. Unit test: Smartart-Chevron

14. Smartart Inverted Pyramid Unit test

15. Unit test: Smartart Pyramid

16. Composite algorithm: support parameter ar

17. Composite Algorithm: Adding constraint value support

18. Smartart Right to left Chevron

19. Unit test: SmartArt Chevron right to left

20. Smartart: Added Hierarchy Algorithm

21. Support autoTxRot parameter in Text algorithm

22. Support autotxRot

23. SmartArt Pyramid: Now lays out shapes

Future work

There is still a lot of features to implement to correctly render all the smartarts after which, creating of dialogue box to directly create smartart into the document can be done to ease users and increase the productivity.

There was so much to grasp during GSoC and I would like to thank the LibreOffice community for continuously helping and supporting me to complete the project.

Thank you Google for such an awesome summer program.

Quick Links

If you want to contribute to LibreOffice : Get involved

Summer of Code Project Page:

Ideas Page:

Week wise reports:

by Ekansh Jha at August 12, 2018 07:21 PM

Andreas Mantke

Plone On Python 3 – First Try Out

The Plone team is working on a migration of the CMS to Python 3. I read about this migration and that there are good progress. Thus I decided to try the ported version out. There is a repository with a working on Github. I checked it out from I followed the instructions in the file and it worked out. I could create a new site with Plone 5.2a1 and Python 3.6.5 (see screenshot below).

by Andreas Mantke at August 12, 2018 02:01 PM

Saurav Chirania

GSoC final report - UI logger


The idea of this GSoC project was to implement a feature which logs the interaction of users with the UI elements in an interpretable Domain Specific Language (DSL), and an interpreter which converts the log into a file into something which will help in replaying the user actions. The project involved working with the UI elements and the UI testing framework of LibreOffice.


  • The logger -

    The logging for the following is currently supported -
    1. The UI elements of Visual Component Library like Buttons, Checkboxes, Radio-buttons, Listboxes, Comboboxes, Spinbuttons, etc.
    2. Keys pressed in different UI elements
    3. UNO commands sent with parameters
    4. Selection of Objects
    5. Opening of Sidebar/Deck

    Some application-specific events can also be logged -
    1. Writer - Goto Page, Set Zoom, Text Selection
    2. Calc - Autofilter Launch, Selection of cells/range of cells, Switching of Sheet
    3. Math - Selection of elements from the element selector panel
    4. Impress - Set Zoom

    Additionally, the opening and closing of some dialogs is also logged according to the DSL.

  • The UI Testing Framework -

    We already had a framework for UI testing before the start of the project. Efforts were made to ensure that we can utilize this for the replay of actions to the greatest extent possible. The wrapper classes for a couple of VCL classes were completed. A function to execute UNO commands with parameters was also implemented.

  • The log interpreter -

    The logger logs events in the following grammar -

    <Keyword> <EventDescription> [<Parameters>]

    where EventDescription tells the ID, parent, etc. of the UIObject and Parameters are the parameters of the action user performs in a format directly readable by mkPropertyValues.
    The interpreter starts reading the log file line-by-line and tries to convert the statements into a UI test case. The code for the interpreter can be found in core/uitest/

Merged Patches

  1. uitest logger: support for buttons, dialog, command and key logging
  2. uitest logger: ListboxSelect and ListboxFocus logging
  3. WIP: uitest: complete combobox, tabcontrol wrapper
  4. uitest: interpreter for log files
  5. uitest logger: print parent when logging keys
  6. uitest logger: some changes in log statements
  7. uitest interpreter: add more features
  8. uitest interpreter: let's use argparse to parse arguments
  9. uitest interpreter: add support for starting apps
  10. uitest interpreter: handle when parent is empty string
  11. uitest interpreter: support opening existing document
  12. uitest logger: log the events calling CallEventListeners()
  13. uitest: complete wrapper for SpinField and SpinButton
  14. uitest logger: log key according to DSL inside dialogs too
  15. uitest: support parameters when sending UNO commands
  16. uitest logger: log more events
The list of all my merged patches can be found with this Gerrit search.

Using the logger

As written in the UI Test wiki, the following needs to be done to log the UI actions -

1. Launch LibreOffice like

LO_COLLECT_UIINFO="test.log" instdir/program/soffice

2. Simulate what you want to do with the mouse
3. Close LibreOffice
4. Open the resulting file in instdir/uitest/test.log

The following command can be used to convert to log to UI Test Case:

python3 <path_to_log_interpreter> <path_to_log_file> <path_to_a_new_python_file>

where <path_to_log_interpreter> should be replaced with something like SourceDirectory/core/uitest/
and <path_to_log_file> should be replaced with something like SourceDirectory/core/instdir/uitest/test.log
and <path_to_a_new_python_file> can be a location of your choice where you would like to see the generated code.

Remaining Tasks

  1. Not all UI elements and dialogs are supported by the interpreter/logger/UI testing framework. Eg. - Color selection palette in color Calc -> Format cell.
  2. Enhancement suggestion - After this commit, it will be helpful for the interpreter to locate a UI Object if the logger prints the entire parent hierarchy of the UI object instead of just printing the top window. This would help in resolving UI ID conflicts, as well as in other cases when the interpreter might not locate the object properly otherwise.

Thank You!

Thank you for giving me the opportunity to work on this project. I learned a lot from this project. I will definitely like to spend more time with LO community in future whenever I get time.

PS: The links given to the patches in the post contain a commit message to explain what the patch does. An additional effort to document the UI Test logger can be found at An overview of how UI logging works in LibreOffice.

by Saurav ( at August 12, 2018 11:57 AM

An overview of how UI logging works in LibreOffice

Logging in LibreOffice is mainly handled by a class called UITestLogger, defined here. The logger class logs the user actions only if the member flag mbValid is set to true. The flag can be turned on by setting the environment variable LO_COLLECT_UIINFO to a file name where the logs should be collected (see the constructor of UITestLogger, defined here).

We maintain a pointer to an instance of UITestLogger class here. To use the logger object, the static function getInstance can be used to get access to the pointer.

The function logAction, defined in the same class, is used to log events from the classes which extend the class vcl::Control. The log statements corresponding to a particular class can be found in the function get_action of the UI wrapper classes. Most of the wrapper classes can be found with this OpenGrok search. The log statements get generated when VCL events get broadcasted. A list of the VCL events can be found in the enum class VclEventId here.

For other classes, we have functions named collectUIInformation spread in different places of the code (This OpenGrok search might be helpful). These functions collect information about an event and store it in a struct EventDescription (defined here) and pass it to another function of UITestLogger, called logEvent. The logEvent function constructs a log string using the information provided by the given event description, and finally logs the statement using the file stream maStream.

The log interpreter (made here) can be used to convert the log file into a UI test case. It interprets the log file line-by-line and converts every line into a python dictionary. The dictionaries are then used to generate statements readable by the UI testing framework.

PS: This blog post is an effort to document (and provide code-pointers for) the UI Test logger, parts of which were developed during GSoC 2018. The final report of the GSoC project can be found at GSoC final report - UI logger.

by Saurav ( at August 12, 2018 11:53 AM

August 10, 2018

Official TDF Blog

Taming LibreOffice 6.1’s New Help System

or… the Help must help.

LibreOffice 6.1 has been released and carries a refactored and improved new Help system, based on modern browser technologies. Let’s explore what this new help brought to LibreOffice.

The main driver of the new Help is our vision that the Help must help. When we look at the old help system from the perspective of a typical user, we realize quickly that the text and layout of the help pages don’t provide the best experience. So how can we improve the experience and help our users better? The diagnostic was straightforward: the LibreOffice Help system was tied to a very limited technology, so we had to unleash LibreOffice Help.

The approach was to look at the capabilities of modern browser technologies of 2018, and compare them to the aging help system that relied on 2000’s web standards. Until LibreOffice 6.1, the local help consisted of static description text, very few images, no multimedia and almost no easy support for evolution and improvements.

We had to preserve the legacy XML Help contents, evolve smoothly and redo the Help module to benefit from the latest browser technologies. Here are some of the results of this approach:

  • We improved the page rendering, using JavaScript and Cascading Style Sheets (CSS) for a better user experience, which includes perfect display in tablets and mobile phones as well.
  • We use the navigation, zooming, and bookmarking features existing in any browser.
  • Using just one transformation for the local and online versions of the New Help, we have the same page layout for the two ways of accessing the Help.
  • We preserved the localization (l10n) process in place, meaning that the new Help changes are transparent for translators.
  • The old help module, coded in C++ and using Writer’s Web module, is no longer necessary and will be surgically discarded from the main code in the near future.

What’s new in the New Help?

Besides the benefits mentioned above, the new help is now capable of many new features.


We have enabled the possibility to include multimedia (videos and audio) in the help pages. Although this is deployed only in the online version of the new Help, multimedia is one of these resources that can turn a textual descriptions into pleasant short videos explaining the contents. Multimedia is a domain to explore and turn the Help into a richer experience, but it nevertheless requires skills for proper content production and must address our localization requirements.

Take a look of this sample multimedia and feel how it can improve user experience in our help pages:

Collateral files

Another resource we implemented, together with multimedia, is the possibility to download collateral files. A collateral file is a companion file available in the help page that contains examples of the page’s subject. For example, we have a collateral file for Calc’s pivot tables and pivot charts. The collateral file is designed to be simple and effective, and can be used as a starting point for a larger project and to exercise the concepts developed in the help page. As the reader can imagine, creating collateral files for all subjects available in the help page is a challenge, and support from the community is necessary.

JavaScript and CSS

More enhancements are now inside the help pages using JavaScript and CSS. Calc function examples and Math examples can now be copied to the clipboard and pasted into the actual document. Just click on the example content to copy it to the clipboard. A tooltip also indicates the contents to copy. In both cases, the idea is to close the gap between textual descriptions and living examples. making the help more effective.

The right usage of JS and CSS also brought us the display of our online help pages in tablets and mobile phones. At the right time in near future, a LibreOffice Online user will also benefit of the online Help improvements.

Known issues

The new Help system does not have a global search function for the local help. That is, there is no way to search for a keyword in all pages. Part of the need for search can be provided by the index search if the keyword was bookmarked in the source file. In the online version, we temporary used a known search engine to supply a customized search mechanism, and we plan to implement a more effective, controllable and effective engine.

Also, the new help system has not approached the help pages of LibreOffice extensions. This limitation will be addressed later, as time permits.

The road ahead

The current new Help is just the beginning. Let’s free our imagination and implement or improve our help resources. Along with creating more multimedia and more collateral files, creating more screenshots of dialogs in our help pages. Some new projects are in the pipeline, notably the Help editor and a new display of the icons.

Editing XML files is not a fun task, it requires knowledge of the specifics of the Help XML and developer knowledge to submit changes to our version control. To make it easy, we are working on an online XML editor to accelerate content creation for the Help, The editor will have code snippets to ease the editing work, such as – technically speaking – generation of the unique IDs of each paragraph in the current page, a very cumbersome task for the content editor.

The new Help uses the Colibre icon set developed by A. Kainz. At the moment we used the PNG file format for a quick implementation, but Colibre icons source files are in SVG format, which allows perfect resizing.

Say tuned for the release of the new help features and resources. Or give us a hand and help the documentation team today – it’s a great way to build up experience in a well-known open source project, possibly for a future career in technical writing!


Some community members played a key role in the development of the New Help. We are grateful to them, and in special to

Ilmari Lauhakangas and Adolfo Jayme Barrientos for their contributions to the styling (CSS) and javascript code for page rendering in all device form factors

Andrea Kainz for the new set of Colibre icons.

David Tardon and Stephan Bergman for their incredible work in adding the New Help in the gbuild process and packaging.

Mike Saunders for his work on the Help editor.

Jan Holesovsky for his continuous support and advise.

The Document Foundation staff members for keeping the engine running.

by Olivier Hallot at August 10, 2018 08:39 AM

August 09, 2018

Andreas Mantke

Worked Further Through Projects Review List And Fixed A String Issue

I worked to the through the review list of  the LibreOffice extensions and templates website and managed to look at the remaining projects. I sent hints to the contributors and am looking for their project site changes and updates of their release files.

I fixed some string issues inside one of the Plone add-ons that we use to drive the website. I got to this issue by an error message inside the website log. The fixes are available in the TDF Github repository yet.

by Andreas Mantke at August 09, 2018 07:54 PM

Andreas Kainz

LibO svg icon themes

If you need the breeze or colibre icon theme in svg you can download them:

As the svg images are called like the one with png search at your operation system after the zip file and replace (backup first) the png with the svg one.

by kdeonlinux at August 09, 2018 09:24 AM

August 08, 2018

LibreOffice Design Blog

What’s new in LibreOffice 6.1 regarding user experience

The LibreOffice community regularly publishes new releases, and the latest version, 6.1, is released in August 2018. The design team worked hard to make this release as shiny as it deserves; here’s what we did.

Background images

LibreOffice ships some images by default to fill the background of shapes.…

The post What’s new in LibreOffice 6.1 regarding user experience appeared first on LibreOffice Design Team.

by The LibreOffice Design Team at August 08, 2018 10:18 AM

Official TDF Blog

The Document Foundation announces LibreOffice 6.1, a major release which shows the power of a large and diverse community of contributors

Berlin, August 8, 2018 – The Document Foundation announces LibreOffice 6.1, the second major release of the LibreOffice 6 family presented in January 2018, with a significant number of new and improved features:

  • Colibre, a new icon theme for Windows based on Microsoft’s icon design guidelines, which makes the office suite visually appealing for users coming from the Microsoft environment;
  • A reworked image handling feature, which is significantly faster and smoother thanks to a new graphic manager and an improved image lifecycle, with some advantages also when loading documents in Microsoft proprietary formats;
  • The reorganization of Draw menus with the addition of a new Page menu, for better UX consistency across the different modules;
  • A major improvement for Base, only available in experimental mode: the old HSQLDB database engine has been deprecated, though still available, and the new Firebird database engine is now the default option (users are encouraged to migrate files using the migration assistant from HSQLDB to Firebird, or by exporting them to an external HSQLDB server);
  • Significant improvements in all modules of LibreOffice Online, with changes to the user interface to make it more appealing and consistent with the desktop version,
  • An improved EPUB export filter, in terms of link, table, image, font embedding and footnote support, with more options for customizing metadata;
  • Online Help pages have been enriched with text and example files to guide the users through features, and are now easier to localize.

LibreOffice 6.1’s new features have been developed by a large community of code contributors: 72% of commits are from developers employed by companies sitting in the Advisory Board like Collabora, Red Hat and CIB and by other contributors such as SIL and Pardus, and 28% are from individual volunteers.

In addition, there is a global community of individual volunteers taking care of other fundamental activities such as quality assurance, software localization, user interface design and user experience, editing of help system text and documentation, plus free software and open document standards advocacy at a local level.

A video summarizing the top new features of LibreOffice 6.1 is available on YouTube:

Enterprise deployments

LibreOffice 6.1 represents the bleeding edge in term of features for open source office suites, and as such is targeted at technology enthusiasts, early adopters and power users.

For any enterprise class deployment, TDF maintains the more mature LibreOffice 6.0, which should be sourced from a company providing a Long Term Supported version of the suite (they are all members of TDF Advisory Board, and are listed here:

Also, value-added services for migrations and trainings, to support enterprise class deployments in large organizations, should be sourced from certified professionals (list available here:

LibreOffice is deployed by large organizations in every continent. A list of some large or significant migrations announced in the media is available on the TDF wiki:

Availability of LibreOffice 6.1

LibreOffice 6.1 is immediately available from the following link: Minimum requirements for proprietary operating systems are Microsoft Windows 7 SP1 and Apple macOS 10.9. Builds of the latest LibreOffice Online source code are available as Docker images:

LibreOffice Online is fundamentally a server service, and should be installed and configured by adding cloud storage and an SSL certificate. It might be considered an enabling technology for the cloud services offered by ISPs or the private cloud of enterprises and large organizations.

LibreOffice users, free software advocates and community members can support The Document Foundation with a donation at

LibreOffice 6.1 is built with document conversion libraries from the Document Liberation Project:

Press Kit

The press kit, with background documents – Hybrid PDF, opened from within LibreOffice can be edited as normal ODT files – and high-resolution images, is here:

LibreOffice 6.1: a background on the user interface

For the last eight years, LibreOffice’s user interface guidelines have been inspired by a consistent end-user-driven and context-based approach (according to the available screen real estate, the application and the specific task), to provide the best mix between power (the level of control over features) and simplicity (the number of options available on the screen).

The Design Team at The Document Foundation has made several changes to the different icon styles for LibreOffice 6.1, to improve the visual appearance of the office suite and provide a more consistent look and feel with operating systems and desktop environments.

Colibre, a completely new icon style designed from scratch by the Austrian volunteer Andreas Kainz, is now the default on Windows. Colibre is entirely based on icon design guidelines from Microsoft, which means that the style uses the same color scheme as Microsoft Office and offers a consistent look and feel with the proprietary office suite. The design of each icon has been inspired by Breeze and Elementary.

Karasa Jaga, a new icon style originally created for Sundara OS and designed by the Indonesian volunteer Rizal Muttaqin, has also been added. Karasa Jaga, which means “feel the future” in the Sundanese language spoken in western Java, has been heavily inspired (and is derived) from the now discontinued Oxygen icon style.

Elementary is now the default icon style on Gnome-based desktop environments, while Sifr has replaced HiContrast as the default high contrast icon style.

Industrial and Oxygen have been removed because of missing maintenance and SVG support. All legacy icon styles are available as extensions.

In addition, the Notebookbar – which is still experimental – has been significantly improved and has been completed for Writer, while it is still work in progress for the other modules in the suite. The objective is to provide a solution as powerful and simple as the current default LibreOffice user interface, which is based on toolbars.

Looking forward, it looks like LibreOffice user interface – for which the source code is available on our repository at – has inspired the future evolution of some proprietary office suites, which in the last 10 years have chosen a different – and obviously obfuscated – approach.

Contributors to LibreOffice 6.1

LibreOffice 6.1 represents the global effort of a large and diverse community of enterprise-sponsored and volunteer contributors.

This is a list of the people who have contributed a new feature or an improvement to the software or the user interface, or a new localization.

Adolfo Jayme Barrientos
Andrea Gelmini
Andreas Kainz
Armin Le Grand, CIB
Ashod Nakashian, Collabora
Belkacem Mohammed
Berend Ytsma
Caolán McNamara, Red Hat
DaeHyun Sung
Dennis Francis, Collabora
Dennis Roczek
Eike Rathke, Red Hat
Furkan Tokac
Gabor Kelemen
Gülşah Köse, Pardus
Heiko Tietze
Henry Castro, Collabora
Ilmari Lauhakangas
Jan Holešovský, Collabora
Joseph S. Maza
Kohei Yoshida
László Németh,
Lera Goncharuk
Luboš Luňák, Collabora
Marco Cecchetti, Collabora
Mark Hung
Maxim Monastirsky
Merzouk Ouchenem
Michael Meeks, Collabora
Michael Stahl, CIB
Michael Wolf
Mike Kaganski, Collabora
Miklos Vajna, Collabora
Muhammet Kara, Pardus
Nabil Semɛun
Nithin Kumar Padavu
Olivier Hallot, TDF
Pranav Kant, Collabora
Rizal Muttaqin
Samuel Mehrbrodt, CIB
Serge Krot, CIB
Slimane Amiri
Sophia Schröder
Stanislav Horáček
Stephan Bergmann, Red Hat
Szymon Kłos, Collabora
Tamás Bunth, Collabora
Tomaž Vajngerl, Collabora
Tor Lillqvist, Collabora
V. Stuart Foote
Yasin Bouklif
Yazid Bouhamam
Yousuf Philips
Xisco Faulí, TDF

Of course, the release of LibreOffice 6.1 has been possible thanks to the invaluable contributions of many other people, who have donated their time for user interface design and user experience improvements, localization in over 100 different languages, quality assurance, documentation and online help, and other product related activities, including marketing and communications.

In addition, many other people have supported end users on mailing lists, online resources and social media, answering questions and providing guidance to solve any kind of issue, from a simple download query to the most sophisticated pivot table questions.

by Italo Vignoli at August 08, 2018 10:10 AM

Miklos Vajna

API improvements in LibreOffice

I worked on two small features to extend the public (UNO) API of LibreOffice. First, thanks to Vector for funding Collabora to make this possible.

Aliased paths and text in the PNG export for Draw

The UNO API of Draw allows you to build quite complex and custom shapes, but you may want to export the rendered result to a bitmap for testing purposes, so you can assert that the actual result matches a reference one.

One problem in this area is anti-aliasing, which can easily differ between machines. Given that normally aliased rendering is ugly, there is now a way to enable AA, but disable it just during a single invocation of the PNG exporter.

The above picture shows how the AA result looks like. You could write a Basic macro like this to trigger the PNG export from Draw:

xExporter = createUnoService("")
Dim aArgs(1) As new
aArgs(0).Name  = "URL"
aArgs(0).Value = "file:///tmp/debug/aa.png"
aArgs(1).Name  = "MediaType"
aArgs(1).Value = "image/png"

Let’s see how it looks like if you turn AA off:

You just need to specify a new Antialiasing key under FilterData:

Dim aFilterData(0) As new
aFilterData(0).Name = "AntiAliasing"
aFilterData(0).Value = False
xExporter = createUnoService("")
Dim aArgs(2) As new
aArgs(0).Name  = "URL"
aArgs(0).Value = "file:///tmp/debug/non-aa.png"
aArgs(1).Name  = "FilterData"
aArgs(1).Value = aFilterData()
aArgs(2).Name  = "MediaType"
aArgs(2).Value = "image/png"

You can imagine which rendering result is easier to debug when the reference and the actual bitmap doesn’t match. ;-)

This feature is available for other bitmap formats as well, PNG is only an example.

Default character style in Writer

In most cases you don’t really need a default character style: if you’re fine with a default, then the default paragraph style should be enough for your needs. In general, paragraph styles can contain character properties, so if the default is fine for you, you just don’t set a character style.

However, there is an exception to all rules. If you want to reset the current character style, it makes sense to just set the CharStyleName property to a default value, especially since this works with paragraph styles already.

Now you can write C++ code like this (see SwUnoWriter::testDefaultCharStyle() for a full example):

xCursorProps->setPropertyValue("CharStyleName", uno::makeAny(OUString("Standard")));

And it’ll be handled as Default Style in English builds, or their localized versions in a non-English UI.

All this is available in master (towards LibreOffice 6.2), or you can grab a daily build and try it out right now. :-)

August 08, 2018 07:10 AM

August 07, 2018

Olivier Hallot

When nothing else works...

Few things in life makes me unhappy than a unoptimal or broken system. When my machine does not work at its best I start to suffer itches and bad mood.

Like many other nerds, I can't avoid to update my laptop operating system with the latest developments. No exceptions with Kubuntu 18.04, where I innocently thought it will fix some nasty bugs of 17.10 I was enduring, notably, a very slow desktop login. I took the radical approach, let's format the root partition and install from scratch.

All backups done, machine reinstalled and bingo! now I can't get a second user session, without disconnecting the first. To put in perspective, what is an operating system, especially linux, that can't get more than one user session active at the time?

As usual, Google here, Google there, countless web pages of irrelevant content... and nothing. Greping the syslog, and the culprit was sddm, the login service of Kubuntu. On Github, a report on the issue, but no further indication that the bug will be fixed someday.

Then a hint on the bug report, and it was related to the dual hybrid graphics architecture of the laptop. In my case, I have an Intel and a Radeon dual graphic laptop. The suggestion was to disable the Radeon chip and work only with the Intel, which is no big deal for me. I was happy to finally fix it.

Too easy huh? Not at all. The laptop began to warm too much, even with no CPU load. It was uncomfortable even to rest the hand on the keyboard.

Another set of Google searches and a page in Ubuntu on hybrid graphics. Joining the two solutions, I enabled back the radeon driver, and enabled the switch to let the kernel manage the second graphic chip, so sddm know about it, even if I don't use it.

Second session working, and laptop in normal temperature.

by Olivier Hallot ( at August 07, 2018 04:17 PM

Collabora Community

Improving PowerPoint Interoperability

Product vs. Professional services

One of the great things about our product relationships with our customers and partners is that they allow us to invest in improving specified areas. We provide products that allow our customers to file individual bug fixes, and get an SLA (Service-level Agreement) to have an engineer start work on a problem; but while this focuses our work rapidly on exactly what a customer wants improving and delivering a fix to them fast – it can give a somewhat piece-meal result. Product customers, in contrast, allow us to tackle larger areas that they’ve experienced problems in.

In our recent release (Collabora Office 6.0 and also back-ported to Collabora Office 5.3, and in the forthcoming community LibreOffice 6.1 release) we have had a chance to invest in significantly improving our OpenXML PowerPoint (PPTX) interoperability.

What got better?

In the past, occasionally when we saved a file in PPTX format, Microsoft Office warned of problems with the document on load. We investigated why that was happening and it turned out that LibreOffice was missing PPTX export code for many important features – like the export of group shapes (all shapes were exported without grouping), export of embedded videos, and preservation of customXML on export. We implemented all of these.

Another huge missing hole was handling of PPTM files (PPTX with macros), including preservation of the VBA stream on export – now Collabora Office and LibreOffice 6.1 can do it too.

We also had a chance to fix a number of other important issues around animations (which are hard to see), like the implementation of animation type Command, Motion or Spin.

Finally, the most important were several document layout pieces. For example, when the original document looked like this:

After roundtrip (opening and saving) in LibreOffice 5.4.0 it turned into this one:

Luckily now, with the layout problems fixed, the original document roundtrips without issues:

Why not try it out?

In common with all other implementations trying to inter-operate with Microsoft, there are corner-cases where interoperability still needs improvement – but it is encouraging to see the significant reduction in easy annoyances here, and the results of improved rendering.

Download Trial version of Collabora Office 6.0!

The post Improving PowerPoint Interoperability appeared first on Collabora Productivity.

by Jona Azizaj at August 07, 2018 08:49 AM

August 06, 2018

Official TDF Blog

LibreOffice 6.0 Writer Guide

LibreOffice Documentation Team has just released the LibreOffice 6.0 Writer Guide, with a general Introduction to LibreOffice Writer followed by the following chapters: Working with Text (basics), Working with Text (advanced), Formatting Text, Formatting Pages (basics), Formatting Pages (advanced), Print Export Email, Introduction to Styles, Working with Styles, Templates, Images & Graphics, Lists, Tables of Data, Mail Merge, TOCs Indexes Biblios, Master Documents, Fields, Forms, Spreadsheets Charts Objects, Setting Up Writer and Customizing Writer, for a total of 448 pages.

LibreOffice 6.0 Writer Guide is available from TDF Wiki as ODT and PDF, both the complete book and individual chapters, and from ODF Authors as ODT of individual chapters.

LibreOffice 6.0 Writer Guide is also available as a printed book from Lulu, by Friends of Open Document Inc., an Australia-based volunteer organisation with members around the world which will be using profits from the sale to benefit the LibreOffice community.

by Italo Vignoli at August 06, 2018 10:27 AM

August 05, 2018

Andreas Kainz

2018 week 29 LibreOffice log

After huge work was done in the last weeks, this week I need spare time for my family and myself.


In addition I can’t wait for LibreOffice 6.1. I hope our users like it. The design related stuff was done just in time (thanks cloph) so I can’t be more excited.

If you’d like to be part of the story become a Patreondownloads_wordmark_white_on_coral2x.jpg

by kdeonlinux at August 05, 2018 09:36 AM

August 04, 2018

Beast 0.12.0-beta.1

Long time no see. It’s been a while since the last Beast release, mainly because we have a lot of code migrations going on, some of which caused severe regressions. Here are the tarball and Debian package:‌

August 04, 2018 02:05 PM

July 30, 2018

Saurav Chirania

GSoC work report - Week 11

This week, I first completed the patch -
This adds a new function to call UNO commands with parameters in the UI tests.

Then, I completed the patch -
This involved adding logging for the opening of sidebar/deck in the LO apps, changing the log for object selection and UNO commands to make them interpretable, and removing the function logObjectSelection to merge it in the logEvent function.

Now, I am working on improving the log interpreter -
This fixes a crash on certain inputs and adds support for interpreting UNO command parameters, along with some other minor changes.

by Saurav ( at July 30, 2018 03:53 PM

July 26, 2018

Michael Meeks

2018-07-26 Thursday.

  • Mail chew, strained away at JQuery with George - eventually finding that we need a tabindex to make something focus-able; interesting - progress at least.
  • Partner call, sales call, assembled a screen stand with George - hopefully gives one better posture; lets see. Still far too hot.

July 26, 2018 09:00 PM

July 25, 2018

Michael Meeks

2018-07-25 Wednesday.

  • Mail, admin. Talked through researching data and writing logs with George; poked at some JQuery-ness. Bruce & Anne, S,C,A&J over - out to Prezzo for a lovely birthday lunch.
  • Back, more hacking, code review; ESC call, sync with Dennis, dinner. Very hot ...

July 25, 2018 09:00 PM

Tamás Bunth

Database migration in LibreOffice: bug fixes and more

In my 4th blog post about database migration I’ll explain most of the bugs or missing features which were discovered after publishing the migration work, and the solution for them. After that I’ll show some opportunities for further improvement. My previous post can be found here.

One of the most critical missing chunk was the migration of views and relationships. For that I had to improve the SQL parser to interpret statements like “create view..”. Some of the View definitions are still not working at the time of writing this post. The reason of this is that there are a bunch of database specific functions and keywords, like “concat” or “weekday”, which have to be handled specially for each database. For example Firebird’s dialect uses two vertical lines “||” instead of “concat”.

After that I fixed some bugs related to the migration of specific types, and I added a few types which I generously forgot to implement before. That’s how I fixed the migration of numeric and time/date columns. I also added the “REAL” type, which is something like “FLOAT”. In some databases REAL can store floating-point number of 4 bytes, while FLOAT is somewhat bigger. In case of a HyperSQL database, REAL, FLOAT and DOUBLE should be all mapped to the C++ double

There were also some general bugs which I can’t classify to a category, but they are still interesting. One of my favorite bug was that the parser had not been able to parse multi-column primary keys. The “create table” statements had specified the primary key right after the column definition. The solution was a more general approach, where the primary key is defined after all the column definitions. Another bug which was fun to fix was the migration of default values for columns, which was entirely missing. For that I had to improve the parser to interpret the “DEFAULT ” part of the SQL statement.

And now I’d like to explain what could be done to make the whole migration library work better. There is an SQL parser implemented in LibreOffice called SQLParser in module connectivity. I decided not to use this parser in the migration library, because I had problems with it.

This SQL parser can parse the statements in a tree structure. Each element of a node can be reached by the method “getChild(int idx)”, where idx is the index of the element. The problem with this approach is that you can find method-calls all over the code with magic numbers. For example if you’d like to get the referenced column name of a node representing a foreign key definition, you may call getChild(7). The real pain comes when you realise that you want to modify the tree structure, because a DBMS figured out a new keyword somewhere in the middle. Then all the magic numbers after that node have to be incremented. Instead of this, a wrapper should be created around SQLParser, which translates the index to an associative name. This task could take a while.

With the above modification of SQLParser the parser could be improved and could be used to parse HSQLDB statements and compose other dialect’s statements. That would be a more general and maintainable solution.

by Bunth Tamás at July 25, 2018 12:58 PM

July 24, 2018

Michael Meeks

2018-07-24 Tuesday.

  • Freed up J's laptop, and got G. working with a Mac + remote-X. I am still astounded that you can go for this amazing UX decision of having a minimalist single button on the mouse - while simultaneously infesting the keyboard with an additional 'Mac' modifier in addition to Ctrl and Alt - making a foul confusion of keybindings cross-platform, and having no obvious # key either.
  • Got G's first commits pushed.

July 24, 2018 09:00 PM

>Marius Popa Adrian

Firebird has now automatic Windows builds with AppVeyor

Firebird has now AppVeyor CI builds, like we have them with travis, but appveyor is for Windows related compilers (Visual Studio)

by Adrian Marius Popa ( at July 24, 2018 10:43 AM

July 23, 2018

Michael Meeks

2018-07-23 Monday.

  • Mail chew, bid a sad au-revoir to Gerd's team. George arrived in the morning - moved some hardware around to make a space for him, and got him going on some tasks. Encouraging to see his C++ & JS progress in a day.
  • Product team meeting; some code reading; customer call.

July 23, 2018 09:00 PM

Saurav Chirania

GSoC work report - Week 10

I first worked on adding logs for more events. The selection of symbols from "element_selector" in the math app now gets logged. Also, the selection of objects now gets logged in the writer, calc and impress. The patch is here -
I also worked on changing from multiple functions for logging to one generic function logEvent in the same patch.

Additionally, I also did some work for adding support of sending parameters in executeCommand function of the UI testing framework. The progress can be seen here -

by Saurav ( at July 23, 2018 03:49 PM

Ekansh Jha

GSoC’18: SmartArt Week 10

This week I focused on supporting inverted pyramid and implementing it’s unit test with unit test of smartart chevron which supports on line algorithm.

Smartart Pyramid: Support Inverted Pyramid

I’ve worked to implement the support such that when powerpoint presentation imported from MS PPT 2007 it shows the inverted pyramid. If you want to test it you can go to libreoffice/sd/qa/unit/data/pptx and open smartart-invertedPyramid.pptx on libreoffice impress.

Inverted Pyramid after implementation.

There are some parameters which needs to be supported and they can be done in followup patches.

Smartart Inverted Pyramid Unit test

This unit test is regarding the inverted pyramid which tests the parameters and appearance for example it’s rotation and text etc.

Unit test: Smartart-Chevron

This Unit test is regarding the smartart which relates to line algorithm but it was not implemented until now, it’ll test the linearity when spreading the children by asserting the number of shapes, Y position and text inside the shapes.

by Ekansh Jha at July 23, 2018 02:53 PM

>Marius Popa Adrian

Firebird 4.0: Time zone feature documentation

Via Firebird-devel : Here is the first README version for the time zone feature in Firebird 4.0

by Adrian Marius Popa ( at July 23, 2018 01:59 PM

LibreOffice QA Blog

LibreOffice 6.1 RC2 ready for testing

Hello Testers,

The LibreOffice Quality Assurance ( QA ) Team is happy to announce the creation of this blog in order to give more visibility to what the team is doing.

In this first post we will talk about LibreOffice 6.1 Release Candidate 2 ( RC2 ), which was released just a few days ago.

As you might know, LibreOffice 6.1 will be released as final in mid August, 2018, and the Release Candidate 2 is just one release away from the final release, being the Release Candidate 3 ( RC3 ) the last one.

LibreOffice 6.1 RC2 has been released just 2 weeks after the first release candidate ( RC1 ), and 84 bugs have been fixed in this version compared to the previous one.

It can be downloaded from this page, and it’s available for Linux, MacOS and Windows. NOTE: it will replace your actual installation.

In case you find any problem with this release, please report it to Bugzilla ( You just need a legit email account in order to create a new Bugzilla account in case you haven’t done it yet. ).

For help, you can contact us directly in our IRC channel.

Thank you all for making Libreoffice rock!

The post LibreOffice 6.1 RC2 ready for testing appeared first on LibreOffice QA Blog.

by x1sc0 at July 23, 2018 11:25 AM

July 22, 2018

Michael Meeks

2018-07-22 Sunday.

  • Up early; H's birthday - croissants & presents at breakfast. Out to All Saints for an early communion - then off into Cambridge together. Enjoyed wandering the town, looking at the architecture.
  • Picnic on Jesus green, played in the play-ground. Punting action together along the mayhem of the Cam - punted alongside a few daughters happily.
  • Home for some Vive goodness, and a buffet tea; bed lateish.

July 22, 2018 09:00 PM

July 16, 2018

Saurav Chirania

GSoC work report - Week 9

At first, I worked on the keylogging issue. Key presses are now logged according to DSL inside the dialogs too (in ComboBoxes and SpinFields). The patch is here -

Then I worked on logging more events ( These are the events which this patch logs -
  • Writer
    • Goto Page
    • Set Zoom
  • Calc
    • Launch Autofilter
    • Select Cell/Range/Table
  • Impress
    • Set Zoom
In addition to this, I realized that we might also need to log the arguments sent with a UNO command, in addition to the UNO command itself. The patch has also done some work in that direction.

by Saurav ( at July 16, 2018 01:50 PM

July 15, 2018

Andreas Kainz

2018 week 27 LibreOffice log


Week 27 start with the hard string freeze for 6.1 So I was a bit hurry to submit the last patches for Notebookbar implementations to get everything translated. Thanks to Cloph I get everything into 6.1. After that the second part was the Notebookbar codebase changes made from GSOC student Kshitij Pathania and his mentor Szymon KĹ‚os. I don’t know how but everything was backported to 6.1 and so our experimental users can test the different Notebookbar implementations so that we hopefully get an awesome NB release with 6.2. Bugfixing was no on top of the todo list.

Icon Themes

Colibre icons get full support for 32px icon size so you can change in Options -> View -> Toolbar icon size -> Extra Large. General Colibre icon size bugfixing was always in focus to get an awesome initial Colibre icon theme release.


Elementary icon theme is now default on all GTK platforms so they get some updates to get ready for the 6.1 release.

Breeze icons get also some updated icons for a wonderful 6.1 release.

Tango icons was default on Windows and GTK platforms in 6.0 but in 6.1 it want be default any more. There are some reason first is the lack of maintainer. As galaxy icons were dropped from the core LibreOffice repository (available via the extension webpage) tango icons need some tweaks to get ready for 6.1 without galaxy.

In general Colibre, Breeze and Elementary should be ready for 6.1 and the new icons needed for the different Notebookbar implementations. Some minor work has to be done next week.


I love the LibreOffice menubar and Jay did a great work in the last releases but the layout of the different LibreOffice apps were not 100% consistent so I submit some patches to get a better synchronization between the different apps.


For the full list of changes check the gerrit history log I’m talking about 30 patches. In the next weeks I’ll work on the different icon themes I’m the maintainer and submit missing icons to Colibre, Breeze and Elementary icon theme to get a gread 6.1 release.

If you’d like to be part of the story become a Patreondownloads_wordmark_white_on_coral2x.jpg

by kdeonlinux at July 15, 2018 10:10 PM

Ekansh Jha

GSoC’18: SmartArt Week 9

This week I’ve submitted some patches which relates to unit testing, laying out of shapes, and supporting some parameter.

Support ctrShpMap(Center Shape Mapping) Parameter

It relates to the cycle algorithm. A value of none specifies to place nodes around a circle. A value of fNode specifies to place the first node in the center and the remaining nodes around the circle with default is none. In simple language it specifies where to place nodes in relation to the center circle.

Support parTxRTLAlign(Parent Text Right to Left Align) parameter

If the graphic is used with language settings that display text from right to left(like Hebrew), the text should align to the right. There are two parent text(LTR and RTL) alignment parameters that determine the value to use according to system settings. So for that graphic, we should also include parTxRTLAlign (parent text right-to-left align) with default is center.

SmartArt Pyramid

This algorithm was initially not implemented, because of that it was not able to show shapes which relates to pyramid, but with this patch, It rendered correctly except some minor adjustment values issues which can be fixed in the upcoming patches.

Pyramid before the implementation
Pyramid after the implementation

Node layout information

Added two cases in switch statement:

AnimLvl: This variable is used to indicate the animate by level string which is displayed to a user in the user interface. When animLvl is set to ctr. This is being defined in a radial type diagram which allows the user to specify that animation is to start at the center of the diagram.

AnimOne: This variable is used to indicate the string to use for one-by-one animation in the user interface. This is used primarily when defining hierarchical diagrams to specify different ways animations applies to different levels of the diagram.

Unit test: Smartart Pyramid

Added unit testing for Pyramid which tests the Y-position, text in shape and height of the child. But a error is creating problem for building it, tried rebase but it didn’t work, would be awesome if anyone can point to the cause of that error.

by Ekansh Jha at July 15, 2018 06:17 AM

July 09, 2018

Ekansh Jha

GSoC’18: SmartArt Week 8

I’ve added the support to text anchor vertical parameter in text algorithm which specifies the y-axis anchoring of the text area in a shape according to: t(top), mid(middle, default), b(bottom).

If the text is text is a bulleted list, it should be left aligned and top aligned. For the first level of text within a shape, the default is to center the text vertically and horizontally, so these behaviors are changed using the parameters parTxLTRAlign (parent text LTR align) and txAnchorVert (text anchor vertical), setting them to l (left) and t (top), respectively. I’ve submitted the patch regarding this.

I’m trying to support more features which will improve the algorithms.

by Ekansh Jha at July 09, 2018 11:30 AM

July 05, 2018

Miklos Vajna

Improved ECDSA handling in LibreOffice

I wrote about ECDSA handling in LibreOffice last year, back then the target was to be able to verify signatures using the ECDSA algorithm on Linux.

Lots of things happened since then, this post is meant to summarize those improvements. My personal motivation is that Hungarian eID cards come with a gov-trusted ECDSA (x509) cert, so handling those in LibreOffice would be nice. My goals were:

  • platforms: handling Windows as well, not only Linux/macOS

  • operations: handling signing as well, not only verification

  • formats: cover all of ODF, OOXML and PDF

Let’s see what has happened:

  • Linux, ODF, sign: we had hardcoded RSA algorithm when generating a signature, now we infer the sign algorithm from the signing cert algorithm (commit)

  • Linux, OOXML, sign: same problem with hardcoded RSA (commit)

  • Windows, PDF, sign: the certificate chooser had to be ported to from CryptoAPI to CNG (commit)

  • Windows, ODF, verify / sign: this was the largest problem, this required a whole new libxmlsec backend (interface, implementation, all in C90) and also required conditionally using that new backend in LibreOffice (commit)

  • Windows, OOXML, sign: this was almost functional, except that the UI recently regressed, now fixed (commit)

  • Finally now that everything is ported on Windows to use CNG, I could enable it by default yesterday.

I could test hardware-based signing after this, which was fine out of the box on both platforms. Some screenshots:

  • Linux:
  • Windows:

(There is no reason why this would not work on macOS, but I did not test that.)

Thanks Gabor Kelemen who helped me to get a sane card reader that has reasonable driver support on Linux.

All this is available in master (towards LibreOffice 6.2), or you can grab a daily build and try it out right now. :-)

July 05, 2018 07:08 AM

July 04, 2018

Testbit is going static

This is the first post that is published through Iris, the static website generator used by Testbit. Over the years I fine tuned and tweaked my editing and revisioning tools like probably all programmers/writers do and needed a way to apply this to the web. First Steps I’ve always felt at odds with‌

July 04, 2018 12:45 PM

July 03, 2018

Dennis Francis

Multivariate Regression in Calc

Recently I added the support for doing multivariate regression in LibreOffice Calc via its regression tool along with other related improvements. Now the regression analysis output includes a lot more statistical measures including confidence interval for all estimated parameters.

The improved regression tool in Calc can be accessed via Data > Statistics > Regression
Here is a screenshot of the regression dialog box showing the new features highlighted with red boxes.


Lets go through each of these new features –

A.  Now you can enter a single range that contains multiple X variable observations (along columns or rows). In this example the data-set contains three X variables namely My_X1, My_X2 and My_X3 and the dependent variable My_Y. To do a regression on this data, enter the range A1:C11 to the “Independent variable(s) (X) range” box and the range D1:D11 to the “Dependent variable (Y) range” box as shown above in the figure. With this data we want to estimate the slopes and intercept of a linear function relating the Y and X variables given by :-

My_Y  =  Slope_1 * My_X1   +   Slope_2 * My_X2   +   Slope_3 * My_X3    +    Intercept

B.  The user can now let the regression tool know that the data ranges for X and Y have text labels (or variable names) in them.

C.  In earlier versions, the regression tool only computed the slope and intercepts, so there was no way of knowing how uncertain these numbers are. Now the users can specify confidence level as a percentage and the tool will compute the corresponding confidence intervals for each of the estimates (namely the slopes and intercept).

D.  Finally now there is a way to opt out of computing the residuals for all observations. This is beneficial to someone who is only interested in the slopes and intercept estimates and their statistics.

Following screenshot shows the output of the regression tool.


So, for our toy dataset the estimates for Slope_1 = 0.0075 (Cell B42), Slope_2 = 0.0343 (Cell B43), Slope_3 = 1.0663 (Cell B44) and the Intercept = 101.4513 (Cell B41). The 95% confidence interval for these estimates are in the columns F and G. For example Intercept’s 95% confidence interval is [98.6231, 104.2795].

Note that the above is the result of a linear regression. We can do logarithmic and power regression with multiple X variables as well in the same way.

These new features can be seen in the current development build of LibreOffice Calc and will be available in the 6.2 release. The source code patch for these features can be seen at

I would like to thank Collabora Productivity for their continuous support and encouragement to work on this feature.

by Dennis Francis at July 03, 2018 10:19 AM