The Document Foundation Planet


August 01, 2015

Charles Schulz

Surprises, claws and various articles

Dear readers, something nice but unexpected came up recently. As you can imagine, preparations for the release of LibreOffice 5 are keeping many people busy these days. Among the things that need to be found is the choice of collaterals and various elements for communication. It could very well be that readers of this blog will have a nice surprise the day LibreOffice 5 is released!

But that’s only one of the various newsbits I wanted to share with you. The official blog of the Document Foundation has added two very interesting new posts lately. One is about the work taking place at the level of quality assurance for LibreOffice; the other one is a synthetic overview of the technical evolution that made LibreOffice 5 possible. I can only recommend to take some time to go through these two articles, as they are quite enlightening and answer in details about some frequently asked questions, ranging from “why didn’t you fix the bug XYZ707832?” to “has LibreOffice changed much since was ever created?“.

Last but not least, I wanted to talk a little bit about Claws Mail. While my email workflow is increasingly relying on Emacs and somewhat more on Evolution, I still use Claws as it is the primary default email client on my (aging) workstation. It turns out that the team behind Claws released a new version after 9 months, a span of time that is a bit of a stretch if you look at the project’s release history. The amount of new features and bugfixes is quite impressive and it is quite a meaningful release. I upgraded and it worked smoothly for me; however it will not curb the current trend in my workflow and as I had explained previously on this blog, what Claws is really missing is a calendar plugin that works with Caldav. So far that has unfortunately not happened. But for anybody who does not rely too much on calendar syncing other than Google Calendar and is not interested in non graphical email clients, you should give Claws a serious try.

by Charles at August 01, 2015 08:03 AM

July 30, 2015

Official TDF Blog

The Document Foundation announces LibreOffice 4.4.5

Berlin, July 30, 2015 – The Document Foundation (TDF) announces LibreOffice 4.4.5, the fifth minor release of the LibreOffice 4.4 family, with over 80 fixes over the previous version. LibreOffice 4.4.5 is replacing LibreOffice 4.3.7 as the “still” version for more conservative users and enterprise deployments.

The Document Foundation suggests to deploy LibreOffice in enterprises and large organizations with the backing of professional support by certified people (a list is available at:

People interested in technical details about the release can access the change log here: (fixed in RC1) and (fixed in RC2).

Register for the LibreOffice Conference

Registration for LibreOffice Conference 2015, which will be hosted by the Danish city of Aarhus from September 23 to September 25, is now open at the following page:

The LibreOffice community is growing, and the conference is the best opportunity to join the fun by meeting a large group of the people that have contributed to the success of the project: developers, and volunteers who have localized the suite, chased the bugs, written the manuals, spoken at conferences, and advocated LibreOffice both at global and local levels.

Download LibreOffice

LibreOffice 4.4.5 is immediately available for download from the following link:

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

by Italo Vignoli at July 30, 2015 11:04 AM

July 29, 2015

Official TDF Blog

The road to LibreOffice 5.0

Road to LibreOffice 5.0

Clicking on the thumbnail will open the high resolution image

LibreOffice 5.0 will be announced next Wednesday – August 5, 2015 – at noon UTC. It is our tenth major release, and the first of the third stage of LibreOffice development. To show the impressive amount of new features added to LibreOffice since version 3.3, released in January 2011, we have compiled a summary of all previous announcements.

LibreOffice 5.0 will add 64bit Windows builds to already available 32bit Windows, 64bit MacOS and 32/64bit Linux builds, and will be compatible with Windows 10.

A pre-release of LibreOffice 5.0 is available on the download page at the following address:

LibreOffice 3.3, January 25, 2011 – LibreOffice 3.3 was the first stable release of the FOSS office suite developed by the community. In less than four months, the number of developers hacking LibreOffice has grown from less than twenty in late September 2010 to well over one hundred in January 2011. This has allowed to release LibreOffice 3.3 ahead of the aggressive schedule set by the project.

LibreOffice 3.3 highlights:

  • The developer community has been able to build their own and independent process, and get up and running in a very short time (with respect to the size of the code base and the project’s strong ambitions);
  • Thanks to the high number of new contributors having been attracted into the project, the source code is quickly undergoing a major clean-up to provide a better foundation for future development of LibreOffice;
  • The Windows installer, which is going to impact the largest and most diverse user base, has been integrated into a single build containing all language versions, thus reducing the size for download sites from 75 to 11GB, making it easier for us to deploy new versions more rapidly and lowering the carbon footprint of the entire infrastructure.

LibreOffice 3.4, June 3rd, 2011 – LibreOffice 3.4 was the second major release of the FOSS office suite since the announcement of The Document Foundation in September 2010. Contributors were over 120 (six times as many as the first beta released on September 28, 2010).

LibreOffice 3.4 highlights:

  • Calc was reacting faster and offered a better compatibility with Excel spreadsheets, while Pivot Tables – formerly known as DataPilots – could now support an unlimited numbers of fields and named range as data source;
  • The user interface of Writer, Impress and Draw was improved with new features;
  • The visual look of the Linux version was updated with several cosmetic changes, with a better text rendering engine and an improved GTK+ theme integration;
  • Several thousand lines of comments were translated from German to English, and over 5.000 lines of “dead” code were removed from Writer, Calc and Impress.

LibreOffice 3.5, February 14, 2012 – LibreOffice 3.5 was the third major release and was tagged as “the best free office suite ever” as the activity of developers started to surface, after the first two major releases focused on the engine. The release was the result of the combined effort of an average of 80 developers per month, providing a total of over 30.000 code commits.

LibreOffice 3.5 highlights:

  • Writer: a new built-in Grammar checker for English and several other languages; improved typographical features, for professional looking documents; interactive word count window updating in real time; a new header, footer and page break user interface;
  • Calc: support for up to 10.000 sheets; multi-line input area; new functions conforming to the ODF OpenFormula specifications; better performances when importing files from other office suites; multiple selections in autofilter; unlimited number of rules for conditional formatting;
  • Impress / Draw: improved importer of custom shapes and Smart Art from PPT/PPTX; possibility to embed multimedia/colour palettes into ODF documents; new display switch for the presenter’s console; new line ends for improved diagrams; Microsoft Visio import filter;
  • Base: new integrated PostgreSQL native driver.

LibreOffice 3.6, August 8, 2012 – LibreOffice 3.6 was the fourth major release, with a large number of features and incremental improvements over previous versions, ranging from hidden ones – performance – to more visible ones such as user interface tweaks.

LibreOffice 3.6 highlights:

  • Import of Corel Draw files, and PDF export with watermarks;
  • Integration with Alfresco via CMIS and limited Sharepoint integration;
  • Improved auto-format function for tables in text documents, and color-scales and data-bars in spreadsheets;
  • Microsoft Smart-Art import in text documents, and improved import and export of CSV-files;
  • A cleaner look, especially on Windows PCs, a new splash screen, and several new presentation master-pages.

LibreOffice 4.0, February 7, 2013 – LibreOffice 4.0 was the fifth major release, and the first to reflect the objectives set by the community at the time of the announcement, in September 2010: a cleaner and leaner code base, an improved set of features, a superior interoperability, and a more diverse and inclusive ecosystem.

In less than 30 months, the LibreOffice project has attracted over 500 developers – 75% independent volunteers – capable of contributing over 50.000 commits. The resulting code base is rather different from OOo, as several million lines of code have been added and removed, and 25.000 lines of comments translated from German to English.

LibreOffice 4.0 highlights:

  • Integration with several content and document management systems – Alfresco, IBM FileNet P8, Microsoft Sharepoint 2010, Nuxeo, OpenText, SAP NetWeaver Cloud Service and others – through the CMIS standard;
  • Better interoperability with DOCX and RTF documents, thanks to new features and improvements (like attaching comments to text ranges);
  • Import of Microsoft Publisher documents, and improvement of Visio import filters with the addition of the 2013 version;
  • UI incremental improvements, including Unity integration and support of Firefox Themes (Personas) for a personalized look;
  • Introduction of the widget layout technique for dialog windows, which makes it easier to translate, resize and hide UI elements, reduces code complexity, and lays a foundation for an improved user interface;
  • Different first page header and footer on a Writer document, without the need of a separate page style;
  • Additional performance improvements to Calc, plus new features such as export of charts as images (JPG and PNG) and new functions defined in ODF OpenFormula;
  • First release of Impress Remote Control App for Android;
  • Significant performance improvements when loading and saving many types of documents, with particular improvements for large ODS and XLSX spreadsheets and RTF files;
  • Management of code contributions through Gerrit: a web based code review system, facilitating the task for projects using GIT.

LibreOffice 4.1, July 25, 2013 – LibreOffice 4.1 was the sixth major release, with a large number of improvements in the area of interoperability with proprietary office suites.

LibreOffice 4.1 highlights:

  • Many improvements to Microsoft OOXML import and export filters, as well as to legacy Microsoft Office and RTF file filters;
  • Font embedding in Writer, Calc, Impress and Draw, to helps retain the visual aspect when fonts used in documents are not installed on the target PC;
  • Import and export functions new in Excel 2013 for ODF OpenFormula compatibility;
  • Symphony sidebar from AOO, which will be further integrated with the widget layout technique to make it dynamically resizeable.

LibreOffice 4.2, January 30, 2014 – LibreOffice 4.2 was the seventh major release, with a large number of performance and interoperability features especially appealing to power and enterprise users, and better integrated with Microsoft Windows.

LibreOffice 4.2 highlights:

  • Large code refactoring of Calc, giving major performance wins for big data (especially when calculating cell values, and importing large and complex XLSX spreadsheets);
  • Optional new formula interpreter enabling massive parallel calculation of formula cells using the GPU via OpenCL, optimized for the AMD HSA (Heterogeneous System Architecture);
  • Round-trip interoperability with Microsoft OOXML files, especially for DOCX, as well as for legacy RTF documents;
  • New import filters for Abiword and Apple Keynote documents;
  • Simplified custom install dialog to avoid potential mistakes, and ability to centrally manage and lock-down the configuration with Group Policy Objects via Active Directory (Windows specific);
  • Better integration with Windows 7 and 8, with thumbnails of open files grouped by application and a list of recent documents showing on the task bar;
  • New Expert Configuration window added to the Advanced Options tab;
  • New Start screen with a clean layout that improves the use of available space even on small screens and shows a preview of last documents;
  • Impress Remote Control for iOS – in addition to the app for Android – which allows visual management of presentation delivery on the laptop using the screen of an iPhone or iPad;
  • Windows (IAccessible2 based) accessibility feature developed by IBM;
  • New beautiful monochrome “flat” icon theme: Sifr.

LibreOffice 4.3, July 30, 2014 – LibreOffice 4.3 was the eighth major release, to a point of maturity that makes the software suitable for every kind of deployment, when backed by value added services by the growing ecosystem.

LibreOffice 4.3 highlights:

  • Interoperability: support of OOXML Strict, OOXML graphics improvements (DrawingML, theme fonts, preservation of drawing styles and attributes), embedding OOXML files inside another OOXML file, support of 30 new Excel formulas, support of MS Works files, and Mac legacy file formats;
  • Comments can now be printed in the document margin, formatted in a better way, and imported and exported in ODF, DOC, OOXML and RTF documents, for improved collaboration;
  • More intuitive behaviour of Calc spreadsheets, thanks to the smarter highlighting of formulas in cells, the display of the number of selected rows and columns in the status bar, and the ability to select text export format at user level;
  • Support of “monster” paragraphs exceeding 65.000 characters, thanks to the solution of an 11 years old OOo bug based on the modernization of the source code by developers.

LibreOffice 4.4, January 29, 2015 – LibreOffice 4.4 was the ninth major release, with a large number of user interface improvements, plus better interoperability with OOXML files and outstanding source code quality (based on Coverity Scan analysis).

LibreOffice 4.4 highlights:

  • Support of OpenGL transitions in Windows, with an implementation based on the new OpenGL framework;
  • Installation of free fonts Carlito and Caladea to replace proprietary Microsoft C-Fonts Calibri and Cambria, to get rid of font related issues while opening OOXML files;
  • Addition of several new default templates, designed by volunteers;
  • Visual editing of Impress master pages, to remove unwanted elements, adding or hiding a level to the outline numbering, and toggling bullets on or off;
  • Better Track Changes – with new buttons in the Track Changes toolbar – and AutoCorrect features in Writer;
  • Improved the import filters for Microsoft Visio, Microsoft Publisher, Microsoft Works and AbiWord, and added the import filters for Adobe Pagemaker, MacDraw and RagTime for Mac;
  • Digital signing of PDF files during the export process.

by Italo Vignoli at July 29, 2015 01:06 PM

July 28, 2015

Miklos Vajna

Mail merge embedding

If you ever used the mail merge wizard with a Calc data source, then you know how it worked in the past: you’ve got 3 files: the .odt mail template, the .ods data source and a .odb data source definition that defines how to access the .ods.

The target of this LHM-funded project was to get rid of the .odb file and just embed it into the .odt mail template. Why?

Here is the problem description from a user’s point of view: "When a mail merge document is being saved a separate database file is being automatically created. It links the Writer file to the spreadsheet (ODS, XLS, XLSX etc.) as data source. This additional 2kB ODB file confuses users, they might delete it without knowing to break the connection to the data source." An additional problem is that because the non-embedded data source definition is part of the user profile, you can’t just move the three files to an other machine, as .odb registration will be missing there.

If you are interested how this looks like, here is a demo (click on the image to see the video):

That’s it for now — as usual the commits are in master, so you can try this right now with a 5.1 daily build. :-)

July 28, 2015 07:34 AM

July 27, 2015

Markus Mohrhard

New fill property names in chart2

So a quick note for all users of the chart2 UNO API.

The data point objects support now the service similar to the other chart objects. This finally allows to access all chart2(not chart1) objects with the same fill property set names.

For the data points we now have the additional property names:

  • FillColor
  • FillTransparence
  • FillTransparenceGradientName
  • FillGradientName
  • FillGradientStepCount
  • FillHatchName

This change will be available in LibreOffice 5.1, currently scheduled for the beginning of February 2016.

I also filed an EasyHack to support FillTransparenceGradient, FillGradient, FillHatch and FillBitmap which would simplify handling of the fill properties even further.

by Markus Mohrhard at July 27, 2015 11:28 PM

July 23, 2015

Charles Schulz

Software Commons

An attentive reader of this blog made this private comment about software commons to me a few days ago: There are no real software commons, because you cannot compare these with actual, material commons such as air or water. One should treat software proprietary or free as in freedom, as existing in a legal context made of intellectual property laws such as copyrights, patents, trademarks and the like.

This comment is spiked my interest for two reasons. First, not a lot of people know about the theories around digital commons and second, this reader is actually right. Software is not just immaterial unlike water, ground or air (yes, air is material, just not like in the usual sense people think of the definition of material). Software does not exist in a vacuum – pardon the pun- it exists as a technical, legal, economical, philosophical, social and political reality. In other words, software relies on a series of existing norms, factors and agents such as laws, industries, capital, people to exist, to be distributed and developed. One does not just “find” software under a rock. Even downloading Free Software is possible because there’s a license attached to it that regulates the various conditions for the software to be downloaded and shared.

Does this mean I do not buy in the idea of the software commons? Quite the contrary, and readers of this blog may see from time to time that I’m a great supporter of the theories of Yochai Benkler. Benkler is the first author and scholar who has developed and popularized the theory of software commons, and probably the first to have coined them as commons. Predecessors obviously include Richard Stallman, Bruce Perens, Eric Raymond and several others. But Benkler was the first one to theorize them as such and a list of publications on his site may help provide more background to interested readers.

Software commons do however exist. My reader may be right – but I believe that his assessment is made on “positive” grounds, meaning that his frame of analysis does not attempt to question the existing norm. Hence his opinion is based “on reality” as one would say. Software commons are disruptive as a theory and as a vision. They do not deny the entire apparatus that makes software what it is today in our society. The theory acknowledges all this but goes beyond by highlighting other factors. For instance, software no longer requires millions of investment by teams of lead researchers to exist. Of course, this kind of investment exists today and may still happen but it is only one possible way to develop software. Depending on the business model, on the initial investment, on the particular strategy and inclination of its authors, software may indeed be expensive and sold as an on-the-shelf product. Or it may be sold as a subscription. Or as a service. Or monetized or valued differently, like Free and Open Source Software. The point of software commons is that creating software is possible without high barriers, as most of them are either artifical (legal constraints such as patents) or vanishing, like the high price for developing software. In the case of Free and Open Source Software, the rights and freedom attached to the software create a reality analogous to what commons were in medieval Europe: a shared resource that is created, maintained, grown and consumed by a community. This type of commons was not something that was ever thought as a black market or a side show: it would feed pretty much every peasant and its family. Commons had various legal standing and recognition: my point is that they were integrated inside a broader national, regional and economic framework.

In this sense, software commons make sense, and because these commons do not effectively exist in some village somewhere in Europe during the Middle Ages, but much rather all over the Internet, they are of primary importance for software and for the world we live in.

Several conclusions could be drawn from this. I will only keep two that matter for this post:

  • Commons cannot really create a product, but they create more or less finite materials that one can turn into a product
  • Commons rely on a community: without it they cannot exist and they must be run based on that notion. There cannot be any expectation as to who else may help or do something for you if you’re part of the community or at least a downstream user of the software.

The theory fo software commons is an important, yet often overlooked theory that bridges together software freedom, culture and economics. I can only urge anyone interested to read about them and make up your own mind.


by Charles at July 23, 2015 08:41 PM

Caolán McNamara

RHEL 6.7 upgrades LibreOffice from to

The freshly announced RHEL 6.7 upgrades LibreOffice from to RHEL 7.2 will upgrade from to Fedora 23 will have 5.0.0 in it.

by Caolán McNamara ( at July 23, 2015 09:37 AM

July 20, 2015

Michael Meeks

2015-07-20 Monday.

  • Mail chew, 1:1 with Kendy, Niall, lunch with H. team call. Mail chew, booked LibreOffice conference travel - thank God for RyanAir direct Stansted to Arhus; wow.

July 20, 2015 02:21 PM

Official TDF Blog

Behind the scenes at TDF: LibreOffice QA, so much accomplished so far this year!

Many of you are familiar with LibreOffice or one of its predecessors (StarOffice,, etc..), but you may not be aware of the immense amount of work that goes into the production of the software and the careful testing of each release. Although there are many different teams within the LibreOffice community who each perform essential roles in the collaborative development process, I don’t have enough space to cover them all today, so I’ll focus on the LibreOffice QA Team, a group of volunteers and employees of various companies around the world who work tirelessly to identify issues with LibreOffice on all platforms, including issues of interoperability, process, accessibility, and ease of use.

robinson-in-brusselsThe QA Team has accomplished much in the first quarter of this year, including significant reduction of UNCONFIRMED bug count, broad testing of our support for media on all major platforms, migration of our Bugzilla bug tracker to our own infrastructure, information and advice for our Annual Report, exhaustive work testing our LibreOffice Android port, and major improvements with our bibisect repositories. I’m sure I’ve omitted something from that list, but the sentence was getting long enough that I figured I should stop before I ran out of breath 😉

As of mid-December of last year, our UNCONFIRMED bug count was steadily dropping, but was still above 500. Throughout the holiday season and into January, the QA Team amazed everyone by lowering the number of bugs that needed triage to sub-400, then to 359, and even down below 280. Although our current count has stabilized around 350, we hope that with increased participation we can continue to chip away at the remaining pile.

Although most of the code for displaying images is cross-platform, LibreOffice uses different libraries on Win, Mac, and GNU/Linux for audio and video playback. With confusion about media playback a persistent issue, the QA Team created a set of wiki pages to help clarify the extent and quality of media support on all of our platforms, as well as provide user-friendly information about what codecs we recommend for use. Test support is ongoing, and we very much welcome additional test results or suggestions on how we can increase our playback support on proprietary platforms such as Windows and Mac OS X.

QA’s biggest project this year to date has been our Bugzilla Migration from to TDF (The Document Foundation) infrastructure. With careful planning and dry-runs tested over many weeks, our migration went very smoothly and had minimal interruption to the overall development of LibreOffice. With TDF control of Bugzilla in place, we’ve been able to make additional changes to the bug tracker, add new Components and Products for all of our current software projects, and even make small tweaks and add well-crafted messages to assist our users in reporting, updating, and interacting with our bugtracker, with the QA Team, and our developers. We will continue to make changes and improvements to Bugzilla throughout 2015, and are eager to hear from you about any bugs you’ve found in LibreOffice or suggestions you have for enhancement. Please file all bugs and enhancement requests at:

Throughout 2014, people continually asked me about running LibreOffice on Android, and by the beginning of 2015, I was excited to hear that our port was on its way! Upon the arrival of editing support (currently in beta) in the LibreOffice for Android app, QA has provided insightful feedback about various aspects of document use, feature support, and even special, edge-case problems that affect only a limited number of our users, but which we would like to eliminate (as with all bugs!) With volunteers stepping up to test on phones, tablets, and even laptops, the QA Team has provided extensive testing of our port of LibreOffice to Android, and has committed to keeping UNCONFIRMED bugs for Android in the single digits.

As in 2014, our bibisect repositories remain one of the best investigative tools of the QA Team to help identify the point at which regressions have been introduced into the codebase. With the ability to use binary search and pre-built binaries to quickly focus-in on a particular regression, we can use our time much more effectively, avoiding building and re-building the same versions. The more steps that QA can take to ferret-out the particular commit that caused a crash or changed program behavior, the faster that developers can create a fix and patch the code for the next version of LibreOffice.

Historically, our bibisect repositories have contained only a fraction of all commits to our mainline repository. Due to a confluence of factors, including server resources, software limitations, and hard disk sizes, it was most prudent for us to include only every 60th commit, allowing us to drastically narrow the search field to a much more manageable size. Armed with faster hardware and some careful optimization of non-relevant commits, superstar volunteer Matthew Francis has created a breed of “max” bibisect repositories that include all relevant commits in a single repository. These new repositories will give the QA Team the ability to delve much deeper into the particulars of a given regression, often identifying the particular developer who committed the change, allowing us much faster feedback and progressed towards a clean and consistent codebase.

Of course, QA works on many other tasks as well, including testing and triaging our Android Impress Remote, providing feedback about our websites and infra, helping the Document Liberation Project, and helping to identify new enhancements for LibreOffice. Although our primary focus is the LibreOffice suite, we do our best to keep track of everything else in the ecosystem, so that we can identify any potential problems before they affect many users.

With new platforms such as LibreOffice Online announced, and more interesting developments on the horizon, the members of the QA Team will definitely have more than enough work to keep them busy throughout 2015. If you’re interested in joining our efforts, or just curious about what’s involved in testing such a large project, drop by #libreoffice-qa on Freenode or say hello on our mailing list.

Cheers, Robinson

by Italo Vignoli at July 20, 2015 07:00 AM

July 19, 2015

Michael Meeks

2015-07-19 Sunday.

  • Off to NCC, tried to help the older kidlets understand Good Shepherds; home for a pizza lunch, got singing our quartet surprisingly well in harmony. Tried to replicate that with other music - not so easy.
  • Advanced slugging, read books, lazed, Yes Minister in the evening. Bed.

July 19, 2015 09:00 PM

Thorsten Behrens

FOSDEM 2015 and the OpenDocument Editor Devroom

This is the fourth (and last) in a series (1, 2, 3) of quick updates on travel and meetups I attended this year, for or because of LibreOffice / The Document Foundation. The next LibreOffice event you’ll definitely meet me will be the annual LibreOffice conference, this time in Aarhus, Denmark, on Sep. 23-25th.

As I keep saying every year, FOSDEM is really the FLOSS event to go for me. If I could attend only one, I’d be hard pressed to choose between LibOCon and FOSDEM – it is that great. Fortunately, that hard choice is not upon me. The TDF board therefore uses FOSDEM for one of the two in-person board meetings (the other one being during LibOCon) per year, and also tries to have a hackfest adjacent to it. Which is rather economic on travel, since lots of people are around already.

The LibreOffice project was again co-running the Open Document Editors devroom, and this time, we hit some true home runs. Especially for the mobile topics, the room was full to the gunwales. I was looking after our own small lightning talks track, with the following talks (slides linked):

  • Jos van den Oever about font embedding in ODF (slides/demo)
  • Asheesh Laroia about ODF support in EtherCalc (slides)
  • Your truly with the Nice Slides in Seconds! pitch (slides, /code)

Next to looking after LibreBaby and socializing with tons of people on the hallways, I attended only a few talks myself. Beyond our own dev room stuff, I recall a home-made GPS watch talk, and one about making your tests fail via randomized parameterization, which were both great.

The monday after, we had a full day of TDF board meetings (good progress there on annual budget planning, and a number of smaller items), and the UX hackfest in parallel. I used the opportunity to corner both Michael M. and Michael S. on ODF topics, with now hopefully much better mutual alignment. On the actual hacking front, I spent most of the time finishing up my markdown slide generator project, the result of which was mentioned on this blog already.

Pair programming, UX hackfest

Pair programming, UX hackfest

Filed under: LibreOffice Tagged: libreoffice, Pictures, travel

by thorstenb at July 19, 2015 08:55 PM

German LibreOffice meetup in Essen

This is the first in a series of quick updates on travel and meetups I attended this year, for or because of LibreOffice / The Document Foundation.

Thanks to Florian, the German LibreOffice community again had the opportunity to meet in person, to work and plan activities for the coming 12 months. As usual, this meetup took place in the Linux Hotel in Essen, a lovely location, and conveniently placed in the middle of Germany. The event took place a few weeks ago already, during the weekend June 19-21st. Bubli went first, since I could only join Saturday evening due to a conflicting family event.

The meeting was a blast, and with a virtual group like the LibreOffice community, a most welcome (and far too seldom) opportunity to connect in person. The agenda was packed, and a number of activities identified there got started already (IT & Business trade fair, updated flyers).

Martin and Italo, cooking

Martin and Italo, cooking

Sunday morning plenary session

Sunday morning plenary session

Was great to be there, and very encouraged by the newly-invigorated German LibreOffice community spirit! On that account, and if you’re able to read German: there’s a very nice and in-depth special edition of the iX computer magazine available, covering Office productivity in general and LibreOffice in particular.

Filed under: LibreOffice Tagged: libreoffice, Pictures, travel

by thorstenb at July 19, 2015 08:53 PM

LibreOffice Cambridge Hackfest 2015

This is the second in a series of quick updates on travel and meetups I attended this year, for or because of LibreOffice / The Document Foundation.

On invitation by Michael and his Collabora crowd, this year saw the first LibreOffice hackfest ever on English soil, conveniently located, and helpfully scheduled in parallel to the annual Cambridge beer festival.

Attendees and host were great, my attention this time evenly split between hacking, personal talks, and very well-organised and entertaining evening activities (see below). I even fixed a bug! :-)

Hacking in Cambridge Trying some real ale River Cam punting
Filed under: LibreOffice Tagged: libreoffice, Pictures, travel

by thorstenb at July 19, 2015 08:49 PM

LibreOffice Gran Canaria Hackfest 2015

This is the third in a series (1, 2) of quick updates on travel and meetups I attended this year, for or because of LibreOffice / The Document Foundation.

On March 19-20th already, the 2nd LibreOffice hackfest in Las Palmas, Gran Canaria took place at the ULPGC. Thanks to Fran Santana and the team from the university for hosting us, and my new company CIB for sponsoring food & drinks and diners – and a very significant infusion of people into the LibreOffice ecosystem!

Scheduling was perfect, we reportedly had the worst weather of the year thus far, so sitting down & hacking really was the only alternative. Accordingly, a number of things got done, bugs fixed, and stuff/folks bootstrapped.

There were a few encouraging contacts to local LibreOffice users, and very interesting conversations with students, some of them really new to the ideas, concepts & the way of life inside a FLOSS project.

Las Canteras, stormy 16 deg, centigrade Friendly signage Bubli and Benni Hacking in full swing Static code analysis explained

On a personal note, I’m very happy to report that travelling, and working, with a 1.5 year-old is very much possible in FLOSS land. Both university and hackfest attendees were lovely, understanding, and forgiving LibreBaby the occasional cries of joy (and anger). :-)

Filed under: LibreOffice Tagged: libreoffice, Pictures, travel

by thorstenb at July 19, 2015 02:35 AM

July 18, 2015

Michael Meeks

2015-07-18 Saturday.

  • Drove to Bruce & Anne's for a combined 80th and 45th birthday party celebration; a lovely time had by all, fine food, weather, wider family company etc. Babes played a quartet or two to celebrate. Chewed mail on the way home in the car, undid some data-loss, filed an easy-hack, etc.

July 18, 2015 09:00 PM

Björn Michaelsen

Blast from the Past: the Pimpl?

They sentenced me to twenty years of boredom
For trying to change the system from within
— Leonard Cohen, I’m your man, First we take Manhattan

Advance warning: This blog post talks about C++ coding style, and given the “expressiveness” (aka a severe infection with TimTowTdi) this is bound to contain significant amounts of bikeshedding, personal opinion/preference. As such, be invited to ignore all this as the ramblings of a raging lunatic.

Anyone who observed me spotting a Pimpl in code will know that I am not a fan of this idom. Its intend is to reduce build times by using a design pattern to move implementation details out of headers — a workaround for C++s misfeature of by default needing a recompile even for changing implementation details only without changing the public interface. Now I personally always thought a pure abstract base class to be a more “native” and less ugly way to tell this to the compiler. However, without real testing, such gut feelings are rarely good advisors in a complex language like C++.

So I did some testing on the real life performance of a pure abstract base class vs. a pimpl (each of course in a different compilation unit to prevent the compiler to optimize away what we want to measure) — and for reference, a class with functions that can be completely inlined. These are the three test implementations, inline:

-- header (hxx) --
class InlineClass final
		InlineClass(int nFirst, int nSecond)
			: m_nFirst(nFirst), m_nSecond(nSecond), m_nResult(0)
		void Add()
			{ m_nResult = m_nFirst + m_nSecond; };
		int GetResult() const
			{ return m_nResult; };
		const int m_nFirst;
		const int m_nSecond;
		int m_nResult;

Pimpl, as suggested by Effective Modern C++ when using C++11, but not C++14:

-- header (hxx) --
#include <memory>
class PimplClass final
		PimplClass(int nFirst, int nSecond);
		void Add();
		int GetResult() const;
		struct Impl;
		std::unique_ptr<Impl> m_pImpl;
-- implementation (cxx) --
#include "pimpl.hxx"
struct PimplClass::Impl
	Impl(int nFirst, int nSecond)
		: m_nFirst(nFirst), m_nSecond(nSecond), m_nResult(0)
	const int m_nFirst;
	const int m_nSecond;
	int m_nResult;
PimplClass::PimplClass(int nFirst, int nSecond)
	: m_pImpl(std::unique_ptr<Impl>(new Impl(nFirst, nSecond)))
void PimplClass::Add()
	{ m_pImpl->m_nResult = m_pImpl->m_nFirst + m_pImpl->m_nSecond; }
int PimplClass::GetResult() const
	{ return m_pImpl->m_nResult; }

Pure abstract base class:

-- header (hxx) --
#include <memory>
struct AbcClass
	static std::shared_ptr<AbcClass> Create(int nFirst, int nSecond);
	virtual ~AbcClass() {};
	virtual void Add() =0;
	virtual int GetResult() const =0;
-- implementation (cxx) --
#include "abc.hxx"
#include <memory>
struct AbcClassImpl final : public AbcClass
	AbcClassImpl(int nFirst, int nSecond)
		: m_nFirst(nFirst), m_nSecond(nSecond)
	virtual void Add() override
		{ m_nResult = m_nFirst + m_nSecond; };
	virtual int GetResult() const override
		{ return m_nResult; };
	const int m_nFirst;
	const int m_nSecond;
	int m_nResult;
std::shared_ptr<AbcClass> AbcClass::Create(int nFirst, int nSecond)
	{ return std::shared_ptr<AbcClass>(new AbcClassImpl(nFirst, nSecond)); }

Comparing these we find:

implementation lines added for GetResult() source entropy added source entropy for GetResult() runtime
inline 2 187 17 100%
Pimpl 3 316 26 168% (174%)
pure ABC 3 295 (273) 19 (16) 158%

So the abstract base class has less complex source code (entropy)1, needs less additional entropy to expand and is still faster in the end on common hardware (Intel i5-4200U) with common compiler optimization switches (-O2)2.

Additionally, in a non-trivial code base you might actually need to use virtual functions for your implementation anyway as you are deriving from or implementing an existing interface. In the Pimpl case, this means using two indirections (resolving the virtual function and then resolving the m_pImpl pointer in that function on top of that). In the abstract base class case thats not happening and in addition, it means that you can spare yourself the pure virtual declarations in the *.hxx (the virtual ... =0 ones), as those are already declared in the class derived from. In LibreOffice, this is true for any class implementing UNO interfaces. So the first numbers are actually biased against an abstract base class for real world code bases — the numbers in parathesis show the results when an interface is already defined elsewhere.

So unless the synthetic example used here is some kind of weird cornercase, this suggests abstract base classes being the better alternative over a Pimpl once the class goes beyond being a plain value type with completely inlineable accessor member functions.

Thanks for bearing with me on this rant about one of my personal pet peeves here!

1 entropy is measured as cat abc.[hc]xx|gzip|wc -c or cat pimpl.[hc]xx|sed -e 's/Pimpl/Abc/g'|gzip|wc -c.
2 Here is the code run for that comparision:

constexpr int repeats = 100000;

int pimplrun(long count)
//int abcrun(long count)
        std::vector< std::shared_ptr<PimplClass /* AbcClass */ > > vInstances;
                vInstances.emplace_back(std::make_shared<PimplClass>(4711, 4711));
                //vInstances.emplace_back(AbcClass::Create(4711, 4711));
        int result(0);
        count = vInstances.size();
                for(auto pInstance : vInstances)
                        result += pInstance->GetResult();
        return result;

Instances are stored in shared pointers as anything that a Pimpl is considered for would be “heavy” enough to be handled by reference instead of by value.

Update 1: Out of curiosity, I looked a bit deeper at this with callgrind. This is what I found for running the above (with 1000 repeats) and --cache-sim=yes:

I1 cache: 32768 B, 64 B, 8-way
D1 cache: 32768 B, 64 B, 8-way
LL cache: 3145728 B, 64 B, 12-way

event inline ABC Pimpl
Ir 23,356,163 38,652,092 38,620,878
Dr 5,066,041 14,109,098 12,107,992
Dw 3,060,033 5,094,790 5,099,991
I1ir 34 127 29
D1mr 499,952 253,006 999,013
D1mw 501,636 998,312 500,097
ILmr 28 126 24
DLmr 2 845 0
DLmw 0 1,285 250

I dont know exactly what to derive from that, but what is clear is that purely by instruction counts Ir this can not be explained. So you need --cache-sim=yes which gives the additional event counts. Actually Pimpl looks slightly better on most stats, so as it is slower in real life, the cache misses on the first level data cache D1mr might have quite an impact?

Update 2: This post made it to reddit, so I looked into some of the feedback from there. A common suggestion was to use for(auto& pInstance : vInstances) instead of for(auto pInstance : vInstances) in the benchmarking function. This had no significant impact on walltime measurements nor made it callgrind event counts show some clearer picture. I also played around with the order of linked objects to see if it has any impact (via cache locality etc.). While runtime measurements fluctuated quite a bit (even when using the same binary), the order was always the same: inlining quickest, then abstract base class and pimpl slowest.

by bmichaelsen at July 18, 2015 07:16 AM

July 17, 2015

Michael Meeks

2015-07-17 Friday.

  • Up early; train into Cambridge not running, struck by lightning overnight or somesuch. Drove 5x stranded others into Cambridge. Battled with awful Windows machines & hardware.
  • Meeting with Philippe & Tracie; quick lunch, back to battling hardware. Unbelievably broken Windows 7 - blue-screen and auto-re-booting with a totally generic crash-dump despite a full Acer BIOS & Intel driver upgrade, endless disk manager fiddling etc.. Attempted to install Windows 8 - after struggling to disable the horrendous anti-Linux 'secure-boot' foo - then external USB CD drive refused to play with the BIOS; irritating. Attempted to debug other thermal issues fruitlessly.
  • Home via picking up kids, relaxed watched Yes Minister with them; bit more hackery before bed.

July 17, 2015 09:00 PM

Caolán McNamara

LibreOffice on wayland

Hacked LibreOffice a bit more today towards wayland support via the gtk3 vclplug. Good news is that it launches, displays and you can interact with it mostly as expected.

Under F22 with a gnome-on-wayland session, GDK_BACKEND=wayland ./soffice.bin gives me...

Which is encouraging as this morning I had no window contents at all. Downside is that I can't resize the window and the menubar is displayed behind the title bar. Maybe a client side decoration issue.

by Caolán McNamara ( at July 17, 2015 02:17 PM

Official TDF Blog

Open Document Format (ODF) 1.2 published as International Standard 26300:2015 by ISO/IEC

odf12Berlin, July 17, 2015 – The Open Document Format for Office Applications (ODF) Version 1.2, the native file format of LibreOffice and many other applications, has been published as International Standard 26300:2015 by ISO/IEC. ODF defines a technical schema for office documents including text documents, spreadsheets, charts and graphical documents like drawings or presentations.

“ODF 1.2 is the native file format of LibreOffice. Today, ODF is the best choice for interoperability, because it is widely adopted by applications, and is respected by applications in every area”, says Thorsten Behrens, Chairman of The Document Foundation. “ODF makes interoperability a reality, and transforms the use of proprietary document formats into a relic of the past. In the future, people will tell stories about incompatible document formats between two releases of proprietary office suites, as a bygone problem”.

ODF is developed by the OASIS consortium. The current version of the standard was published in 2011, and then was submitted to ISO/IEC in 2014. The standard is available – in three parts: schema, formula definition and packages – from the repository of Publicly Available Standards as a free download from the following links:

  1. Schema:

  2. Formula Definition:

  3. Packages:

The standard is also available from the OASIS ODF TC website, from the page at the following address:

ODF 1.2 is supported by all the leading office suites, and by a large number of other applications. It has been adopted by the UK Cabinet Office as the reference for all documents exchanged with the UK Government, and is currently proposed as the reference standard by the Référentiel Général d’Interopérabilité 1.9.9 of the French Government. In addition, ODF 1.2 has been adopted by many European public administrations. In Brasil, ODF is part of the Progranma do Governo Eletrônico (e-PING) and can be accessed at this link:

by Italo Vignoli at July 17, 2015 08:37 AM

July 16, 2015

Michael Meeks

2015-07-16 Thursday.

  • Mail chew, ESC call, Advisory Board call, worked on financials, misc. ranking bits.

July 16, 2015 09:00 PM

>Szymon Kłos

GSoC 15 - Remote Files Dialog

The midterm passed some time ago, I'm near finishing implementation of the first part of my Google Summer of Code project. This is a good moment to present results of my work.

I'm working on improving user experience while using remote services in LibreOffice. The main part of this task is implementation of simple dialog used to exploring online document storages. I must also simplify process of creating new ones. I based my work on mockups from:

Connecting to the CMISs in LibreOffice was possible, but not visible to the average user. It was accessible only in custom LO file dialog which is turned off by default. I've created new remote file picker which can be opened from start center and toolbars.

1. Start Center with new entry, new dialog
2. Changes in Writer's toolbar: new "Open Remote" button and dropdown menu for "Save As" button
3. "Open remote file" entry below recent files

Remote Files Dialog layout
4. Remote Files Dialog
5. Split button with possible actions
6. Listbox with preconfigured services (type + name)
7. Breadcrumb with very long path, deeper folder (New Folder) was visited recently

On the top of windows we have section for manage connections. On the left side: listbox with preconfigured services. On the right side is placed split button which lets us add, edit or delete a service.
Below those controls we can see breadcrumb. The breadcumb could work in two modes: showing only current path, or second: showing also links to the deeper folders which we visited recently (for example when we went level up, this mode is set by default). When path is too long, on the beginning '…' is shown.
On the left side, dialog contains folder tree. When user opens new directory, automaticly proper node is selected. The dialog also contains standard file picker controls: file list, filter listbox and file name field.

Adding new service
The first field which user should fill is the type of service. Types are organized and sorted user-centric (apps, connections, protocols).

8. Organization of service types

Dialog’s complexity depends on the connection type:

9. Most simple: Google Drive
10. WebDAV
11. CMIS
Editing service
In the edit window user can change all data except type of service.

12. Edit window
When user selects an entry from services dropdown, login dialog appears. User name is filled by default.
Password could be remembered for ever if user will check the checkbox. In one session it is always stored, user don't have to retype it again before closing LO. Before my changes, when user typed wrong password, it was stored too and was impossible to change. I fixed this bug.

13. Login dialog

TODO / topics for discuss
  • change expanded folder icon in the folder tree
  • "New folder" button in the save mode?
  • change of "Open remote" icon in a toolbar ? (now is the same as regular open icon)
  • "Open remote" entry below recent files and in the toolbar are both needed?
  • should a delete button be in the edit window?
  • In which mode should the breadcrumb work?

by Szymon Kłos ( at July 16, 2015 11:21 AM

July 15, 2015

>Marius Popa Adrian

Update firebird to version 2.5.4 is applied into LibreOffice master

There was a small issue with tinderbox and was reverted and then re-applied to master. Rebuilding of indexes function is now removed from master (Using firebird backup format for .odb there is no need for rebuild indexes).

by Adrian Marius Popa ( at July 15, 2015 04:55 PM

Building Firebird 3.0 Client / Embedded Beta2 for Android

Download and install ndk  unzip in your home install firebird build dependencies sudo apt-get build-dep firebird2.5 sudo apt-get install libtommath-dev export NDK=$HOME/android-ndk-r10e echo $NDK get the Firebird 3.0 source code git clone cd core ./ --with-cross-build=android.arm --without-editline --enable-binreloc make There was a

by Adrian Marius Popa ( at July 15, 2015 03:10 PM

Official TDF Blog

TDF Freelance Job Opening (#201507-01) – Development Mentoring Lead

The Document Foundation (TDF), the charitable entity behind the world’s leading free office suite LibreOffice, seeks a

Development Mentoring Lead

to start work as soon as possible. The role, which is scheduled for 20 hours a week, includes amongst other items:

  • Helping new contributors to get started with LibreOffice code including:
    • building LibreOffice
    • getting started with patch submittal on gerrit
    • patrol bugzilla, github and mailing lists for patches uploaded there and help author to upload to gerrit proper
    • clarifying beginner tasks (Easy Hacks) and connecting beginners with domain experts
    • manage, update and watch the list of beginner tasks
    • select attractive beginner tasks and promote, share and advertise those
    • together with other TDF staff, manage quick access to TDF cloud resources for developers (see: Anytime Builder VMs for Developers and Using a VM)
    • Talking to people
      • make the first time contributors feel they are awesome
      • get them to IRC ASAP
      • watch them, ping them, ask them what’s the next thing they want to
      • work on, help them to choose if they are unsure
  • ensure changes are not lingering too long (2 weeks) on gerrit unreviewed by reviewing them or finding someone to review them
  • organizing, announcing and leading regular events for onboarding beginners (virtual Hackfests)
  • updating, steamlining and maintaining developer documentation
  • broadening developer resources with podcasts or screencasts for newcomers
  • reporting and blogging about interesting developments on LibreOffice code to attract new contributors
  • regularly check back with the existing volunteer developer base:
    • to identify and clear out stumbling blocks
    • to learn about reasons why volunteers move on
  • encourage contributors with basic experience to move on from EasyHacks to more challenging and interesting tasks
  • coordinate with QA, design and other groups in the LibreOffice community
  • put outstanding volunteer contributions into the limelight
  • take part in weekly Engineering Steering Committee meetings
  • reach out to other OSS communities (desktop environments, programming languages and frameworks, databases, IDEs etc.) and find opportunities for collaboration, integration and shared marketing

The role requires the following:

  • C++ coding experience
  • basic LibreOffice development know-how
  • excellent communication skills

Previous experience with such tasks is highly welcome, so is using free software for creation of media. Speaking and writing English fluently is a mandatory requirement.

The work time during the day is flexible, apart from some fixed times when availability is required (e.g. during meetings, which usually take place at 1400 or 1500 UTC once per week).

TDF welcomes applications from all suitably qualified persons regardless of their race, sex, disability, religion/belief, sexual orientation or age.

As always, TDF will give some preference to individuals who have previously shown a commitment to TDF, including but not limited to members of TDF. Not being a member, or never having contributed before, does not exclude any applicants from consideration.

The job is offered on a freelance basis. Work happens from the applicant’s home office, which can be located anywhere in the world.

TDF is looking forward to receiving your applications, including curriculum vitae, your financial expectations, and the earliest date of your availability, via e-mail to Florian Effenberger at no later than August 15, 2015. You can encrypt your message via PGP/GnuPG.

If you haven’t received feedback by September 15, 2015 your application could not be considered.

by Florian Effenberger at July 15, 2015 02:53 PM

July 13, 2015

Florian Reisinger

Java SI-GUI download tab finished


Just seconds ago I finished the download tab. sorry, that it is in Germann but I guess you see the progress ;)

Java SI-GUI download tab finished

Tagged: Java, JAVA-SI-GUI, UI

by Florian Reisinger at July 13, 2015 08:14 AM

July 12, 2015

Italo Vignoli

Essen in Essen

In mid June, I have been invited to attend the meeting of the German community at Linux Hotel in Essen, to tell about the progress of Associazione LibreItalia and the Italian community at large (including the Google+ community).

While trying to improve my understanding of German (and Bavarian), I have shown a very simple presentation outlining the history and the evolution of the Italian community from almost zero (the old OOo community has “disappeared”, leaving Valter Mura, Luca Daghino and myself almost alone for almost two years) to over 3,000 loose members and over 200 supporters in just over two years.

<iframe allowfullscreen="allowfullscreen" frameborder="0" height="600" marginheight="0" marginwidth="0" scrolling="no" src="" style="border: 1px solid #CCC; border-width: 1px; margin-bottom: 5px; max-width: 100%;" width="750"> </iframe>

In addition, I have organized the usual “pasta hacking” session, with an additional challenge: creating a palatable “cacio e pepe” (pecorino cheese + black pepper) based on ingredients from Germany.
Here is the recipee of “frodev cacio e pepe” (as a tribute to the German community) for four people:
  • 500 grams of pasta (I have used fusilli, but any other simple shape like penne or spaghetti would fit)
  • 50 grams of Parmesan (either grated or cut into tiny pieces, as otherwise it does not melt)
  • 50 grams of Edamer (or any other soft cheese which melts easily, avoiding strong flavours like Emmenthaler)
  • 50 grams of Gorgonzola (which is supposed to provide the zest of Pecorino in the original “cacio e pepe”)
  • salt (I know it is a lost battle, because you can find it only in Italy, but IT SHOULD be raw – i.e. crystals – and not table salt)
  • black pepper
  • one large pot
  • one large pan
  • two wooden spoons

Italo looking at the boiling pot.

Put the Edamer in the pan on a very soft fire, until it melts. Add Gorgonzola, until it melts. Use a wooden spoon to avoid that they conglomerate in a single blob (keep the fire as low as possible, and spread the cheese all over the pan).

Fill in the pot with cold water and put on high fire until it starts boiling. Add a large spoon of raw salt or two spoons of table salt until it starts boiling again. Add all pasta in the pot, until it starts boiling again, and from that time calculate at least 7 minutes (when you taste it, it should still “feel” under your teeth). Before draining the pasta, take five large spoons of boiling water: add two spoons to the melted cheese, and save three spoons in a bowl for later use.

Drain the pasta, put the melted cheese into the pot and add the drained pasta and the Parmesan on top. Put the pot back on a gentle fire. Using a wooden spoon, mix pasta and cheese with a circular movement from bottom to top (in order to bring up the melted cheese and down the Parmesan: the result will be the pasta “mantecata” – or drenched – with cheese). Add the boiling water that you have saved in the bowl to ease the “mantecatura” process.

Once the pasta is covered with cheese, add black pepper to your taste (“cacio e pepe” is not supposed to be spicy, but just tasty).


by italovignoli at July 12, 2015 01:11 PM

July 10, 2015

Florian Reisinger



Started to develop the UI today :) That is todays work. First part is to have all the settings I need and a UI for that, then download, then manager and then installer. Hope you like it ;)

PS: The UI (should theoretically [REFERENCE] be style-able via CSS). Hope it does not look to awful yet ;)

<figure class="wp-caption aligncenter" data-shortcode="caption" id="attachment_1075" style="width: 616px;">UnbenanntJava SI-GUI UI<figcaption class="wp-caption-text">Todays work</figcaption></figure>
Tagged: Java, SI-GUI, UI

by Florian Reisinger at July 10, 2015 05:59 PM

Björn Michaelsen

Going mobile

When I’m drivin’ free, the world’s my home
When I’m mobile

— The Who, Who’s Next, Going Mobile

As you might have noticed, work has started to integrate LibreOffice with the document viewer of Ubuntu core apps. Here is a screenshot of how the current code renders documents on a mobile device:

Ubuntu core apps: LibreOffice and document viewer

Kudos for integrating this go entirely to Stefano Verzegnassi, all I did was providing a tiny piece of example code. It loads a document and saves a rendered version of the document to a PNG file. The relevant part of that piece of C++ code is small enough to fit in one picture shown here, including build instructions et al., showing how easy it is to use LibreOfficeKit from outside LibreOffice now:

 libreoffice2png source code

Thus the doc viewer was quickly integrated with LibreOffice in a basic way. This proof of concept isnt finished however: It just renders the all the document in one buffer. For small documents, this is reasonable, for bigger documents, tiled rendering — which LibreOfficeKit nicely supports from the API by allowing you to render any part of a document in a buffer — needs to be implemented on the clientside. The code for this can be found on launchpad, so if you are just curious how this works you are invited to have a look. If you are interested in helping out with moving this forward towards a nice all-around document viewer reading and rendering everything LibreOffice can, you are most welcome!

Update: A picture says more than a thousand words, but a video tells a whole story. Stefano created this awesome video, which you shouldnt miss:

<iframe allowfullscreen="true" class="youtube-player" frameborder="0" height="446" src=";rel=1&amp;fs=1&amp;showsearch=0&amp;showinfo=1&amp;iv_load_policy=1&amp;wmode=transparent" type="text/html" width="739"></iframe>

by bmichaelsen at July 10, 2015 02:58 PM

Caolán McNamara

gtk auto-mnemonics support

Thanks to Simon Long over at raspberrypi, we now have auto-mnemonics support in LibreOffice under gtk3 and gtk2. So the underlines appear in dialogs when alt is pressed and disappear when released, while menus activated from the keyboard show underlines while those activated from the mouse don't. Gives a more native flavour to the UI. Only in 5.1 for the moment.

by Caolán McNamara ( at July 10, 2015 08:16 AM

July 08, 2015

Leif Lodahl

Something about styles in LibreOffice

Styles are much more than defining the look and feel of text in a paragraph. Its almost everything about how paragraphs behave in the context. A Paragraph style for example defines how words are hyphenated and in what language the text in the paragraph should be spell checked.Remember also to take advantage of the benefits of Page styles and Frame styles. Page styles are mostly used to setup the

by Leif Lodahl ( at July 08, 2015 05:44 PM

July 05, 2015

Charles Schulz

LibreOffice 5, a foundation for the future

The release of the next major version of LibreOffice, the 5.0, is approaching fast. In several ways this is an unique release and I’d like to explain a bit why.
LibreOffice matters as much for its features as it does as a platform. Every major release of our office suite tends to be packed with features, listed in detail in our release note on the wiki, or in an abridged form on the website.
In order to convey the strongest point of each release, the LibreOffice community asks its active members interested in marketing what, according to them, should be the most saliant features of the release.

This simplification effort hides the complexity and the breadth of features packed in the release but a good way to really see what’s shipped is in browsing LibreOffice_external_logo_200pxthe detailed release notes.
With LibreOffice 5.0, the complexity does not go away; if anything, it increases. I will thus try to summarize why LibreOffice 5 matters so much in just a few words.

Features and Style

When it comes to features, LibreOffice 5 offers a broad range of new features and improvements. It also displays quite many changes and improvements in the user interface that will be visible to the users.

I won’t go over the full list that is readily accessible here. But if I were to point out the most important and most worked on set of functionalities, I’d pick Calc. LibreOffice has seen some major work around Calc since the 4.0. Essentally, the engine has been rewritten in the 4.0 and many changes have happened all along the 4.X series.
With the 5.0 the changes are not that drastic but a mix of improvements in stability, new formulae, cell management and performance have led to the release of an impressive spreadsheet application.
Other improvements may of course vary in importance according to this or that particular set of users; Writer’s enhancement of tables may be quite popular for instance.

The other set of novelties however is more about the user interface and the way LibreOffice is used. LibreOffice 5 comes with some very visible changes, such as the inclusion of the Breeze iconset, redesigned menus all across the suite and of course various improvements such as the ones made on the colour selection.
The Start Center has changed as well; other major improvements will be visible in the way menus have been rethought for Impress and Draw. People who like the sidebar will be happy to see that the work on enriching its use and features is ongoing and is visible in the new release. For me and quite many others I think, one of the most welcome addition is the ability to visually check what every style does inside a text document.
450px-LO_4.4-5.0_Sidebar_StyleThis will help save a lot of time when you don’t know or remember what a particular style does to a specific header once applied to the document opened in Writer for instance.
All in all, LibreOffice 5 has lots under the hood as well as a lot to show in this release. But as I wrote at the beginning of this post, this is actually only a part of what this release offers.

A platform and a foundation

LibreOffice 5 will be released at a quite interesting time. In terms of development, the release comes at a time where major efforts are invested on the Android clients as well as on the cloud version of LibreOffice.

Few people realize that the code of the “cloud version” and any mobile client, viewer or editor, is actually genuine LibreOffice code: what you use on your desktop, Windows, Linux or OSX, is used in a different configuration for Android and will be powering the cloud version in the near future.
Because of this, one should think of LibreOffice 5 as a platform that will power several distinct versions of LibreOffice for different form factors, and a platform that can be extended for quite some time.
The transformation of the LibreOffice code base into a software platform is of strategic importance for the Document Foundation and dare I say, for Free and Open Source Software. Of course, this transformation does not come free of charge: the amount of work and effort put in by developers for this release is truly astounding: we should thank them and a good way to do so is to remember that they need to eat just like anybody else: You can donate to the Document Foundation or contract any developer certified by the Document Foundation for support, services and expertise.

In the meantime, this is a very special and exciting release -stay tuned for more surprizes- and I hope you will be excited too!

by Charles at July 05, 2015 10:38 AM

Caolán McNamara

crash testing, 1 export failure, 0 import failures

I graphed our crashtesting improvement on importing documents a while back, and mentioned that while import failures had improved dramatically that the export figures weren't as shiny. But there's been some great progress there too, especially with the work mstahl has been putting in, so today the crashtesting has reported effectively three consecrative 0 import failures and with the first drop to 1 reported export failure (an assert) so I present the graph of export failure progress

 And an updated import crashtesting graph.

This is on our corpus of 76000+ documents sucked down from various bugzillas and other sources.

by Caolán McNamara ( at July 05, 2015 10:37 AM

July 03, 2015

>Pranav Kant

FUDCon Pune 2015

This year FUDCon, held at Pune, last week was my first ever FUDCon, and my first steps in to awesome Fedora community. This was also the first conference where I delivered a full-fledged talk about ‘Automating UI testing’ presenting some of the work I did in automating the UI tests for gnome-photos. The talk was more about how they can make their UI tests automated.

I also talked about ‘Integrating LibreOffice with your applications’ in a barcamp talk sharing and discussing ideas with few people, presenting what I am up to in this project in LibreOffice, and how they can take advantage by either directly using the new, evolving LibreOfficeKit API, or by using the new Gtk3 widget in their applications. I talked about how I am acheiving this using tiled rendering, and how I (with Michael and Miklos) am planning to enhance this in future by incoporating the support for opengl, efficient tile management, and multi-threaded support.

Besides that, it was a wonderful opportunity for me to meet new people contributing to Fedora project, and sharing ideas with them. I now have a better idea of how I can contribute more to Fedora, and feel motivated enough to continue my contributions. I have made quite a few friends who, I think, would be happy to help me if I plan to get started with any of the Fedora teams, and I do plan to involve myself in few more interesting teams in future sparing time out of my regular work.

Last but not the least, I would like to thank all the organizers for making this event possible. They have been working hard for months, and have had many sleepless nights just to make sure everything remains on track. I would also like to thank them for sponsoring my stay and travel, without which I would not have been able to attend the event.

July 03, 2015 12:00 AM

July 02, 2015

>Marius Popa Adrian

JDK issues on OSX , ran the tests without Java

To run all the dbaccess tests On OSX I had to install jre 6 then jdk/jre 8 but still dbaccess tests wouldn't run java popup still appeared even if the java -version showed the proper 8 version , so for the moment i have disabled the java tests ./ --without-java Update: Tests are finished and Firebird 2.5.4 update patch on gerrit is up for review

by Adrian Marius Popa ( at July 02, 2015 04:20 PM

Matteo Campanelli

Text Chaining in Draw - Results at Midterm

I made a screencast of the current prototype.
You can watch it here on Youtube.

Some of the major current limitations:

  • Lack of support for Undo/Redo
  • basic cursor motion when editing presents issues (e.g. cursor anooyingly repositions itself at beginning of box while editing - this is why, in the video above, I use pasting instead of inserting single characters).
  • advanced cursor motion among boxes at appropriate user input (e.g. when cursor gets past end of text in a box it could reappear in the next one)

by matteocam at July 02, 2015 03:59 PM

User Prompt

Libreoffice Human Interface Guidelines: Context Menu and Sidebar

We started the work on Libreoffice human interface guidelines (HIG) this year and published so far two parts: the foundation with statements about the vision, persona, and our manifesto and guidelines for the menu bar and tool bar. In this posting we put the context menu and sidebar up for discussion.

Context Menus

A context menu is a list of functions or options (respectively menu items) available to users in the current context. Menus are normally hidden from view (except menu bars) and drop down when users right-click an object or window region that supports a context menu.

Context menus basically intends to give alternative access to modify the focused element and to access context specific functions. They are an efficient means of conserving screen space.

Both persona will refer to the context menu but Eve might individualize her app in order to heavily rely on the context menu.


  • Use context menus for well-known and frequently used functions only.
  • Provide items in the context menu for modification purpose and context sensitive functions but not to insert elements or for view options, for instance.
  • Do not use context menus as the only way to start a function. Always have a redundant access.
  • Always provide a context menu for inherent functions. For instance, functions that have only keyboard access like ‘Copy’ and ‘Paste’ for textual controls, or standard functions like ‘Forward’ and ‘Backward in case of navigation. Disable those functions when not applicable.


  • Do not put more than 10 items within the default level of a menu added by not more than 5 context sensitive items after right clicking an element. Add separators between logical groups within a menu. Organize the menu items into groups of seven or fewer strongly related items.
  • Sort context menus so that
    • More important contextual entries groups appear at the top (e.g. table features before character/paragraph/page item section)
    • Entries requiring little to no additional user input (non-dialog entries) should be at the top of the group
    • Same functions have the same position (copy/paste is always on top).
  • Avoid combining actions (such as delete, insert, print) and attributes (for instance bold formatting, double spacing, center alignment) in the same group.
  • Features available in the toolbar should ideally not be available in the context menu, except for special cases (e.g. clipboard functions).


  • Do not change labels of menu items dynamically.
  • Indicate a function that needs additional information (including a confirmation) by adding an ellipsis at the end of the label (e.g. Save as…).
  • Use a verb-action combination for the label (e.g. Show ruler, Format image) but adopt this rule for localization.
  • Standardize the verbs used – Show and Hide, Enable and Disable. Refer to the LO [terminology] (remark: It would be good to include advices from the l10n and i18n team into the HIG. Apache OpenOffice has a pretty good UI Text Style Guide that could be the basis for us too.)


A sidebar is a graphical presentation of context-sensitive properties optimized for fast access. Typically, the sidebar contains panes with simple controls that provide quick and task-oriented access to the most frequently changed properties such as font size, line spacing, paragraph alignment, etc. The primary reason of the sidebar is an enhancement to the toolbar in the way that it deals with properties instead of functions.

AOO-SidebarNamesLibreOffice sidebar contains of a tab bar that offers access to panes each with a titlebar and a deck that containing a variable number of sections each with a content panel title and content panel. Panes are switched via tab buttons that should appear horizontally at the top of the sidebar when it is open rather than the right side. The tab buttons appear vertically on the right side when the sidebar pane is hidden.

The primary user of the sidebar is Benjamin, so the panes have to provide a simple but comprehensive overview of and access to properties.


  • Provide access to properties in sidebars. Select the most relevant features from dialogs in order to have fast access.
  • Define a fixed size for the sidebar width. Do not make the width depending on the selected deck. This eliminates the problem of having tabs that can be smaller than others and when switching to other tabs causing cropping of content.
  • Avoid vertical scrolling by having content fit into pane height (in respect to LibreOffice’ default resolution of 1280×768 pixels). In the case of too many options, consider splitting them into different panes.

Organization of Content

  • Prefer controls where the setting is just one click away (e.g. list box rather than drop down or direct access to the recently used colors in addition to the widget).
  • Prefer graphical widgets in favor of controls that require the input of the exact value (e.g. an image’s transparency with discrete steps via sliders).
  • Hide advanced features by default but offer easy means to access to these properties within the sidebar.
  • Consider to introduce presets of properties comprising of the most relevant settings. For instance, one page margins with all four values.

Appearance and Text

  • Use a grid layout with one or two columns.
  • Align elements to fit the pane width. Left align labels and place the input control right of the (localized) label. Do not place the label above the input control.
  • Label control groups in the sidebar, preferably when the section name is not clear enough or when many controls are included.
  • Use indentation to indicate the organization for labeled sections.


In the first presentation to team members the question came up whether we talk about sidebars in general or just the right sidebar (see as well the Apache OpenOffice wiki on sidebar how-to). Basically the HIG should be generic enough to address all embodiments of a certain type of control or a pattern. On the other hand, Libreoffice has pushed the right sidebar forward to some very specific control with a unique workflow. Perhaps it makes sense to rename it therefore, e.g. Properties Board. What do you think?

Please read the proposed guidelines carefully. It should reflect the current status and drive the future development on a generic level. That means we predefine for instance the fix size, but the idea to have more than one sidebar each of them with a different layout, e.g. a large one with the full feature set and a smaller one with a limited set plus space-saving controls, is not part of the HIG. The same is true for the advice to have easy access by default and advanced on demand. That’s not what we have right now but it is the intention for future UI design.

We are looking forward your comments.

by Heiko Tietze at July 02, 2015 08:41 AM

July 01, 2015

Andreas Mantke

Extensions-Test-Website updated with Changes

I updated the new LibreOffice extensions test website with my last commits of the Plone add-on today. This commits contains some fixes/changes for the template of the centre page. I also uploaded an improved Diazo theming product. The new test website is at:

by andreasma at July 01, 2015 07:45 PM

Mihai Varga

LibreOffice SharePoint 2010/2013 connection

Good news! - part 2. As GSoC’s final deadline draws near the SharePoint 2010/2013 connection is complete. In addition to the OneDrive binding that I presented in the previous post, this new connection provides features such as checkIncheckOut and of course, file versioning.

by Mihai Varga ( at July 01, 2015 04:18 PM

LibreOffice OneDrive connection

Good news everyone ! The OneDrive connection in libcmis is ready. Due to this new feature users can now create and edit files in their OneDrive storage directly from LibreOffice. As soon as the SharePoint connection is ready and functional and hopefully by the time the GSoC ends, this new useful feature will be available and patched into the new version of libcmis. This means that roughly in a month's time users will be able to benefit of it.
Here is a short demo of how the binding works. It basically implies no more than opening the document from your own machine. It gives the user the security and flexibility of a cloud service, while still running locally.

by Mihai Varga ( at July 01, 2015 04:18 PM

Google Summer Of Code

How I got into GSoC
I learned about this super awesome opportunity for students some time ago and I kept telling myself that I should start searching for a project as soon as possible. But as the starting date drew near I hadn’t done anything and I found myself one week before the accepted organizations publishing nervous and desperate to find something.
Choosing LibreOffice
I had 2 criteria in my choosing: the project had to be written in C++ and it had to be interesting. So it happened that I came across this interesting LibreOffice proposed idea, “Connection to Microsoft’s Sharepoint and OneDrive” which combined what I was looking for and networking, one of my favorite computer related subjects.
The project
The idea was to extend libcmis (content management interoperability services), which is a library that works inside LibreOffice and allows you to work on remote files directly in LibreOffice without the need to explicitly download the file and reupload it. libcmis already has AtomPub and WebService bindings, and as for 2013’s summer it features a new Google Drive binding. Now my task is to work on the connection with OneDrive and SharePoint. I find this new feature to be of great importance as users that are constrained to work on a SharePoint repository can now choose an open source program for their office suite.
Current status
I have firstly chosen to work on the OneDrive binding as it was going to be a more “gentler” introduction into libcmis’s code. The connection is almost ready and I race to finish it as the midterm evaluation is around the corner. This feature allows users to create, edit and easily move around documents and folders in their OneDrive cloud storage. More updates will follow and hopefully, if everything goes well, a demonstration.

by Mihai Varga ( at July 01, 2015 04:17 PM