The Document Foundation Planet

 

February 23, 2018

Official TDF Blog

Friday Community #6

Bjoern Michaelsen has just announced the LibreOffice Hackfest Hamburg 2018 on April 7th and 8th, which will be the first of The New Generation. Details about the LibreOffice Hackfest Hamburg 2018 are kept on the TDF wiki page and will be continuously updated. If you are interested in joining the event please start adding your name there (especially if you are looking for TDF travel and accommodation sponsorship).

The German LibreOffice community will join the Hackfest in Hamburg, to discuss non-coding topics like localization, documentation, quality assurance and marketing in the German context. This represents a very good opportunity to meet those active in German-speaking countries, and plan and coordinate how to push the project, the product and the brand in the German context.

The LibreOffice Hackfest Hamburg 2018 will be hosted by Freiheit Technologies.

by Italo Vignoli at February 23, 2018 11:32 PM

February 22, 2018

Michael Meeks

2018-02-22 Thursday

  • Mail chew, Marketing & Sales call; product research. Up very late working on slides, planning, and other admin.

February 22, 2018 09:00 PM

LibreOffice Design Blog

Easyhacking: How to set up your environment

User-centered development is implicitly steering the development from the top of the cathedral. That means to start with a vision, the context of use, and the primary users etc, granularized later into product requirements with storyboards and use cases, and finally iterating with product design and development.…

The post Easyhacking: How to set up your environment appeared first on LibreOffice Design Team.

by The LibreOffice Design Team at February 22, 2018 11:15 AM

Björn Michaelsen

Invitation to the LibreOffice Hackfest Hamburg 2018 on April 7th and 8th

… for a holiday of working class
She’s a runaway of the establishment incorporated
She won’t cooperate
— Last of the American Girls, 21 Guns, Green Day

Its once again time to meet again in Hamburg for a LibreOffice Hackfest! We will meet with contributors to LibreOffice – old and new – and also welcome those who have not yet contributed to the project, but are interested in doing so. This will also be the first Hackfest TNG.

We will have EasyHacks prepared for anyone wanting to do their first code contribution to the project – and we will have mentors around who may provide guidance to every interested newcomer. An Hackfest is the easiest way to get involved for a curious newcomers to the project: we certainly can offer an interesting C++ codebase!

Not interested in coding? As the local German LibreOffice community joins this Hackfest, non-coding topics like documentation, QA and marketing especially in the German context will be discussed too. This is an opportunity to meet those active in the German community and plan and coordinate how to push the project, the product and the brand of LibreOffice in the German context. Mixing and mingling of the German community with the international developer community is a bonus for both: otherwise this only happens at the frantic and busy meetings at FOSDEM and the LibreOffice conference, where usually time is a very restricted resource for everyone.

Note that as usual support for travel and accommodation for the Hackfest is available from The Document Foundation as per its travel policy, so please feel invited to make use of that offer, especially if you have always been curious about the LibreOffice project and you want to get involved, but are not quite sure how: a Hackfest is a great way to learn that.

So – where will we meet? Here:

6fwd

This is 6Fwd – a beautiful meeting room at freiheit.com technologies, who are generously hosting us for this event. I am very excited about us being guests at this location and would like to thank freiheit.com for their sponsorship!

Details about the LibreOffice Hackfest Hamburg 2018 are kept on the TDF wiki page and will be continuously updated. If you are interested in joining the event please start adding your name there (especially if you are interested in TDF sponsoring travel and accomodation for you).

(If you are still unsure about joining the event, you can have a look at the wiki pages of previous events to get an idea. But really: the best way to learn about the project is going to a Hackfest, so dont miss this opportunity!)

by bmichaelsen at February 22, 2018 09:00 AM

February 21, 2018

Michael Meeks

2018-02-21 Wednesday

  • To work early, mail chew, sync with Tracie, Miklos. Lunch. Partner call.
  • One of the nicest stories I heard about Billy Graham was from ParkStreet and went very roughly a bit like this:
    Billy was about to speak at a Boston(?) conference, and as he was introduced - with this growing, glowing haggiography of his achivements, awards, travels and so on got increasingly concerned. After the introduction he came on the stage ... and told approximately this story: The other day I took an elevator, and inside it, on the floor, was a dirty, drunk man. Looking up at me there was this flicker of recognition: he said "I know you! You're Billy Graham! ... you changed my life!". That - is what happens when Billy Graham tries to change your life - we're both wasting our time. What you really need is to fix your eyes on Jesus to let him rescue & change you.
    apocryphal; maybe - but if only all preachers realized its ultimately really not about them.

February 21, 2018 09:00 PM

February 20, 2018

Michael Meeks

2018-02-20 Tuesday

  • Mail; old-friend / partner call, more partner poking. Monthly mgmt call, admin.

February 20, 2018 09:00 PM

Official TDF Blog

LibreOffice 6.0: Exploring the QA statistics

By Xisco Faulí, Quality Assurance (QA) engineer

LibreOffice 6.0 was released on January 31 and this is what happened during its development in LibreOffice’s Bugzilla, which started when the 5.4 branch was branched off from master on May 18 2017.

Note: This blog post has been created based on bugs in Bugzilla that have the whiteboard ‘target:6.0.0’, which means a commit for that bug is included in the release. Other commits referring to other bug trackers (ofz, coverity, rhbz, bnc, etc…) are not covered here, as well as others commits not having a reference to our bug tracker (ie refactoring commits).

In LibreOffice 6.0, a total number of 926 bugs and 88 enhancements were worked on, of which 747 were reported during 2017 (73%), and 267 (27%) between October 2010 and December 2016. July 2017 and August 2017 were the months with more reports, 104 and 108 respectively.

284 reports are related to Writer, 175 to Calc, 134 to LibreOffice in general and 112 to Impress.

This is all thanks to 382 users who reported them.

TOP 10 Reporters

Xisco Faulí ( 74 )

Yousuf Philips (jay) ( 69 )

Telesto ( 59 )

Tamás Zolnai ( 44 )

Aron Budea ( 38 )

Gabor Kelemen ( 26 )

Regina Henschel ( 23 )

Samuel Mehrbrodt (CIB) ( 22 )

Mike Kaganski ( 18 )

Olivier Hallot ( 17 )

Once a report has been created in Bugzilla, a third person needs to jump in, triage and confirm it in order to set it to NEW. This is a very important step as it helps the QA Team to deal with the hundreds of bug reports we receive every week.

Doing it in a short period of time after the bugs are reported guarantees those with more priority get fixed more quickly.

67% of the reports were confirmed within the first day, 84% within the first week and 93% within the first month.

Comparing when the reports were created and when they were confirmed gives a similar chart.

This is all thanks to 113 users who confirmed them.

Top 10 Confirmers

Xisco Faulí ( 225 )

Buovjaga ( 92 )

Yousuf Philips (jay) ( 48 )

Aron Budea ( 42 )

Julien Nabet ( 38 )

raal ( 37 )

Tamás Zolnai ( 28 )

Heiko Tietze ( 28 )

Alex Thurgood ( 25 )

V Stuart Foote ( 23 )

Finally, once the reports have been confirmed and triaged, the developers need to investigate and fix them. Sometimes, it can be trivial fix that takes a few minutes to get fixed – sometimes it takes several man days.

10% of the reports got fixed within one day, 51% within one month and 80% within one year.

Taking a closer look at the period between 2017-05-18 and the final release, 111 bugs were fixed in average a month, being August 2017, September 2017 and October 2017 the highest, with 147, 147 and 139 reports fixed respectively.

This is all thanks to 100 developers who fixed them.

Top 10 fixers

Caolán McNamara ( 105 )

Tamás Zolnai ( 57 )

Julien Nabet ( 48 )

Eike Rathke ( 46 )

Miklos Vajna ( 43 )

Michael Stahl ( 41 )

Adolfo Jayme ( 41 )

Yousuf Philips (jay) ( 39 )

Justin L ( 31 )

Heiko Tietze ( 28 )

For more QA statistics, please watch my recent talk at FOSDEM 2018:
https://fosdem.org/2018/schedule/event/ode_overview/

Join in, and help our QA community to polish future LibreOffice releases! We’re a friendly and growing project, and there are many ways to get involved: https://wiki.documentfoundation.org/QA/GetInvolved

by Mike Saunders at February 20, 2018 01:49 PM

February 19, 2018

Michael Meeks

2018-02-19 Monday

  • Babes back to school; quick Old Story New Bible study at breakfast. Mail chew, chat with Florian, sync with Kendy, status report, mail. Plugged away at admin.

February 19, 2018 09:00 PM

Andreas Mantke

LibreOffice Non-Code Extension Creation – Templates Available

I wrote a first version of a howto about the creation of LibreOffice non-code extensions. This howto is written in German language and the source code is available from my Github repository:
https://github.com/andreasma/extensionbook

I added some sample templates to this repository, one for each LibreOffice non-code extension, which I described in the howto. You could view them here:
https://github.com/andreasma/extensionbook/tree/master/extensiontemplates

You could check out this code samples and adapt (by editing) them to your own new LibreOffice non-code extension.

I’m keen to see your LibreOffice non-code extension inside the LibreOffice extension repository: https://extensions.libreoffice.org

Happy hacking!

by Andreas Mantke at February 19, 2018 08:51 PM

Official TDF Blog

Making Macro Programming a Breeze: The BASIC & API Reference Cards

Update: Reference card for runtime library is now available.

One of the recurring issue when using LibreOffice as a replacement of other office applications is the migration of macros to the LibreOffice BASIC dialect and objects. While the LibreOffice BASIC programming language is almost standard, the objects inside a document have different names, methods and properties, and a rework on the macro is necessary in most cases to make it operational again, when imported from other suites.

To address some of the needed rework, LibreOffice developers implemented in the past a complimentary set of statements and functions to LibreOffice BASIC bringing a compatibility mode to macros written in Visual Basic for Application (VBA) to reduce the need of rework on the macro code and use VBA objects and statements. In late 2017, some of the compatibility statements and functions were documented in our help pages.

But that is only part of the issue. The LibreOffice Application Programming Interface (API) is an extremely rich and granular interface with access to myriads of properties, interfaces, services and methods, which turns its usage a challenge for the occasional macro programmer, often not familiar with object oriented programming and complex data types.

But thanks to Jean François Nifenecker, a set of handy reference cards is now available to the BASIC programmer community. The 8 cards are divided by subjects, addressing the Integrated Development Environment (IDE), BASIC language overview, Calc most interesting objects and tricks, document and application events, runtime library, dialogs, files and execution parameters. The first 4 cards are now available in our documentation website in PDF and in ODT file formats and more will come as soon as they get translated from French to English. Just download the PDF version and print it in thick paper to have a quick access to information that you probably know it exist, but you forgot how to make it work.

Download the BASIC reference cards from our Macros documentation web page and get the original ODT file to translate these handy card in your native language.

by Olivier Hallot at February 19, 2018 01:00 PM

Sunday Marketing #6

Last week, we have published the crash report chart just two days after the announcement of LibreOffice 6.0.1, to show the impact of the new version on the issues reported by Windows users.

Ten days after the announcement the impact is even more visible, and the chart on the left shows that the situation is now under control.

The trend shows how important is for LibreOffice users to quickly update to the last available version to reduce the number of potential issues.

by Italo Vignoli at February 19, 2018 01:20 AM

February 18, 2018

LibreOffice Design Blog

Improvements to Font Listing

Font handling is a major topic for office suites and as a result, LibreOffice’s bug tracker has numerous reported issues and suggestions on how to enhance the workflow. In a past blog post, we presented a solution for font substitution and now it is time to talk about font listing.…

The post Improvements to Font Listing appeared first on LibreOffice Design Team.

by The LibreOffice Design Team at February 18, 2018 09:50 PM

Michael Meeks

2018-02-18 Sunday

  • All Saints, Stephen back for roast-lamb lunch with the babes, chatted afterwards. Watched the last Harry Potter in the afternoon. Bed, watched The Man in the High Castle with J.

February 18, 2018 09:00 PM

Charles Schulz

Running for the board of the Open Source Initiative – a few words

Well, it has been a while I have posted anything on this blog, a little bit over a hear to be precise. I intend to post more in 2018 but I will likely not keep a regular schedule.
Today I would like to explain my reasons for my candidacy at the board of the Open Source Initiative. I can think of two kinds of reason for my decision: one is personal, and the other one is directly related to current state of Open Source and software freedom. Let’s start with the first one: I’m currently helping the Open Information Security Foundation and the Suricata project in my capacity at ANSSI, while contributing in a minor way to the LibreOffice project and the Document Foundation.
I’m also helping an exciting blockchain project called NotaryTrade, which relies both on Free & Open Source Software and Open Hardware. These are my “major” involvements at the time, and what this means is that I’m no longer focused on one community and one project like I was several years ago. The way I work and contribute, while remaining the same in many ways, has changed. What is different as well is my vantage point on the  policies affecting software freedom and I believe I could be useful to one of the most important entities in the field, the Open Source Initiative. This brings me to my second reason:

Free/Open Source Software has won. That’s not exactly new. What has NOT won however is the Free/Open Source Software as a set of principles and ideas. The entire industry is happy to reuse Open Source components but reluctant to admit they’re integrating these same components in their solutions. There’s a large part of the IT industry that does not hire contributors to Open Source projects in their capacity as Open Source projects practitioners. Yet it will gladly reuse components licensed under an OSI-approved license. In other words, a large part of the IT industry handles Open Source Software as an externality it does not have to pay for, yet relies upon for the solutions it sells and distributes.

Another worrying trend is an increase in attacks on the basic legal aspects of Open Source Software (and Open Standards as well): public policy initiatives as well as industry-wide moves aim at weakening the intellectual property tenets of Open Source and we must ensure that these trends be halted and the wider industry educated on Open Source and open standards.

The Open Source Initiative is currently in the right position to improve the standing of Open Source in the industry and defend its principles and licenses against damaging policy projects. I would like to help the OSI tackle these challenges to the best of my abilities.

You can find a short bio and a few key “agenda items” on the my candidate page and I’m of course happy to address or answer any comment posted there or here on this blog. I would also like to specially thank the Open Information Security Foundation(OISF) for its support of my candidacy. If you don’t know what the OISF does visit the Suricata project and you will discover how Open Source plays a major role in cybersecurity. Last but not least, I’m asking for your support and I hope you will help strengthen the OSI board with your vote.

by Charles at February 18, 2018 03:23 PM

February 17, 2018

Official TDF Blog

The Document Foundation 6th Anniversary

The Document Foundation was incorporated in Berlin on February 17, 2012. Today is the 6th anniversary, and all TDF Members around the world are celebrating another year of outstanding achievements. The last one has been the successful announcement of LibreOffice 6, which represents the combined effort of hundreds of people around the world, involved in development, localization, quality assurance, documentation and marketing. To summarize their activity, we have represented the building process of LibreOffice 6 visual image, from the empty sheet to the final result.

by Italo Vignoli at February 17, 2018 01:58 AM

February 16, 2018

>Marius Popa Adrian

Some of the few advantages of using Firebird 3.0.x is that performance was greatly improved vs 2.5.x

Here are a few related performance/tunning articles In the first article Vlad does quite a few benchmarks between Firebird 2.5/3.0.0/3.0.2 releases . It's very nice that minor releases brings free speedups. He also shows Firebird 3.0.3 performance related changes and fixes and the future ones that are already in Firebird 4    Firebird Performance, by Vlad Khorsun, Firebird Project  Tuning Linux,

by Adrian Marius Popa (noreply@blogger.com) at February 16, 2018 03:30 PM

February 14, 2018

February 09, 2018

Lera Goncharuk

Variables and data types of LibreOffice Basic

I have promised for a very long time to start writing about the scripting language of programming Basic in LibreOffice and creating macros by this language. This article is devoted to the types of data is used in Basic and, to a greater extent, the rules of description and the possibility of using variables. As always, I will try to provide a maximum of information, and for this reason I hope that this simple topic will be useful not only for novice users. Separately, I would like to thank everyone who commented on the Russian article, gave their recommendations, and helped to deal with difficult questions.
Read more »

by Lera Goncharuk (noreply@blogger.com) at February 09, 2018 09:20 AM

February 08, 2018

February 05, 2018

>Marius Popa Adrian

Firebird 3.0.3 sub-release is available

Firebird Project is happy to announce general availability of Firebird 3.0.3 — the third point release in the Firebird 3.0 series.This sub-release offers many bug fixes (including fix for a recently reported security vulnerability) and also adds a few minor features and improvements, please refer to the Release Notes for the full list of changes. Binary kits for Windows and Linux on both 32-bit

by Adrian Marius Popa (noreply@blogger.com) at February 05, 2018 04:06 PM

Stephan Bergmann

LibreOffice 6 available at flathub.org

We moved the LibreOffice Flatpak builds to Flathub a while ago, and updating to new versions is normally a pain-free process. (For us as producers of those updates, at least. For you as a user of Flatpak, the process should always be pain-free, anyway.)

However, for LibreOffice 6, building it on Flathub took a bit longer than expected:

Originally, the LibreOffice Flatpak version had lacked a JRE, so some functionality just wasn’t available. There is now a Flatpak extension that allows to bundle Java 9 with an app, so I was finally able to fix this long-standing issue.

In addition, I figured it could be useful to provide debug information for the LibreOffice flatpak (which comes as an extension that you can then optionally install with something like flatpak install flathub org.libreoffice.LibreOffice.Debug).

So I prepared the necessary changes well ahead of the LibreOffice 6.0.0 announcement, tested them locally on my x86_64 machine, and was confident that thinks would just work when I would trigger the Flathub build once the LibreOffice announcement was due. Turned out I was wrong.

First, one little aarch64-specific fix had been missing on the libreoffice-6-0 branch. No problem, just apply the corresponding master fix as a patch to the Flatpak version. Then builds started to fail randomly.

Enabling debug information for an application as large as LibreOffice can increase the size of what gets build, and the time to build it, quite substantially. I do such full-debug-information builds of upstream LibreOffice rather routinely on my (somewhat powerful) local build machine without any problem, so I didn’t even give a thought to this when enabling debug information for the Flathub builds. But it turns out that took some of the Flathub build machines (especially for less powerful platforms, like 32-bit x86) already close to the edge of their capacity. And something as trivial as applying the master-branch patch in the previous step meant that disk-space demand of the LibreOffice builds increased by yet another substantial amount (as Flatpak now needed to install the full LibreOffice git source repository, instead of taking shortcuts). That was apparently enough to move some of the builders over the edge, and into random “disk full” etc. failures.

So I weakened that debug feature again.  There is still unstripped symbol information in the Debug extension that you can download (i.e., you will see meaningful function names in backtraces), just not the whole debug data (e.g., you won’t see source file names and line numbers in backtraces, or be able to print variable values in gdb).

Meanwhile, there had been work going on to finally provide 32-bit arm builds of LibreOffice on Flathub. We had initially disabled that platform because of an issue with the version of GCC 6 that is used to do the builds. That arm-specific issue appears to be fixed with GCC 7, and there is now a Flatpak extension that allows to use GCC 7 instead of 6. And the test branch to do the LibreOffice build with GCC 7 and enable arm worked just fine. When building the old LibreOffice 5.4 version, that is.

When I tried to merge those two efforts that had gone on in parallel, switching to LibreOffice 6 and switching to GCC 7, things started to fail once again.

First off, the Java extension was not available for arm. So building on arm refused to work outright. There is work in progress to make it available, but by now LibreOffice 6 had officially been announced and available for download, and people waiting for the Flatpak version started to get impatient. So I decided to leave 32-bit arm unsupported for just a bit longer and dropped it from the list of supported platforms for the LibreOffice Flathub build again.

But things still didn’t work. The aarch64 build kept failing one of the tests that are executed during the build of LibreOffice. Sometimes these tests are a bit flaky and fail for “random” reasons. So I scheduled multiple builds, just to be sure. But, for sure, aarch64 kept failing, always during the same test.

I had kept using GCC 7 for these builds, even after the original reason for it (to enable 32-bit arm builds) was gone. Looks like there is some issue with building LibreOffice 6.0 with GCC 7, on aarch64 (which I still need to track down in detail). When I switched back to GCC 6, all builds were finally green. And were allowed into the Flathub repo, from where you can install/update them.

(That happened on Friday, just in time to get the LibreOffice 6 Flatpak version battle-tested at FOSDEM. I know at least gicmo’s and my presentations were powered by that version, without a glitch.)

by stbergmann at February 05, 2018 01:43 PM

February 04, 2018

Andreas Mantke

Further Work On Plone AddOns For LibreOffice Extensions/Templates Site

I fixed some internationalization issues within the Plone addons I used to run the LibreOffice extensions and templates website. I added also a function that searches for the latest unstable release of a project. If there is such unstable release it will be shown to the user of the website. I added a new slot to project view for this. The updated code is available in the github repository of The Documenta Foundation yet. It will soon be released and incorporated in Plone instance of the LibreOffice extensions and templates website.

by Andreas Mantke at February 04, 2018 11:50 AM

Miklos Vajna

EPUB export in LibreOffice Writer FOSDEM talk

Yesterday I gave an EPUB export in LibreOffice Writer FOSDEM talk at FOSDEM 2018, in the Open document editors developer room. The room was well-crowded — perhaps because the next talk was about LibreOffice/Collabora Online. ;-)

Quite some other slides will be available on Planet I expect, don’t miss them.

February 04, 2018 09:14 AM

February 01, 2018

>Marius Popa Adrian

In 2017, The Document Foundation (TDF) launched four tenders aimed at improving LibreOffice. Tender four is of interest to the Firebird community

In 2017, The Document Foundation (TDF) launched four tenders aimed at improving LibreOffice. Tender four is of interest to the Firebird community: (4) Tender to implement HSQLDB binary format import in LibreOffice (https://blog.documentfoundation.org/blog/2017/05/04/tender-implement-hsqldb-binary-format-import-libreoffice-201705-03/) Collabora will develop a mechanism to import database files

by Adrian Marius Popa (noreply@blogger.com) at February 01, 2018 11:47 AM

January 31, 2018

Tamás Bunth

DBMS migration in LibreOffice: Firebird and HSQLDB schema import

TDF has published tenders to improve LibreOffice in some areas, including its database management program, Base. The goal here is to implement the import of HSQLDB databases without Java Runtime Environment, in order to facilitate the change-over to
Firebird. In this post I would like to explain what steps are made at Collabora so far to achieve this goal.

Before dealing with the compatibility of the old HSQLDB-based odf files, an improvement had to be made on the Firebird driver. Within this context I implemented those types which could be created with the HSQLDB driver, but not with Firebird. Those Hyper SQL types are:

  • LONGVARCHAR, implemented as a BLOB holding text in Firebird context;
  • BINARY (fix) and VARBINARY. These types can be created as a CHAR/VARCHAR
    field with a special character set called OCTETS. This character set indicates
    that it stores binary format, and it is needed to indicate that no character
    set or collation makes sense here.
  • LONGVARBINARY. This type is responsible for holding images. As images can be
    really big, I implemented this as a subtype of BLOB.

Besides that, to prevent the changing of the DBMS back end being a setback, there were some bugs with high priority to fix. For example the impossibility to copy integer values from Calc to Base (tdf#70425) is fixed by allowing the driver to set numerical values even with the setString method, when it is called on a column with numerical type (int, smallint, etc.).

After that, in order to prepare the removal of the legacy java-based DBMS, it is needed to create a way to import the database schema and the binary data stored in older odf files without Java. Technically it means a new library in module “dbaccess”, which does all the import, and which is used in the dba (core) library when creating connection.

Splitting it to subtasks, I decided to implement the schema import first. The database schema is zipped into the odf file in a text file called “script”. This file consists of DDL statements in a strict format. The new library reads these SQL statements line-by-line, transforms it a little, and then executes them using the sdbc driver. A modification is needed in statements which contain column definitions (since the types typically differ in different systems), and there are some HSQLDB specific keywords too (e.g. CACHED tables).

The migration can be enabled using DBACCESS_HSQL_MIGRATION=1 when starting
LibreOffice. Currently, as the binary import is not ready yet, the result of the migration is some empty tables mostly.

Next step will be to implement the binary import and create unit tests for all.
the changes I have made.

by Bunth Tamás at January 31, 2018 03:48 PM

>Marius Popa Adrian

LibreOffice Firebird driver related changes

There were quite a few bugs fixed in the last two months related to Firebird driver in LibreOffice also interesting commits Tamas Bunth commited : Add HSQLDB schema import.He also fixed Bug 104734 - FIREBIRD: Add those field types that are not available with FB while they are available with Hsqldb.Lionel Elie Mamane fixed Bug 104986 - Firebird: Function EXTRACT doesn't work with WEEKDAY, YEARDAY

by Adrian Marius Popa (noreply@blogger.com) at January 31, 2018 02:58 PM

Tomaž Vajngerl

Improving the image handling in LibreOffice - Part 1

Prologue

It is known for some time that the image life-cycle in LibreOffice is problematic and can potentially lead to image loss, but to make the life-cycle more robust against loss, a lot of refactoring would need to be done. Another issue is also the mechanism of images swapping in and out of the memory. Keeping images in memory takes a lot of space so when a certain amount is hit, the images get swapped to disk and memory is freed. The problem is that it can happen that the cache handler starts constantly to swap images in and out (especially with with multi-megapixel images that are the norm today) and LibreOffice stalls to halt.

Because of this issues, TDF put up a tender to improve the situation with image handling and Collabora Productivity was selected to implement it, and I will do the development work.


Problems with the image life-cycle - detailed

Currently, when an image is read from a document, a GraphicObject is created for the image and handled over to the GraphicManager which manages the life-cycle. When this happens we usually get back the string based unique ID of the GraphicObject with which we can always get access the image by creating a new GraphicObject with the unique ID (GraphicManager will look for the image with that unique ID). Usually the unique ID is the one that is passed on between layers in LibreOffice (for example from ODF filter when loaded, to the model, where it is manipulated and then to the OOXML filter when saving) but the unique ID itself is just a "reference" to the image and by itself it doesn't have any control over when the image can safely be removed and when not. It could happen that in a certain situation we would still have the unique ID referenced somewhere in the model, but the image would already be removed. This is dangerous and needs to be changed. 
Usually for this kind of object we use reference counting technique, where we pass a objects around that holds a reference to the object resource. When the object is created, the reference count is increased, when destroyed, the reference count is decreased, when the reference count reaches zero, the resource object is destroyed.


The solution for the life-cycle

So instead of passing around of unique ID the idea is to use the usual reference counting technique, that is normally used in this situation. The GraphicObject in mainly a wrapper around Graphic (which then holds a pixel-based image, or animated image, or possibly a vector image), and in addition it keeps additional attributes (gamma, crop, transparency, ...). It also has the implementation of swapping-in and out (but I'll explain this another time). On the other hand Graphic is properly reference-counted already (Graphic objects are reference counting the private ImpGraphic) so the solution to the life-cycle problem is that instead of GraphicObject unique ID we would just pass along the Graphic object instead, or XGraphic, XBitmap which are just UNO wrappers around Graphic. Potentially we could also pass along the GraphicObject or XGraphicObject (UNO wrapper for the GraphicObject) when we would need to take into account the graphic attributes too. This should make the life-cycle much more manageable, but the problem is that there are many many places this needs to be changed.
I will do the work as much incrementally as possible, with ensuring that the test cover the code and if needed add new tests or extend the existing ones. 

Currently almost finished is refactoring of the bitmap table (a list of named bitmaps, mostly used for shape fills or backgrounds) to use XBitmap instead of string based unique ID in the table. For this I needed to change OOXML (oox) and especially the ODF (xmloff) filter, and the document model.


Credits

Many thanks to TDF and users that support the foundation by providing donations, to make this work possible. 


To be continued...

by Tomaž Vajngerl (noreply@blogger.com) at January 31, 2018 11:10 AM

January 23, 2018

kainz.a

LibreOffice bitmap pattern

Do you like to use nice bitmap pattern in LibreOffice for area fill. So if you draw a rectangular, a start, … whatever you can use this bitmaps.

With the help of designers from openclipart, pixabay, publicdomainpictures, … I made 42 seamless area bitmap pattern but only 50% are needed. So which one do you like which one can be dropped.

image3851.jpg

Please comment to the bug reportt tdf#114817 or in the comment section. If you’d like to test them feel free to download the LibreOffice writer dokument.

by kdeonlinux at January 23, 2018 08:27 AM

January 21, 2018

Kohei Yoshida

LibreOffice Development Talk at Triangle C++ Developer’s Group

It was a pleasure to have been given an opportunity to talk about LibreOffice development the other day at the Triangle C++ Developer’s Group. Looking back, what we went through was a mixture of hardship, accomplishments, and learning experience intertwined in such a unique fashion. It was great to be able to talk about it and hopefully it was entertaining enough to those of you who decided to show up to my talk.

Here is a link to the slides I used during my talk.

Thanks again, everyone!

Edit: Here is a PDF version of my slides for those of you who don’t have a program that can open odp files.

by Kohei Yoshida at January 21, 2018 03:30 PM

January 15, 2018

Andreas Mantke

Finished Removing Not Used Accounts

It took some time to remove a lot of accounts from the LibreOffice extensions and templates website that are not used for contributions to the site and the LibreOffice eco-system. I finished this work during already.

It always possible and easy to create a new account on the site, if a new user / community member need one to contribute a LibreOffice extension or template project / release.

by Andreas Mantke at January 15, 2018 08:43 PM

January 14, 2018

Andreas Mantke

Removing Not In Use User-Accounts

I created already some scripts to work on the user database of the LibreOffice extensions and templates website.  I got some different list of the users (e.g. contributing and not contributing users). I monitored this different groups of users for a longer time now. Today I used another script that I already created and began to remove a list of users with no contribution to the site.

by Andreas Mantke at January 14, 2018 05:37 PM

January 11, 2018

Miklos Vajna

EPUB3 export improvements in Libreoffice Writer, take two

I worked on improving the EPUB3 export filter in LibreOffice further recently. First, thanks to Nou&Off in cooperation with a customer who made this work possible. Since the previous blog entry there have been a number of improvements around a next set of topics.

Cover images

https://farm5.staticflickr.com/4760/38920770224_b247fa89c4_o.png

It is now possible to specify a cover image for the exported EPUB file. Given that a cover image is not naturally part of the Writer document model, I introduced the concept of a media directory for the EPUB export. The media directory is a directory next to the source file, with the <file name without extension> name. If that directory contains a file named cover.svg (or .gif, .jpg, .png), the exporter will automatically use it. Otherwise you can customize this default.

The picture shows two EPUB files in Readium with different cover images.

Improved metadata support

https://farm5.staticflickr.com/4603/38920770174_142950782e_o.png

It’s quite frequent that you are technically author of a document, but the logical author of the book is somebody else. Same for the date of the book, and so on. So the EPUB export dialog now has support for overwriting the defaults coming from the Writer document model. For mass-conversion of documents it’s possible to place a <file name without extension>.xmp file in the media directory and XMP metadata from that file will also overwrite metadata coming from the document model.

The picture shows the extended EPUB export options dialog.

Footnotes and image popups

https://farm5.staticflickr.com/4612/38920770144_e90e2a8e92_o.png

I’ve added support for footnotes. As a special case of this, image popups on images and text is now supported. This works by placing a relative link on a text portion or on an image, and placing an image with the same name (e.g. in high resolution) in the media directory. In this case the EPUB export will bundle the image from the media directory inside the EPUB file and clicking on the text or image will open the bundled image in a popup (or in some other container, depending on how your reader interprets footnotes).

The picture shows such a popup in Microsoft Edge.

Fixed layout

https://farm5.staticflickr.com/4604/38920770104_108465bda1_o.png

The EPUB3 fixed layout is quite similar to PDF, just it is built on top of XHTML and SVG. Possible use-cases for this can be:

  • exporting a document where presenting the content as reflowable text would be misleading (e.g. comic books), but the publisher of the book only works with EPUB (reflowable or fixed layout, but no PDF)

  • printing (again, in case for some reason you want to avoid PDF)

These might be very specific situations, but luckily supporting them is not too complex. I implemented an approach very similar to the PDF export, where we export individual pages of the Writer document’s layout as a metafile, and then consume that — this time with the SVG export. Building on top of the existing Writer layout and SVG export means the hard work is really done by these components, the EPUB fixed layout export just puts these together.

The picture shows a Writer document with a table of contents containing page numbers, a header and a footer in Readium.

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

January 11, 2018 11:25 AM

January 08, 2018

Tor Lillqvist

LibreOffice Vanilla 5.4.4 released on the Mac App Store

Collabora has now released LibreOffice Vanilla 5.4.4 on the Mac App Store. It is built from the official LibreOffice 5.4.4 sources. If you have purchased LibreOffice Vanilla earlier from the App Store, it will be upgraded in the normally automatic manner of apps purchased from the App Store.

LibreOffice Vanilla from the Mac App Store is recommended to Mac users who want LibreOffice with the minimum amount of manual hassle with installation and upgrades. If you don't mind that, by all means download and install the build from TDF instead.

We would have loved to continue to include a link to the TDF download site directly in the app's description, as we have promised, but we were not allowed to do that this time by Apple's reviewer.

Because of the restrictions on apps distributed in the App Store, features implemented in Java are not available in LibreOffice Vanilla. Those features are mainly the HSQLDB database engine in Base, and some wizards.

This time we include the localised help files, as there were some issues in accessing the on-line help.

Since the LibreOffice Vanilla 5.2 build that was made available in the Mac App Store in September 2016, there have been a few Mac-specific fixes, like the one related to landscape vs. portrait mode printing on Letter paper. There are more Mac-specific bugs in Bugzilla that will be investigated as resources permit.

Some fine-tuning to the code signing script has been necessary. For instance, one cannot include shell scripts in the Contents/MacOS subfolder of the application bundle when building for upload to the App Store. This is because the code signatures for such shell scripts would be stored as extended attributes and those won't survive the mechanism used to upload a build to the App Store for review and distribution. (For other non-binary files, in the Resources folder, signatures are stored in a separate file.)

We also have made sure the LibreOffice code builds with a current Xcode (and macOS SDK).

by Tor Lillqvist (noreply@blogger.com) at January 08, 2018 12:24 PM

January 07, 2018

Andreas Mantke

Update Of Software For The LibreOffice Extensions Website

I worked on a small update of the Plone add-ons that I created to run the new LibreOffice extensions and templates website. The source code of this update went to the github repository of the Document Foundation and I published a new release of the Plone add-ons on the cheeseshop.

I updated the LibreOffice extensions and templates website with the new code of the add-ons via buildout today.

by Andreas Mantke at January 07, 2018 08:48 PM

January 01, 2018

Eike Rathke

Happy New Year 2018

Today is Sweetmorn, the 1st day of Chaos in the YOLD 3184

by erAck (23@127.0.0.1) at January 01, 2018 12:38 PM

December 28, 2017

Eike Rathke

Germany is still an underdeveloped digital country on 4G mobile networks

15GB per month for €25, while in the neighbor country Denmark you get Unlimited GB for the same price..

One tariff with €199.95 for Unlimited GB in Germany btw... statistics of Nov-2017 with data of 2016.

by erAck (23@127.0.0.1) at December 28, 2017 10:39 PM

December 24, 2017

kainz.a

LibreOffice Tabbed Toolbar Compact

The Notebookbar implementation Tabbed Compact is finished and can be tested. Download LibreOffice Master for

Configure Notebookbar:

  • Tools -> Options -> Advanced -> Enable experimental features
  • View -> Toolbar Layout -> Notebookbar
  • View -> Notebookbar -> Tabbed Compact

And this is how it will look like

The idea of the Toolbar is that you get all actions grouped in different tabs. The benefit is that there is enough space for most actions from LibreOffice and you can show action icons and labels. In addition the UI is sizable.

Download and test it.

by kdeonlinux at December 24, 2017 10:34 AM

December 22, 2017

LibreOffice Design Blog

LibreOffice mascot – lesson learned and an apology

With many approaching the holiday season, it looks like the heated discussions about the LibreOffice mascot have settled down. It is probably too early to re-launch the project, as memories of what has happened in October and November are still rather fresh, and so we would like to share our thoughts and plans on this project with you before we the next steps are taken.…

The post LibreOffice mascot – lesson learned and an apology appeared first on LibreOffice Design Team.

by Italo Vignoli at December 22, 2017 06:37 PM

December 14, 2017

kainz.a

Elementary LibreOffice

ElementaryIcons.png

Two months ago I start to finalize the existing Elementary icon theme for LibreOffice. It’s about 2.000 icons and now they are available in LibreOffice 6.0 beta. In addition all icons are available as svg file so it can be used and edit in an easy way.

Please download and test LibreOffice 6.0 beta to give feedback. You switch the icon theme with Tools -> Options -> View -> Icon Style. We talk about a lot icons not all are perfect. Feedback is always welcome.

Test LibreOffice 6.0 beta

Mary Christmas and an shiny new year with LibreOffice 6.0.

 

 

by kdeonlinux at December 14, 2017 09:10 AM