The Document Foundation Planet


August 25, 2016

Official TDF Blog

LibreOffice Conference Schedule

LibreOffice ConferenceLibreOffice Conference Schedule has been published on the conference website, at the following address:

Organizers are still finalizing the schedule of the business session on Friday morning, which will be held in Czech and English.


by Italo Vignoli at August 25, 2016 07:18 AM

August 24, 2016

Official TDF Blog

LibreOffice contributor interview: Franklin Weng

It’s been over a month since our last contributor interview, as we’ve been busy with the release of LibreOffice 5.2, but now we’re back – and this time we’re talking to Franklin Weng, who is active within the marketing and migration teams.

Franklin Weng, LibreOffice contributor

What is your IRC nickname / nationality / location / family status?

  • Nickname (not only on IRC): Franklin / Goodhorse
  • Nationality: Taiwan (ROC)
  • Location: Taiwan
  • Family details: Married and have have two sons

Do you work for a LibreOffice-related company or just contribute in your spare time?

Two years ago I contributed in my spare time. Now I own a company providing consultancy, training and solutions with free and open source software (FOSS).

How did you get involved with LibreOffice?

Daily use of the software, and I had contributed some translations for the application and wiki as well. Then get I got more deeply involved when the government of Yi-Lan county and our National Development Council decided to migrate to the Open Document Format and LibreOffice starting in 2015.

What areas of the project do you normally work on?

Promotion, migration and training. I also cooperate with the localization (L10N) community in Taiwan.

What was your initial experience of contributing to LibreOffice like?

Well, I’ve been involved in free and open source software for more than 20 years, so it’s quite normal to me 🙂 Still, I’m quite happy to see the migration to LibreOffice in Yi-Lan succeed, and some departments in our central government and several county or city governments starting to go with us too.

Which is your preferred text editor? And why?

I edit plain text and write code with Vim (no, I don’t use an IDE). The reason? It should be because I’ve been been in love with Vim for more than 20 years. For office text files, LibreOffice Writer is my first choice of course. Sometimes I use LyX or LaTeX too.

What do you do when you’re not working on LibreOffice? Any other hobbies you have?

I work on other open source projects. Okay, and I also spend quite some time with my family and my boys. And I like baseball too.

Thanks Franklin! Your efforts are very much appreciated. And to other potential contributors reading this: there are many ways to get involved with LibreOffice, from documentation and programming to translations and marketing. Join our community, gain valuable experience, and help to spread FOSS and open standards!

by Mike Saunders at August 24, 2016 11:47 AM

August 21, 2016

>Akshay Deep

GSoC with LibreOffice: Work Product

Google Summer of Code 2016 is coming to an end. It was an awesome experience and I got to learn something new every time I switched my linux on. I was assigned a project before the start of GSoC with my mentors, Samuel Mehrbrodt and Yousuf Philips, but I managed to complete two projects in the given time frame.Here is the link to my GSoC Introduction blog. This blog post provides an overview of the projects I’ve contributed to LibreOffice during GSoC and it’s significance in the professional working environment.

List of latest Commits

Total commits count: 61 patches in master and 31 backport commits to LibreOffice 5.2.

LibreOffice gave me commit access soon after the GSoC coding period started. I also committed few patches of other developers.

I will now continue with an overview of my projects.

Project 1: Redesigning the Template Manager [Blog]

The above link provides description of all the functionalities which are there in the new design. The dialog has gone through a major rework solving the defects which were surfacing in the previous template manager for ex: visible empty folders.

Initial Commit:  New Template Manager

After the initial commit, I continued with my work and a series of major and minor commits were made to implement the functionalities. The commits can be found in the commit lists provided above. I’ll mention three of the important ones here.

After this project was completed, me and my mentors decided to take another project. It was Samuel’s idea to create an emoji toolbar control and we discussed the development process in detail.

Project 2: Emoji Toolbar Control [Blog]

The above blog contains all the information about the emoji control.

Initial Commit:  GSoC Emoji Control

Adding Noto Emoji font to LO installation:

Miscellaneous Tasks

and so on..

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

Thank you Google for such an awesome summer program. 👌

by akkidevblog at August 21, 2016 05:56 PM

Andreas Mantke

FrOSCon-Update For The TDF.templateuploadcenter

During the FrOSCon I worked on an update for the Plone add-on that will drive the New LibreOffice templates website. This update contains some aditional validations. I released it weithin the ‚Cheeseshop‘ today. The new version will be available on the testsite for the new LibreOffice extensions and templates repository within the next run of buildout.

by andreasma at August 21, 2016 03:06 PM

>Susobhan Ghosh

GSoC Final Report

As Google Summer of Code 2016 draws to a close, I’d like to summarize my work for LibreOffice on the project - ‘Review of Sidebar and it’s functionality’. I had an awesome experience working with the LibreOffice community, under the mentorship of two amazing people - Katarina Behrens and Yousuf Philips.

This post aims at linking and listing out all the feature milestones developed during my project and the relevant commits, along with the goals missed and work to be done in the future.

Milestones Achieved

  1. Writer Page Deck - You can read the enhancement report here and the blog post describing the feature here.


  2. Slide/Page Properties Panel for Draw and Impress - You can read the enhancement report here and the blog post describing the features here.


  3. Shapes Deck - Default Shapes Panel for Draw - You can read the enhancement report here and the blog post describing the features here.


  4. Media Playback Panel - You can read the enhancement report here and the blog post describing the features here.


  5. Import Bitmap functionality in Area Content Panel - You can read the enhancement report here.


  6. Styles Preview Checkboxfor Styles & Formatting sidebar - You can read the enhancement report here.


  7. Miscellaneous Commits

Milestones Missed

  1. More Shapes Panel for Shapes Deck - You can read the detailed enhancement report here. This is a work in progress, and I was stuck at how to load the categories of shapes into LibreOffice, folder wise, similar to the Gallery. The draft of the work done can be found here (please mail/ping if you cannot access the patch).

    At the end, I have been focusing more on QA tasks to improve the quality of my existing contributions, instead of developing new panels and functionalities like Documents-level measurement (tdf#98453), Grid & Guidelines Panel(tdf#98820), Find & Replace Panel etc.

You may find all my gerrit patches here in one go, and most of my merged commits here too.

Overall, a summer well spent. I’ll be contributing to LibreOffice even after the completion of GSoC, aiming to fix the rest of the Sidebar issues. Happy Hacking!

August 21, 2016 12:00 AM

August 20, 2016

Andreas Mantke

New Release Of The Extensionuploadcenter

I worked in some more validators inside the TDF.extensionuploadcenter during the last days. I published a new release of this Plone add-on today. It will be used inside the test-website for the new LibreOffice extension Website during the next days.

by andreasma at August 20, 2016 03:22 PM

>Susobhan Ghosh

Media Playback Panel

If you’ve ever complained about the media playback toolbar taking up your precious screen space at the bottom, this one’s for you! The upcoming LibreOffice 5.3 will host the new Media Playback Panel in the Properties Deck.

The controls mainly draw inspiration from the ones in the Media toolbar at the bottom, and I’ll be describing the same in this post. This is a contextual panel, only showing up when a media item is selected.

The entire enhancement report can be found here. I myself have been working on this, with the help of my mentors - bubli (Katarina Behrens), and jay (Yousuf Philips).


  • The Playback Toolbox housing 4 buttons to control media state:
    • Play: Play Media
    • Pause: Pause Media
    • Stop: Stop the playing Media (default selected when Media is not playing)
    • Loop: Sets the media playback on repeat
  • Seek slider: Slider to seek Media item at a particular time.
  • Time Status Box: Displays the elapsed and total time of currently playing and selected Media item.
  • Volume Slider: Slider to increase or decrease volume of Media item according to need.
  • Mute button: One click button or unmute selected Media item.

August 20, 2016 12:00 AM

Shapes Deck: Default Shapes Panel for Draw

One of the major improvements to Draw in the upcoming LibreOffice 5.3 is the introduction of the Shapes Deck. The Shapes Deck was envisioned to house two panels - Default Shapes Panel and More Shapes Panel. This post aims to describe the functionality of the Default Shapes Panel.

The entire enhancement report can be found here. The design session for the Shapes Deck can be found here. I myself have been working on this, with the help of my mentors - bubli (Katarina Behrens), and jay (Yousuf Philips).

The Default Shapes Panel is basically a catalog of all the shapes present in the shapes toolbar of Draw. It hosts 153 shapes spread out over 10 categories, namely:

  • Lines & Arrows
  • Curve
  • Connectors
  • Basic Shapes
  • Symbols
  • Block Arrows
  • Flowchart
  • Callouts
  • Stars
  • 3D Objects

The panel has been made scrollable to save space for the upcoming More Shapes Panel, which will be implemented right below it.

That’s all folks!

August 20, 2016 12:00 AM

August 19, 2016

>Akshay Deep

Emoji Toolbar Control 😎

Someone has rightly said, Emojis are the color of life 🎂. It’s use in text based softwares and editors are properly justified. LibreOffice was lacking this cool feature 😐. Me and my mentors, Samuel Mehrbrodt and Yousuf Philips, decided to work on Emoji integration in LibreOffice as part of my GSoC contributions.We planned to create a working control with proper emoji font support by the end of summer of code. This post provides an overview of the work done. The entire description of the idea can be found here Discussion on Emoji Integration.

User Interface

  • Control to be available in Writer, Impress and Draw, accessible via Standard Bar.
  • No UI idea proposed throughout the discussion. Hence, I was free to use any sort of widgets to facilitate the purpose.
  • Use of tabs to filter emojis based on categories
  • Emojis should appear as a grid
  • Easy insertion, unlike special character control which uses a modal dialog as of version 5.2
  • Font support (Removal of tofu char 🤓 )
  • Functionality should be present as a toolbar control, primarily in Standard bar
  • Proposed search filter (Only after the emoji details are translated and made locale-dependent)

 Backend, JSON Database and Font Support

  • Populate the control by parsing a JSON file which contains the data of all the emoji glyphs
  • Support most of the unicode glyph by packaging a emoji-specific font ‘Noto Emoji‘ by Google
  • Insert the unicode glyph to the editing pad formatted by the Noto font
  • Orcus JSON Parser to parse the json data file
  • Glade for UI designing and custom widget integration
  • Creation of custom widget to render font glyphs as a grid
  • Facilitate glyph insertion using InsertSymbol uno command.

Emoji Toolbar Control

After some pre-planned development and tricky debugging, I finally managed to get the toolbar control working. The beta version of toolbar control was merged and is ready to use, thanks to the help and guidance I got from my mentor and LO developers. Patch: GSoC Emoji Control: patch which makes all the above changes to LO.


Emoji Toolbar Control

Emojis gets inserted into the pad on clicking the respective emoji.


One should remember that unlike svg or png emoji, these emoji are glyphs of a particular unicode sequence. They hold all the properties of normal texts. Their colour and size can be changed just like any other character glyph.


The enhancement still needs some love to become bug free. The emoji control is hidden in the standard bar by default. It can be activated by right-clicking on the standard bar and going to Visible Buttons > Emoji Control. Another way to do so is by using the Customize dialog. Go to Tools > Customize and navigate as shown in the picture below.


Activate Emoji control from customize dialog

The foundation for this enhancement has been built now. Further improvements have been proposed like:

  • Filtering of unsupported glyphs
  • Removal of duplicate glyphs (multicolor emoji are treated as duplicate glyph) as multicolor glyphs are not supported by any font
  • support for svg emoji, etc.

Cheers 🍻

by akkidevblog at August 19, 2016 11:25 AM

Official TDF Blog

The Document Foundation Bookshop on Lulu

We have opened a bookshop on Lulu, where people can buy a printed copy of TDF Annual Report 2015.

Vetrina di The Document Foundation

by Italo Vignoli at August 19, 2016 08:05 AM

August 18, 2016

>Susobhan Ghosh

Page Deck for Writer

One of the major improvements, in the upcoming LibreOffice 5.3 (scheduled to release on January 30, 2017), is the Page Deck for Writer. The deck hosts four panels - Page Format Panel, Page Style Panel, Page Header Panel, and the Page Footer Panel - to bring you the most commonly used page properties. This post aims to describe all the aforementioned panels and the features they provide.

The entire enhancement report can be found here. I myself have been working on this, with the help of my mentors - bubli (Katarina Behrens), and jay (Yousuf Philips).

Page Format Panel

  • Size dropdown to easily select standard page sizes.
  • Width and Height spinboxes to customize page size.
  • Orientation listbox to choose between Portrait and Landscape mode.
  • Margins listbox to select preset page margins. Available presets are -
    • None
    • Narrow (1.27 cm all around)
    • Moderate (lr: 1.91cm, tb: 2.54cm)
    • Normal 0.75" (2 cm all around)
    • Normal 1" (2.54cm all around)
    • Normal 1.25" (lr: 3:18cm, tb: 2.54cm)
    • Wide (lr: 5.08cm, tb: 2.54cm)
    • Mirrored (inner: 3.18cm, outer: 2.54cm, tb: 2.54cm, page layout: mirrored)
    lr = left + right
    tb = top + bottom

Page Styles Panel

  • Numbering dropdown to select numbering format of the pages. Corresponds to the 'format' option under Layout settings in Page Format Dialog.
  • Dropdown to change background of the page. Currently 5 settings - None (no background), Color (Solid Fill), Gradient, Hatching, and Bitmap
    • Pattern Setting
    • Color Setting
    • Gradient Setting - Make a gradient with two colors, which gives added customization compared to presets
    • Hatching Setting
    • Bitmap Setting
  • Layout Setting to select Page Layout - Right and Left, Mirrored, Only Left, and Only Right.
  • Columns setting to select frequently used page column layouts.

Page Header Panel and Page Footer Panel

Both these panels provide similar functionalities, so I'll be describing them in one go

  • Checkbox to enable header (or footer). <figure class="half"> </figure>
  • Margins setting to set the left and right margins of the header (or footer).
  • Dropdown to change the spacing of the header (or footer) from the top (or bottom) of editable area of the document.
  • The Margins and Spacing presets are similar, and currently 8 presets are present:
    • None
    • Extra Small (0.16 cm)
    • Small (0.32 cm)
    • Small Medium (0.64 cm)
    • Medium (0.95 cm)
    • Medium Large (1.27 cm)
    • Large (1.9 cm)
    • Extra Large (2.54 cm)

  • Setting to set same content for headers or footers on different pages of the document. There are four settings which are available -
    • All Pages - Sets the same header or footer on all the pages of the document
    • First Page - Sets a common header or footer to all pages except the first page of the document
    • Left and Right Page - Sets separate headers or footers for Left and Right sided pages.
    • First, Left and Right - First page has a unique header (or footer), followed by separate headers (or footers) for Left and Right sided pages

August 18, 2016 12:00 AM

August 17, 2016

Official TDF Blog

The Document Foundation and the FSFE strengthen their relationship

logoBerlin, 17 August 2016 – The Free Software Foundation Europe (FSFE, is joining the Advisory Board of The Document Foundation. At the same time, The Document Foundation is becoming an associated organisation of the FSFE (

The Free Software Foundation Europe’s aim is to help people control technology instead of the other way around. However, this is a goal which no single organisation can achieve on its own. Associated organizations are entities that share the FSFE’s vision and support the foundation and Free Software in general by encouraging people to use and develop Free Software, by helping organisations understand how Free Software contributes to freedom, transparency and self-determination, and by removing barriers to Free Software adoption.

With this mutual expression of support, both organisations strengthen each other in their effort to keep the general public in the technological driver seat. While the FSFE embodies the principles of the community movement working in pro of the adoption of Free Software in companies, public administrations and for private citizens, The Document Foundation turns principles and ethics into actual products, putting a first class, full-featured, but completely free productivity suite in the hands of users.

fsfe-summit-logo“We are happy to welcome the Free Software Foundation Europe as a member of our Advisory Board. Together, we will be able to further develop the adoption of Free Software in Europe, amongst public administrations and enterprises”, said Eike Rathke, a Director of The Document Foundation and a long time Free Software advocate and hacker.

“We believe it is important to join forces with all the organisations active in Free Software around Europe,” said Matthias Kirschner, President of the Free Software Foundation Europe, “and work together to reach our common goals. With our associated organisations we want to show that we are a strong and cohesive movement, and we work to achieve common objectives. To do this, we exchange ideas, coordinate efforts, motivate each other, and find opportunities to work together on specific projects. This is the case with The Document Foundation, steward of one of the most successful Free Software projects: LibreOffice”.

Several members of The Document Foundation will join FSFE Summit 2016 in Berlin, from September 2 to September 4, to celebrate FSFE 15th anniversary (

by Italo Vignoli at August 17, 2016 07:04 AM

August 16, 2016

TDF Infrastructure Status

askbot unavailable

Askbot unfortunately is having some database troubles. Infra is working on fixing the problem.

Update 16-08-17 15:00 UTC back in service

by The Document Foundation at August 16, 2016 10:00 PM

Official TDF Blog

Getting Started with LibreOffice 5.1, a new book from the community addresses the demand for updated documentation on the software

GS51-GettingStartedLOThe new manual supports the large number of organizations and individuals deploying LibreOffice “Still” 5.1 to get superior quality and stability

Berlin, August 16, 2016 – Volunteers active in LibreOffice Documentation Project within The Document Foundation announce the availability of the Getting Started Guide for LibreOffice 5.1. The book updates the traditional introductory text with the new features provided by the “still” version of the software, targeted to enterprise deployments and to individual users looking for superior quality and stability.

Updated by members of the community, the book is an effort to fill the gap in official documentation for LibreOffice. The Document Foundation is working hard to reduce the delay between the release of the software and its companion documentation, for a better user experience and a stronger competitive offering.

“Many communities consider the Getting Started Guide as a source for translation into their native language, to create localized textbooks for teaching LibreOffice in all environments, from academia to the enterprise,” says Olivier Hallot, documentation coordinator at TDF. “A timely release of these books will send a strong message about the commitment of the community for professional collaterals.”

“In addition to the free downloads of the book in PDF and ODT (editable) forms, users can buy printed copies,” says Jean Hollis Weber, volunteer writer, editor, and publisher of the official LibreOffice guides. “I’ve been working with a great group of other documentation volunteers, but we always need more people.”

To download or buy copies (from Friends of OpenDocument Inc., an Australia-based volunteer organization with members around the world, which supports the LibreOffice project), visit

by Italo Vignoli at August 16, 2016 08:43 AM

August 12, 2016

LibreOffice Design Blog

Insert and Playback of Online Media

Gone are the days when users were limited to embedding local media and clip art bundled with an office suite, as we now live at a time where there is a plethora of online media at a user’s fingertips, so …

by The LibreOffice Design Team at August 12, 2016 07:00 AM

August 11, 2016

Andreas Mantke

Epub erstellen mit LibreOffice

LibreOffice kann über Extensions  mit weiteren Funktionen versehen werden. Die Extensions werden von freien Entwicklern beigesteuert,  können über die LibreOffice-Extensions-Webseite heruntergeladen und in LibreOffice installiert werden. So findet sich dort auch eine Extension, mit der sich eine Writer-Textdatei in das Dateiformat epub exportieren lässt. So lassen sich auch elektronische Bücher (eBooks) aus LibreOffice heraus erstellen:


by andreasma at August 11, 2016 06:28 PM

August 09, 2016

TDF Infrastructure Status

gerrit push fails with missing objects

Infra is working on restoring the missing objects from replica

Seems a git gc was too aggressive...

by The Document Foundation at August 09, 2016 10:00 PM

>Susobhan Ghosh

Properties Panels for Impress/Draw

LibreOffice 5.2 is out, and one of the key improvements to Impress and Draw has been the introduction of the Properties Panels to the sidebar - namely Slide Content Panel for Impress, and Page Content Panel for Draw.

These panels enable quick access to the slide/page size and background properties. Both these panels have the same underlying code and features, and only differ in labels depending on the Application Context. So this post aims at explaining all these features in the panel available to both Impress and Draw.

The entire enhancement report can be found here. The main credits for developing the panel go to bubli (Katarina Behrens), Rishabh Kumar, and jay (Yousuf Philips). I have been making enhancements to the same after the panel got published.


  • Format dropdown to easily change Slide/Page format.
  • Quick option to change Orientation of the Slide/Page
  • Dropdown to change background of the slide/page. Currently 5 settings - None (no background), Color (Solid Fill), Gradient, Hatching, and Bitmap
    • Color Setting
    • Gradient Setting - Make a gradient with two colors, which gives added customization compared to presets
    • Hatching Setting
    • Bitmap Setting
  • Insert Image as Bitmap - With option (pop-up) to set the image as background for all pages/slides <figure class="third"> </figure>
  • Checkbox to toggle the display of the master slide's background.
  • Checkbox to toggle display objects.

A few other enhancements like a Edit Master Slide button to go to Master view of Page/Slide, Close Master Slide to close Master Slide, and context label changes are expected to be added in LibreOffice 5.3.

August 09, 2016 12:00 AM

August 05, 2016

Michael Meeks

2016-08-05 Friday.

  • Up early, bid 'bye to J. and the larger babes - let the smaller ones get going on Lego Mindstorms EV3 to have a first play with it clear of larger person interest.

August 05, 2016 09:00 PM

Miklos Vajna

LibreOffice now bundles the latest libxmlsec version

I wrote about how LibreOffice uses the XMLSec Library in an earlier post from March. There are two long-term goals regarding xmlsec in LibreOffice:

  • bundle the latest xmlsec version, instead the one from 2009

  • upstream enough of the patches, so building & running against xmlsec as provided by a Linux distro also works

I’m happy to say that the first goal is now reached:

  • libreoffice-5-1 bundled xmlsec 1.2.14 from 2009

  • libreoffice-5-2 bundles xmlsec 1.2.20 from 2014

  • master bundles the latest xmlsec 1.2.22, released earlier this year :-)

This is good, as this way it’s easier to integrate xmlsec upstream improvements into LibreOffice in the future.

Regarding the other goal, shrinking the patch list is still to be done. ;-)

August 05, 2016 07:13 AM

August 04, 2016

Michael Meeks

2016-08-04 Thursday.

  • Up early; mail chew, calls, lunch. ESC call. James & Kate over in the late afternoon; lovely to see them, Julie over for tea too.

August 04, 2016 09:00 PM

August 03, 2016

Michael Meeks

LibreOffice under the hood: a year of progress from 5.0 to 5.2

Today we release LibreOffice 5.2.0, the next step in our journey, and what will become the base of the increasingly stable 5.2.x series. There is a fine suite of new features for people to enjoy - you can read and enjoy all the great news about the user visible features from many great hackers, but there are, as always, many contributors whose work is primarily behind the scenes, and a lot of work that is more technical than user-facing.

Some moons ago, the ESC decided to add some under-the-hood wiki pages so that people could add their own credits: I encourage you to read those here: 5.1 and 5.2. There are lots of good things there, and it saves me reading and summarizing ~10k commits each release, but then again - that can be fun too. This is my very quick attempt to make up for a year of inactivity on this front, and pluck a few of the un-mentioned bits out of 17,734 commits (that is an average of ~50 commits every day of the year) from liboffice-5-0-branch-point to libreoffice-5-2-branch-point:

Developer Central

A great initiative of Norbert Thiebaud has been to collect together most of the infrastructure and entry points that we have at TDF, and build an attractive list of these to help those new to the project find and use our tools and services. Checkout

New central site to list developer infrastructure

Replacing Vigra with Cairo

LibreOffice has been able to run in a headless mode, doing its own pixel-bashing for a long time, and this is used intensively by both LibreOffice Online and also the Linux / gtk3 port. It has been a neverending source of amazement to myself and others that the (unreadable) template code using Vigra produces rather poorly performing code for all manner of cases - and needs special case optimization in the client code. One of the great joys of LibreOffice 5.2 is the final replacement of vigra, and the removal of the basebmp directory which allows us to use native (and assembler accelerated on eg. ARM) cairo for pixel bashing. While basebmp has served well and accelerated rendering for years, cairo also gives us accelerated anti-aliased line rendering and more. Thanks to Caolán McNamara (RedHat) for that.

Hardware Acceleration improvements

There were a large number of OpenGL and OpenCL improvements in this time period.

  • OpenGL got a much simplified rendering model - whereby we render everything to a double buffered back-buffer texture, and blit that to the screen at idle after re-paints are requested. This follows similar work for Mac and now gtk3. This combined with some dynamic adjustment of rendering priorities gives smooth re-painting and sizing without visible re-drawing. This work also significantly simplified GL context lifecycle and management.
  • OpenGL and CL crash protection - due to a large number of driver quality issues - we implemented a guard-zone that we enter and exit before doing any GL or CL call - such that our crash handler can detect a crash related to GL or CL, and in this case disable the functionality on re-start.
  • OpenCL and OpenGL sanity checking before real-use. To avoid later functionality problems, particularly mis-calculation in spreadsheets, whenever the CL driver version or LibreOffice version changes we re-calculate a test sheet on load and check the results, to detect mis-behaving CL implementations, and disable CL acceleration if we get those. Similarly for OpenGL we batch compile and cache all of our shaders to ensure there are no compile errors that could cause problems later.
  • OpenGL and CL black-listing code improvements, with nice cache/opengl_device.log files with details of your drivers. After lots of work, it was discovered that Intel GL drivers on Windows 7 were flaky beyond belief, so these were black-listed.
  • Performance was much improved by combining shaders interestingly the overhead of switching shader and associated program state changes is very significant, such that using a single, rather complex shader that handles lots of cases is faster than several very simple shaders one per case. So we merged all of our non-texture, and texture drawing into two large combined shaders - containing a switch() statement.
  • In combination with this, queueing and batching work to aggregate many drawing operations, into a single GL / program invocation also gave a large win. Combined with text atlas improvements, this allows us to defer the drawing of large numbers of glyphs to a single GL call.
  • Other GL accelerations including using a shader to calculate 64bit CRCs of images (to aid comparison), caching of our MVP matricees and doing co-ordinate space transformations on the GPU. Doing grey-scale conversion and shader based (poly)line rendering.
  • The lack of a good windows physical font rendering API lead us to implement DirectWrite support for text rendering, thanks to Tim Eves (SIL) and Martin Hosken (SIL).
  • Lots of other various wins and fixes - implementing invert, improved anti-aliasing, XOR rendering, angle-based polygon sub-division, improved clipping, better vcldemo test paths, improved native widget rendering, faster clipping. There was a chunk of work put into lifecycle fixing, and shutdown cleanup, and many bug fixes.
Thanks to all those with more than five commits to vcl/opengl, opencl/ and sc/source/core/opencl/ here: Tomaž Vajngerl (Collabora), Tor Lillqvist (Collabora), Noel Grandin (Peralex), Stephan Bergmann (RedHat), Caolán McNamara (RedHat), Markus Mohrhard, Marco Cecchetti (Collabora)

Performance Improvements

Performance improvements are hard to screenshot; but important nonetheless. We maintain performance regression tests (running under valgrind) at - which really helps to pin-point and repair issues as they arise.

One big-win in 5.2 was Armin Le Grand (CIB)'s work to improve our thread-pool, and use it to accelerate the 3D software renderer - which gives a particularly noticable speedup for 3D chart re-rendering.

Crash Reporting

Markus Mohrhard has done some simply excellent work on crash reporting - to help us find the most frequent crashes on Windows. While many Linux distributions have had similar tools deployed for years, covering Windows is important too. The implementation re-uses Google's Breakpad to create minidumps which are analyzed on the server side and charted prettily at

Built in Crash Report analysis web service

Markus would love some help from someone with web development skills to help improve the front-end, and analytic / querying / data presentation here. Please poke the developer list

This work has already lead to several vital fixes of the top crashers that have been seen in the wild, using good data to nail the worst quality issues. Thanks to Markus Mohrhard, Caolán McNamara (RedHat), and Miklos Vajna (Collabora) who have commits referencing crashreport URLs.

Ongoing Code quality work

Work is ongoing around code quality in many areas, with 196 or so cppcheck fixes thanks to Caolán McNamara (RedHat), Julien Nabet, Jochen Nitschke, Noel Grandin (Peralex), Michael Weghorn, Takeshi Abe, Giuseppe Castagno and others.

Caolan and the RedHat guys manage to keep the Coverity scan count, and crash-testing (loading and saving ~91k documents to many formats) counts at or around zero at all times, as well as doing fuzzing and other cleanup.

Lifecycle Improvements

Continuing the VclPtr re-work where we added strong referenced lifecycle to all our widgets, Dipankar Niranjan in tdf#96888 has cleaned out all of the old & awful 'dog-tag' work that tried to get lifecycle right in VCL, using much cleaner references. In more recent times Yurtoglu, Melike Ayse and Noel Grandin have worked to abstract the VclReferenceBase and apply this to Menus, to ensure they are correctly lifecycle managed. Thanks too to Jocken Nitschke for internalizing the DeletionListener tdf#97525 which should be removed when we eventually reference count the sal/ backend resources.

Other great work to exorcise manual refcounting comes from Thomas Arnhold, Daniel Robertson, Noel Grandin, Aleksas Pantechovskis and especially Xisco Fauli for their work on tdf#96525 and tdf#89329, converting lots of manually reference counted or copy-on-write structures to using the nice cow_wrapper template; as well as converting pImpl pointers to use std::unique_ptr. This reduces the scope for programmer error, and missed corner cases and allows us to make copy-on-write ref-counting thread-safe if necessary. There are 140 cases fixed, and about 68 refcounting instances still needing love.

Unit testing

We continued to build and execute more critical unit tests this year - each one stopping some suite of regressions from ever returning. Grepping for the relevant TEST and ASSERT macros we continue to grow the number of unit tests:

Graph of number of unit tests and assertions
Our ideal is that every bug that is fixed gets a unit test to stop it ever recurring. With around 1800 commits (20% up on last year), and over one hundred committers to the unit tests in the range it is hard to list everyone involved here, apologies for that; what follows is a sorted list of those with over 20 commits to the relevant directories in both core.git and online.git: Miklos Vajna (Collabora), Caolán McNamara (RedHat), Stephan Bergmann (RedHat), Ashod Nakashian (Collabora), Noel Grandin (Peralex), Markus Mohrhard, Tor Lillqvist (Collabora), Eike Rathke (RedHat), Michael Stahl (RedHat), Henry Castro (Collabora), Chris Sherlock, Varun, Andrea Gelmini, Jan Holesovsky (Collabora), Takeshi Abe, Łukasz Hryniuk, Xisco Fauli, Mike Kaganski (Collabora) and those with over 10 commits get an honourable mention too - unit tests are important ! David Tardon (RedHat), Katarina Behrens (CIB), Marco Cecchetti (Collabora), Tomaž Vajngerl (Collabora), Oliver Specht (CIB), Zdeněk Crhonek, Mark Hung, Justin Luth, Julien Nabet, Aleksas Pantechovskis, Pranav Kant (Collabora)

LibreOfficeKit Improvements

The LibreOfficeKit API is the foundation of the Android App, GNOME Documents, and the ongoing LibreOffice Online work, and a lot changed in the last year. The two main building blocks of the LOK API are the methods of the exposed objects, and the callback types. Since 5.0, the following new methods has been added:

  • lok::Office::getFilterTypes() allows obtaining an up to date list of filter name - MIME type pairs, added for GNOME documents.
  • lok::Office::setOptionalFeatures() and lok::Office::setDocumentPassword() allows opening password-protected documents.
  • lok::Office::freeError() allows releasing an error string allocated by the API.
  • lok::Document::getPartPageRectangles() allows obtaining the size and position of pages in a Writer document.
  • lok::Document::getTileMode() allows writing clients that work with both the new (Cairo) and the old (Vigra) headless backend (see above).
  • lok::Document::initializeForRendering() has been extended to allow key-value style options while initializing, like Writer's hide whitespace mode.
  • lok::Document::postMouseEvent() has been extended to handle click buttons and modifiers.
  • lok::Document::postUnoCommand() has been extended to get a callback when the result of an executed UNO command is ready.
  • lok::Document::getTextSelection() and lok::Document::paste() has been added to handle copy and paste.
  • lok::Document::getCommandValues() has been added to query possible values for UNO commands (font and style names, Calc row/column header details, Calc cell cursor).
  • lok::Document::setVisibleArea() has been added to be able to do correct page up / page down.
  • lok::Document::createView(), lok::Document::destroyView(), lok::Document::setView(), lok::Document::getView() and lok::Document::getViews() have been added as an initial support for collaborative editing.
  • lok::Document::renderFont() has been added to help providing font previews.
  • lok::Document::getPartHash() has been added to help clients tracking reordered slides.
  • lok::Document::paintPartTile() has been added to allow stateless rendering of different parts of a document.
And the following new callbacks are available:
  • LOK_CALLBACK_DOCUMENT_SIZE_CHANGED: Size of the document changed.
  • LOK_CALLBACK_SET_PART: The current part number is changed.
  • LOK_CALLBACK_SEARCH_RESULT_SELECTION: Selection rectangles of the search result when find all is performed.
  • LOK_CALLBACK_UNO_COMMAND_RESULT: Result of the UNO command execution.
  • LOK_CALLBACK_CELL_CURSOR: The size and/or the position of the cell cursor changed.
  • LOK_CALLBACK_MOUSE_POINTER: The current mouse pointer style.
  • LOK_CALLBACK_CELL_FORMULA: The text content of the formula bar in Calc.
  • LOK_CALLBACK_CONTEXT_MENU: Context menu structure (after a right-click).
Thanks to Andrzej Hunt (Collabora), Ashod Nakashian (Collabora), Henry Castro (Collabora), Jan Holesovsky (Collabora), Michael Stahl (RedHat), Mihai Varga (Collabora), Miklos Vajna (Collabora), Oliver Specht (CIB) and Pranav Kant (Collabora) for these.


An outcome of our Turkish Hackfest in Ankarah was discovering that LibreOffice would not even build in the tr_TR.UTF-8 locale. Interestingly toupper('i') != 'I' in this locale; fun cf. tdf#99589. Thanks to Krishna Keshav, Gökhan Gurbetoğlu and Apurva Priyadarshi for the fixes.

A large number of UX / usability papercuts were fixed and improved such as keyboard shortcuts, consistent display issues, mis-sized and mis-placed controls, and some regressions from UI file conversion. Thanks to Caolán McNamara (RedHat), Akshay Deep, Regina Henschel, Maxim Monastirsky, Jürgen Funk (CIB), Bubli Behrens (CIB), Samuel Mehrbrodt (CIB) & Jay Philips.

QA / bugzilla

One metric we watch in the ESC call is who is in the top ten in the freedesktop Weekly bug summary. Here is a list of the people who have appeared more than ten times in the weekly list of top bug closers in order of frequency of appearance: V Stuart Foote, Adolfo Jayme, Cor Nouws, Maxim Monastirsky, Eike Rathke (RedHat), raal, m.a.riosv, Julien Nabet, Caolán McNamara (RedHat), Miklos Vajna (Collabora), Beluga, Alex Thurgood, Michael Meeks (Collabora), Buovjaga, Yousuf (Jay) Philips, Joel Madero, Samuel Mehrbrodt (CIB), Markus Mohrhard, Timur, Jean-Baptiste Faure, Xisco Faulí, Aron Budea, tommy27, Michael Stahl (RedHat), Heiko Tietze, David Tardon, Laurent BP With many thanks to everyone else that helped to close and triage so many bugs for this release.

Jenkins / CI

Thanks fundamentally to Norbert Thiebaud - we now have not only great Jenkins / CI infrastructure, with gerrit integration - but we have a much enlarged and more reliable hardware build farm that encourages people to use Jenkins to check their work before pushing, in turn increasing the quality and reliability of master. This year we've seen the benefits of running our full suite of make check unit tests on our debugging builds under Linux.

The work Jenkins did for just master in the six month run up to the 5.2 branch point we have 34,124 tinderbox builds covering seven configuration across linux, mac and windows. With 27,737 builds covering three platforms tested on our gerrit infrastructure. This is for the CI managed hardware, there are a number of other volunteer run Tinderbox builders. This is extremely helpful for keeping master build-able and usable, making it easy for newbies to get stuck in. With 60,000 builds for 8k commits we are doing a lot of loop test and validation of the LibreOffice code at CI time.

Ongoing German Comment redux

Some of my favorite heroes are those who open up the code so that others can work on it ! One of the key tasks there is translating the remaining German Comments (a list). The last four thousand lines seem to defy translation - why this graph should flatten like this - I have simply no idea. All patches from German speakers who love to finish things - much appreciated. Many thanks to those who stuck with it, with more than 2 commits; in order of commit count: Albert Thuswaldner, Phillip Sz, Thomas Klausner, Chris Sherlock, Philipp Weissenbacher & Matteo Casalin. We are now down to seven modules left: include, reportdesign, sc, sfx2, stoc, svx, sw

Graph of remaining lines of German comment to translate

Windows XP

The 5.2.x releases run well on Windows XP, but we cannot be sure how long our tooling will continue to target that platform. As such - while the ESC has no concrete plans to drop Windows XP support, we are 'deprecating' it after the 5.2.x series - meaning that having a modern C++ compiler and a modern Windows build OS base-line have a higher priority. That means that in future it is possible that future major LibreOffice releases may not run on Windows XP; you have been warned. For now, there is no change here.

Getting involved

I hope you get the idea that more developers continue to find a home at LibreOffice and work together to complete some rather significant work both under the hood, and also on the surface. If you want to get involved there are plenty of great people to meet and work alongside. As you can see individuals ('Assigned') make a huge impact to the diversity of LibreOffice (the colour legends on the right should be read left to right, top to bottom, which maps to top down in the chart):

Graph showing individual code committers per month

These charts, made so early in the month are still missing som individuals and commits queued up in gerrit for review - hence the July numbers. In terms of diversity of code commits, we love to see the unaffiliated volunteers contribution by volume, though clearly the volume and balance changes with the season, release cycle, and volunteers vacation / business plans:

Graph showing individual code committers per month

Naturally we maintain a list of small, bite-sized tasks which you can use to get involved at our Easy Hacks page, with simple build / setup instructions. It is extremely easy to build LibreOffice, each easy-hack should have code pointers and be a nicely self contained task that is easy to solve. In addition some of them are really nice-to-have features or performance improvements. Please do consider getting stuck in with something.

Another thing that really helps is running pre-release builds and reporting bugs just grab and install a pre-release and you're ready to contribute alongside the rest of the development team.


LibreOffice 5.2 is great; it is made by a set of developers having fun, working together, and building an increasingly attractive and beautiful Free Software Office suite, I hope you enjoy using it. Thanks for reading, don't forget to checkout the user visible feature page and thank you for supporting LibreOffice.

If I have missed your good work out (and this is a very incomplete view based on a few hours of analysis) - please do add yourself to the relevant wiki page and potentially mail me a unified diff to this page; thanks !

Raw data and commit stats built using our gitdm-config - are available for many of the above graphs.

August 03, 2016 09:00 PM

2016-08-03 Wednesday.

  • Up v. early, worked on under the hood descriptions too little, too late really. Lunch; caught up with Adam & James a bit in the garden; contract work in the car home.

August 03, 2016 09:00 PM

August 02, 2016

Michael Meeks

2016-08-02 Tuesday.

  • Mgmt call; plugged away at building stats, and details on under-the-hood changes from 5.0 to 5.2 for much of the day. Chat with Philippe.

August 02, 2016 09:00 PM

Andreas Mantke

Worked On LibreOffice Educational Portal Again

I started to work further on a LibreOffice educational portal again these days. This portal (website) was discussed during a work weekend of the German speaking community. I created a first very alpha version during and short after that weekend and set up a development website. The site is driven by Plone and a specific add-on. I got some time to work on this add-on further and got the add-on more i18n-friendly. The add-on is hosted on Github in the account of the Document Foundation:

I added also a new repository for the configuration etc. of a new LibreOffice education website, which brings me to eight hundred commits to Github during the last year 😉

by andreasma at August 02, 2016 08:49 AM

July 31, 2016

LibreOffice Design Blog

How the Navigator may support object handling in LibreOffice Draw

The management of various objects is crucial for LibreOffice Draw, especially when a drawing or a diagram becomes complex with a lot of shapes and groups placed on different layers with an elaborated stack order.

Improvements for the handling of …

by The LibreOffice Design Team at July 31, 2016 02:10 PM

July 28, 2016

Jan Iversen

Infra meetup in Kaufbeuren

At LibreOffice and DocumentFoundation we work hard to make life easier for our many volunteers.


This week is dedicated to a meetup in Kaufbeuren (Germany), where we go through the infrastructure, spreading the knowledge as well as discussing future posibilities.

Our infrastructure is actually quite big, with a lot of services to help Developers/Documenters/Testers and other volunteers.

devcentral gives a nice (but not complete) overview of the developer resources.

Our tinderboxes runs continuously building/testing LibreOffice while our CI system builds every patch submitted, to control the quality before actually integrating the patch into master.

Infra is like the rest of the community, very lively, friendly to new people, so do not be afraid to join us. We have many small and big sysadmin tasks open, so it can be a way for you to get experience.

We all work toward a common goal:


Make sure it continues to be the opensource office suite of high quality and usability.

Tomorrow I go back to spain again for at (in my opinion a well deserved weekend).

Jan I.

by jan at July 28, 2016 01:39 PM

July 25, 2016

TDF Infrastructure Status

Outage of Falco

Due to a massive disk failure on our hypervisor falco, the following services are offline at the moment:

  • Gerrit
  • CI
  • Bugzilla

Other services might be affected as well.

We will keep you up-to-date.

Update July 26, 0735UTC

Gerrit, Jenkins, Bugzilla are back up.

Update July 26, 0855UTC

Falco needs to be rebooted to rescue, as we ran into a Bug in Debian Jessie (

by The Document Foundation at July 25, 2016 10:00 PM

Miklos Vajna

A LibreOffice / AddressSanitizer setup

sanitizers (ASAN, UBSAN, etc.) is a collection of tools to detect memory corruption bugs, undefined behavior and more by instrumenting the code generated by the compiler. (That’s the main difference from valgrind.) From LibreOffice’s perspective one more important difference is that there is a Jenkins_Linux_Ubsan tinderbox that makes sure that the master branch is kept clean from errors detected by a given configuration.

So when the tinderbox failed after a commit of mine, I wanted to set up a similar environment locally, reproduce and fix the bug, and push the fix once I saw that the fix indeed solves the problem. You can set many options both at build and runtime, so while we have some documentation on the TDF wiki (and also Stephan was kind enough to share his config) on how to use these sanitizers, it wasn’t clear to me what to do step by step. So here is one possible setup that worked for me — in my case I wanted to reproduce a stack-use-after-return problem. If you haven’t ever built LibreOffice before, then go to the Development wiki page, first do a normal build, and if everything went fine, came back here.

Build options

My autogen.input looks like this:

CC=clang -fsanitize=address
CXX=clang++ -fsanitize=address

Which is a normal clang debug build, except:

  • you need to add -fsanitize=... to CXX (not to CXXFLAGS), as explained on the wiki

  • you need to explicitly disable Firebird integration for now


My first attempt failed at build time, as even the tools used only during the build are instrumented, and some memory leak was detected there, which means the build aborted before reaching the problem I was interested in. To disable leak detection during build, and disable parallelism (I needed this, as I did the build in the background while using the machine for something else):

make build-nocheck ASAN_OPTIONS=detect_leaks=0 PARALLELISM=1

This also means that I explicitly disabled running any tests, as I knew which is the single unit test I want to run for the purposes of reproducing and fixing the problem.


Once the build completed, it turns out that the stack-use-after-return detection is disabled at runtime by default, which means I could not see any problem locally. Here is the commandline to run one specific CppunitTest with this detection on:

cd sw; make -sr CppunitTest_sw_tiledrendering ASAN_OPTIONS=detect_leaks=0:detect_stack_use_after_return=1

Again, this is just one possible setup, you can use other -fsanitize=... options, other environment variables during build and during testing — but hopefully it helps in the future to avoid pushing fixes for such problems detected by sanitizers just blindly.

July 25, 2016 07:52 AM

July 23, 2016

>Akshay Deep

Redesigning the Template Manager

Midterms for GSoC 2016 have passed and my first project Redesigning the Template Manager is reaching completion. Therefore, I have decided to encapsulate all the modifications and enhancements that I (along with my mentors, Samuel Mehrbrodt and Yousuf Philips) have made to the Template Manager and some other UI components, namely Start Center, Presentation Wizard, etc. The idea behind the project can be seen here: Introduction: GSoC 2016 with Libreoffice

Template Manager

  • All Templates view replacing the previous Folder view
  • Search, Application and Category filters replacing Tab design

New Template Manager

  • Removal of Save as Template mode (since LibreOffice 5.2)
  • Context Menu for non-browse focused entries. (Open, Edit, Set as Default, etc..)       rnotes2
  • Controls for browse functions such as Import, Export, Move and Online Templates Link
  • Marking of default templates for each application
  • Dropdown control to create and remove categories, resetting the templates for specific applications and refresh the viewblog11
  • Inbuilt category selection dialog for importing and moving templatesblog12
  • Title and Category as tooltips when hovering over thumbnailsblog121.png
  • New ‘Selected + Hover’ state in thumbnail view
    • How to try it? Just select a template. Now hover over a selected template and an unselected template to see the difference.
  • Removal of remote files view (since LibreOffice 5.3)
    • dead and buggy code, created long time ago
    • hidden if experimental mode is not enabled, crashes frequently
    • no way to download previews for each remotely available template
    • LO has dedicated Remote Files Dialog since 5.1, which does the job much better


      Remote Files Add Service

  • Help, Open and Close controls added as HIG recommends

Save as Template

Template Selection (Impress)

  • Tools > Options > LibreOffice Impress > General > Start with Template Selectionblog_sel2
  • Enable users to select a template when Impress starts
  • Easy means to disable the dialog on Impress startup
  • Remove Presentation Wizard to push forth the Selection dialog
  • Dialog is Enabled by default


    Impress: Template Selection dialog

Template Menu

  • File > Templates > Open, Save as, Managetemplate_menu
  • Bug 61396 Possibility to edit a template not in Template Repositoryblog113.png

Start Center

  • All Templates view in Start Center with application filter
  • Context menu for templates in start center


    Start Center Template Selection

Other fixed bugs

Overall, my first project went smoothly, thanks to the help and guidance provided by my mentors, Samuel Mehrbrodt and Yousuf Philips. I had a lot of time remaining in the GSoC and hence, I picked up another project, Emoji Toolbar Control. It’s a new idea mentioned here: Bug 100100: Emoji Toolbar Control. I will also follow it with a blog about the enhancements I made and the problems and issues associated with the new feature.


by akkidevblog at July 23, 2016 09:38 AM

July 20, 2016

Jiri Eischmann

LIBOCon: get around Brno

Yesterday I added Get around Brno page to the LibreOffice Conference website. There you can find comprehensive information about public transport in Brno, how to buy tickets, how to get to the hotel/venue if you arrive by train/bus/car/plane etc. All accompanied with maps and pictures of described places. So hopefully no one will get lost on their way to the hotel or venue, or struggle purchasing tickets.

If you’re coming to LibreOffice Conference 2016, definitely check it out. You may also want to download the page for offline usage in case you won’t mobile data.


by eischmann at July 20, 2016 12:18 PM

July 18, 2016

Björn Michaelsen

LibreOffice available in the snap store

‘Cause the players gonna play, play, play, play, play
And the haters gonna hate, hate, hate, hate, hate
— Taylor Swift, 1989, Shake It Off

The latest release candidate of the upcoming LibreOffice 5.2.0 feature release is available for installation from the snap store. This makes it very easy to install this prerelease of LibreOffice for testing out new features (an incomplete glimpse on what to look forward for can be found on the LibreOffice 5.2 release notes page, which is still under construction, go on #libreoffice-qa if you want to help with testing).

To install this build of LibreOffice on any snap supported platform just open a terminal and run:

sudo snap install --channel=beta libreoffice

To start this version of LibreOffice, you run:


The full path should only be needed, if you have another version of LibreOffice installed. If that is not the case a plain “libreoffice” should do.

Note that this version is still a prerelease and not for production use yet. That said, it is mostly a full-featured package including everything that would be packaged for end users of LibreOffice. While this package also includes a set of localizations to show that they work, their number has been restricted to English, French, German, Italian, Portuguese (Portugal/Brazil), Spanish for size considerations for now. This set is mostly the one Ubuntu provides on its installer images (removing those that might have issues as they need special fonts).

Another difference to prior downloads is that while LibreOffice still uses X11, now runs in confinement provided by snaps. Unlike previous releases on Ubuntu, this package defaults now to do so via the newer GTK3 backend: This has a lot of advantages, see details on Caolans Blog, but it is also a younger backend, that hasnt has that much time to be polished yet.

by bmichaelsen at July 18, 2016 01:23 PM

Miklos Vajna

On LibreOffice's ViewContact/ViewObjectContact/ObjectContact

I’ve recently fixed a missing-repaint problem in LibreOffice’s headless backend, but the root cause wasn’t close to the symptom I saw first. Part of the debugging process was to understand what’s the relation between sdr::contact::ViewContact, sdr::contact::ViewObjectContact and sdr::contact::ObjectContact.

See this old presentation and the review of my documentation update for the details, but the short version is that:

  • somewhat confusingly, sdr::contact::ViewContact is part of the model, and there is one sdr::contact::ViewContact object per shape

  • sdr::contact::ViewObjectContact is part of a view, and there is one sdr::contact::ViewObjectContact per shape, per view

  • finally sdr::contact::ObjectContact is part of a view, and there is one sdr::contact::ObjectContact per view

So the answer to my original Is it normal that I have two object contacts and a single view contact for a shape and two views? question is: yes, that’s expected. ;-) Hopefully the updated documentation is now more clear, the incorrect 1:N relation in the original class diagram first confused me.

July 18, 2016 08:17 AM

July 12, 2016

Andreas Mantke

Adding New Member To The Templates Website

I had to work around an issue with user add form in the LibreOffice templates website and found a solution. I added the user within the Zope Management Interface (ZMI), edited the user, assigned him to a group and reset his password  in administration interface later. That takes some extra effort, but in the end it works for now.

by andreasma at July 12, 2016 08:37 PM

Jiri Eischmann

Libocon 2016: travel info

LibreOffice Conference 2016 is less than two months away and people are starting to look for information how to get to and around Brno. We’ve prepared a page with extensive information how to get to Brno.



If you go by plane, the best option is flying directly to Brno. You can get very cheap tickets from London-Stansted (Ryanair), London-Luton, Eindhoven (Wizz Air) and moderately cheap tickets from summer destinations (Spain, Greece, Italy,…) with SmartWings. There is also a daily Lufthansa flight to Munich which can connect you with dozens of destinations around the world (it’s particularly good for flights to the US, you can reach East Coast in 10 hours). But the line is rather oriented at business travelers, the plane is small and prices tend to be high.

The second best option is flying to Vienna which has flights to dozens of destinations in the world and prices are pretty good. RegioJet operates direct buses between the airport and Brno, so you can get conveniently to Brno in 2 hours. Another option is the airport in Prague, but it has fewer connected destinations and  it takes longer to get from there to Brno.


If you happen to live in Germany, Austria, Poland, Slovakia, or Hungary. Train may be the best option for you. Brno has direct trains to those countries.


You can also come by car. You can be prepared for delays because of many road reconstructions. There is a long-term reconstruction of D1 highway (between Prague and Brno) and there are five sections under reconstruction this season. There are also several more motorways which are partly or completely closed for the same reason. Most of the road work happens during summer holidays, but some of it will be going on in Sept, too. It’s hard to estimate which now. Traffic jams occur, so give yourself enough time if you go to Brno by car.


If you’d like to go by bus, we can recommend RegioJet. They connect Brno with many destinations in Europe, they have very comfortable buses with free hot drinks, cheap snacks, wifi, entertainment systems and for reasonable prices. Other bus companies are e.g. Flixbus or Eurolines.

And More

The LibreOffice community is truly global and attendees from further destinations may not know much about the Czech Republic. Maybe you wonder what’s the currency here, what’s the weather like in Sept etc. We’ve prepared a page with the basic information about the country. For more information we link CzechTurism website where you can learn much more information which is relevant to travelers to the Czech Republic.

Soon, we will also extend information about how to get around Brno (public transport system, how to buy tickets, where, how to get to the conference hotel, venue,…). Stay tuned😉

by eischmann at July 12, 2016 03:35 PM

July 07, 2016

Caolán McNamara

crashtesting: now 92000 documents

crash testing, now 92000 documents continuously tested

Last August we had a collection of approximately 76000 documents. This July we have over 92000 documents. The corpus is mostly gathered from our bugzilla and other projects bugzillas via our get-bugzilla-attachments-by-mimetype script. For testing purposes we continuously import them all, and then export certain formats to multiple destination formats. For example odts are re-exported to odt, doc and docx and the results of what documents crashed (which includes asserts) are uploaded to the crashtest site
I like to imagine that these are typically the type of mean and bitter documents that try to eat innocent office software alive.
The get-bugzilla-attachments-by-mimetype script only downloads new attachments from its target bugzillas which are not already downloaded. The last run to refresh the corpus took over two days to complete. Refreshing isn't fast or cheap so it's fairly infrequent.
The regular crashtesting run to import and reexport the corpus is comparatively frequent, takes approximately 24 hours and typically gets run every two or three days on the latest 64bit Linux master in headless mode.

by Caolán McNamara ( at July 07, 2016 04:22 PM

July 04, 2016

Stephan Bergmann

Clang in Fedora 24

I’m only ever using a bleeding edge Clang trunk build myself. So when Fedora enabled use of the GCC abi_tag attribute in libstdc++ (i.e., switched the _GLIBCXX_USE_CXX11_ABI macro to 1 by default), it was only a matter of applying a set of (evolving) patches to Clang to keep things working.

However, others who wanted to use the Clang version included in Fedora were in for more of a problem. The typical symptom being that what you compiled with Clang fails to link against system libraries, most notably libstdc++.

For Fedora 23, we included a somewhat slapdash early version of the relevant Clang patches, but that didn’t survive the split-out of Clang from the overall LLVM package in Fedora 24. But now that the Clang upstream patches are deemed stable (and have been integrated into trunk towards Clang 3.9), I backported them to the Clang 3.8 in Fedora 24 (and rawhide).

And a lot of thanks to all of those who created these patches!

by stbergmann at July 04, 2016 07:29 AM

July 03, 2016

Jan Iversen

Surprise, LibreOffice on my Television


I am building a multiroom audio system (do not have money to buy a Sonos system). The system is based on 3 Raspberry PI 3 (2 Rooms + Television) and a NAS.

I have installed Raspbian (Debian Linux) and Kodi (former XBMC) and was testing on my Television. Raspian comes with a simple graphic desktop, so of course I took a look around and found to my surprise LibreOffice.

This had to be tested, LibreOffice, which everybody says is a mammut chunk of software, on a small Raspberry PI 3, sounded impossible. But as you can it actually worked pretty well. Admitted using the remote control to write was kind of interesting:-)


This is the raspberry PI. It perform like a late PC from aroun 98, with a price of only 35 EUR.

So my multiroom audio is going to cost:

  • 3 raspberry PI 3 + IQAudio digiamp+, approx. 300,- EUR
  • 2 set Denon speakers, approx. 350,- EUR
  • 1 NAS, approx. 150,- EUR
  • Total 800,- for music in 3 rooms and videos on my Television.

And of course a free version of LibreOffice.

The LibreOffice community consist of all kinds of people, distributed around the globe and have experience in different fields. Anybody can help, Users can help test our new features, Developers can help to solve bug or add new exciting features.

Hoping to see you in our community.


by jan at July 03, 2016 11:25 AM

June 28, 2016

Stephan Bergmann

Plugin, Flamed

Just how much is our Clang plugin slowing down builds of LibreOffice? We are constantly adding more and more useful functionality to it, and some of it is well known to be written in a way that is likely performing not too well. But I never dared look at the performance implications too closely, for fear of being disappointed. The build always seemed to go along at more or less the same speed, so who cares for details?

Enter FlameGraph, generating beautiful and easy-to-digest graphs on top of the Linux perf tool’s (or others’) output. So I gathered data about half a minute of CPU activity during the LibreOffice build (randomly picked a time when all the cores were busy compiling .cxx files in the sw module, to keep noise contributed by other processes down to a minimum), and passed it through FlameGraph. And sobering set in:flamegraph98.56% of all the time was spent in the clang-3.9 process (i.e., there was almost no noise from unrelated processes). And 19.22% of all time was spent in our plugin. That is, the plugin slows down compilation by about 25%. Quite a number.

Zooming in and breaking this down further per individual plugin, the distribution is

  • 1.47% CommaOperator
  • 1.04% VCLWidgets
  • 0.91% BodyNotInBlock
  • 0.79% SalBool
  • 0.69% PtrVector
  • 0.65% RefCounting
  • 0.63% FailedDynCast
  • 0.62% ReservedId
  • 0.61% Nullptr
  • 0.59% RedundantCast
  • 0.56% StringConstant
  • 0.56% ImplicitBoolConversion
  • 0.55% ExternAndNotDefined
  • 0.50% PassStuffByRef
  • 0.47% DefaultParams
  • 0.46% StringConcat
  • 0.45% UnusedVariableCheck
  • 0.45% SalLogAreas
  • 0.45% LiteralToBoolConversion
  • 0.44% UnrefFun
  • 0.44% ReturnByRef
  • 0.43% StaticCall
  • 0.43% BadStatics
  • 0.42% Override
  • 0.41% StaticAnonymous
  • 0.41% InlineVisible
  • 0.38% SimplifyBool
  • 0.38% FpComparison
  • 0.37% SfxPoolItem
  • 0.35% StaticMethods
  • 0.35% PrivateBase
  • 0.35% BadVectorInit
  • 0.34% DerefNullPtr
  • 0.34% CStyleCast
  • 0.32% RangeForCopy
  • 0.32% LoopVarTooSmall
  • 0.29% OnceVar

The recursive nature of RecursiveASTVisitor makes it a bit hard to easily spot each individual plugin’s hotspots, but one thing sticks out: CommaOperator is a rather simple piece of code (that shouldn’t need much heavy computation), but does use lopluign::Pluign::parentStmt, which rebuilds the AST to determine a node’s parent, and is really, really expensive.

Room for improvement. Time to clean up.

(At first, the generated graph looked way less interesting. One thing that was necessary was to build both LLVM/Clang and our plugin with -fno-omit-frame-pointer. The other thing was to teach FlameGraph to support “(anonymous namespace)” in C++ function names.)

by stbergmann at June 28, 2016 09:13 AM

June 27, 2016

Miklos Vajna

RTF shape import: group scaling and flip in LibreOffice Writer

Some kind of simple logo was reported to be mis-imported in the RTF filter, it looked like this:

which is interesting, but the reference output is different:

With a bit of investigation, it turns out this was a flipped group shape with a few rectangles, so the mis-rendering of the logo was due to two independent problems. The first is that the child shapes inside a group shape were scaled incorrectly. See the commit for the exact details, after fixing scaling, it looked closer to the original:

The second problem was that the group itself was flipped, and this was again ignored on import. After fixing that problem:

the result is basically the same as the reference. Both fixes are not only on master (towards LibreOffice 5.3) but also backported to LibreOffice 5.2. :-)

June 27, 2016 07:41 AM