The Document Foundation Planet

 

January 19, 2020

Roman Kuznetsov

Next release will be LibreOffice 7

Congratulations! Next release will be LibreOffice 7 instead LibreOffice 6.5. Look at that message in marketing mail list.

by Roman Kuznetsov (noreply@blogger.com) at January 19, 2020 05:42 PM

January 16, 2020

Official TDF Blog

Welcoming the new Board of Directors at The Document Foundation

In December, members of The Document Foundation voted for a new Board of Directors. The Board is the main administration of the Foundation’s projects and teams – including LibreOffice and The Document Foundation. The new Board will begin work after FOSDEM in February – and there are some new faces to welcome! Let’s hear from them…


Daniel Armando Rodriguez

I have been working voluntarily with TDF since January 2011 and I am a member since 2013. Whenever possible I try to evangelize regarding the advantages of adopting the ODF standard and LibreOffice as an office suite.

Considering the number of people living in this region of the world, I consider the need to add more volunteers to the community and, eventually, more members to the foundation to be a continuous effort. A significant weakness has to do with the language barrier as the number of English speakers in this part of the continent is relatively low. For this reason, I translate and publish on the Hispanic blog press releases, interviews and articles that help raise awareness of the strategic importance of adopting free tools and open standards. I work in a high school with technical orientation all day. I live in Misiones, Argentina (northeast of the country), an small province between Paraguay and Brazil.

I’m averaging the 40’s, father of two, a boy and a girl, and live and I’ve been living in a couple for almost 20 years.


Emiliano Vavassori

I am a senior system administrator, employed in a small company based in Bergamo, in the North of Italy, with its core business in providing ICT services for SMB companies. In my job, I’m mostly without any relation to LibreOffice – we install it on some customer’s PCs, but at least for the moment we don‘t have any migration process/anything bigger planned.

My operating system of choice is GNU/Linux since 2001 and from the same days I advocate FOSS and openness whenever possible, both in public events and in the business. Lately I was convinced that also open formats should have their own share of advocating so I am trying to do that as well. I am actually in the Board of both BgLUG (Bergamo Linux Users Group) and LibreItalia (Italian local “chapter” of TDF), but I am/was involved in a lot of other organizations, mostly with goals in FOSS advocacy.

In the last few years, I was involved in FOSS advocacy also inside schools, founding and leading the LibreSchool Project (www.libreschool.org) with a group of friends and colleagues from my LUG. I hope my experience would be of help inside TDF Board of Directors; I am pretty sure that I will also learn a lot.

As soon as I have been involved with TDF, I have been greeted by a full lot of passionate and welcoming people who worked hard to make yourself feel at home inside TDF and, sharing the same spirit, I would like to drive the efforts on the next two years within the BoD to make LibreOffice and The Document Liberation Project shine even more. My goals inside the Board will be mostly facilitating community interactions and activities, community inclusion and lowering the initial barriers to becoming a community member and contributor, which I can feel is still pretty high.

I would like to provide my direct help inside the TDF Board of Directors dealing with infrastructure (as it may seem legitimate by my job), marketing, event organization and native language projects.


Lothar Becker

This is a logical consequence – I think – of my long-term contributions to the project. A lot of you know me as owner of .riess applications, which was the first partner of Sun for doing migration business with StarOffice/OpenOffice nearly 20 years ago.

You might also know me from my contributions with activities for the national and international ecosystem, developing the certification process for LibreOffice professionals with others, where I nowadays serve as volunteer co-chair of the certification committee.

This gives me the chance to give something back for a lot of things I got out of this project. It‘s not just in the sense of making business, but in the sense of experiencing a healthy and powerful community of an open source project. As I’m also engaged in the German-based Open Source Business Alliance as speaker of the working group of public affairs and co-speaker of the working group for interoperability, there are a lot of topics where I can leverage each engagement through the other in the interest of all.

Helping and driving activities in the sense of growing local communities internationally (India, Africa, Asia, as well as European communities for recovering) and activating more exchange of ideas between the community and the board are some of the challenges I see for the next board period.


Nicolas Christener (deputy)

I’m Nicolas Christener, living in Switzerland, married, love skiing & music and I was born between RFC 812 and 813.

I currently work for Adfinis SyGroup which is a company delivering services (engineering, managed services, development) around F/OSS software. We partner with Collabora and together with them we brought LibreOffice to iOS.

I helped to organize LibreOffice Conference 2014 in Switzerland, the company I work for hosts some TDF servers and lately I was busy to help make the iOS app a reality. I contributed comment translations (de -> en) in the code, filed many bugs and convinced users and organizations to use LibreOffice.

I was also appointed by the current Board (which I’m not part of) to help start the The Document Collective (TDC). This transitional group only bootstraps the legal entity and I won’t automatically be involved in the future entity.

I believe that I have a good understanding of the enterprise requirements and am very community oriented which gives me a well balanced view where and how we could improve LibreOffice for the good of all of us.


Paolo Vecchi (deputy)

I’m based in Luxemburg and my two organisations, Omnis Systems Ltd (UK) and Omnis Cloud Sarl (LU), are specialised in the promotion of Open Source and Free Software platforms. During the last years, I wrote many articles promoting Open Source, Free Software and naturally LibreOffice.

Many of you may know me also from FOSDEM and LibOCon. I’ve been a part of the working group that succeed in convincing the UK Government to adopt ODF as their standard file format, convinced the City Council of Reggio Emilia to upgrade to LibreOffice and contributed in writing the Manifesto for Technological Sovereignty with the City Council of Barcelona – just to mention some of the activities.

I’m contributing to the LibreOffice project by investing time and resources to work with the private and public sector organisations showing them the social, ethical and economical benefits of replacing proprietary products with Open Source platforms and open standards.

With my new venture in Luxembourg I decided to lead by example, so I’ve setup a new “Sovereign Cloud”, providing resources and a set of free services to individuals and local non-profits. I want to show to local institutions that with Open Source platforms it’s possible to compete directly against the big players and that this change is not as difficult and expensive as they want us to believe. The services I’m providing will also be used to further promote LibreOffice, both desktop and On-Line.

I want to share my expertise with the board and bring in my passion for Open Source and Free Software.


Full list of the Board of Directors

Elected as member of the Board of Directors, in this order are:

  • Michael Meeks
  • Thorsten Behrens
  • Franklin Weng
  • Daniel Armando Rodriguez
  • Cor Nouws
  • Lothar Becker
  • Emiliano Vavassori

And elected as deputies of the Board of Directors are:

  • Nicolas Christener
  • Paolo Vecchi

Want to become a member and vote in future elections? Check out this video…

Please confirm that you want to play a YouTube video. By accepting, you will be accessing content from YouTube, a service provided by an external third party.

YouTube privacy policy

If you accept this notice, your choice will be saved and the page will refresh.

by Mike Saunders at January 16, 2020 02:59 PM

January 15, 2020

Andreas Kainz

Image Compression

Finally LibreOffice image compression did what you expect. Shrink your image or the impress presentation and don’t destroy your pictures.

Old default settings were 90 for JPEG Quality and reduce image resolution to 96 DPI.

New settings are 80 for JPEG Quality and reduce image resolution to 300 DPI. It frustrate me for long time that with 96 DPI all images that will be compressed with LibreOffice are blurred and didn’t fit in any case. After write Bug 128658 and nobody fixed the bug for me, I fixed it myself with 7 lines of code 🙂

The best bug report are the reports you can fix yourself. Be proud of yourself fill bug reports and fix them yourself.

downloads_wordmark_white_on_coral2x.jpg

by kdeonlinux at January 15, 2020 10:26 PM

January 14, 2020

>Marius Popa Adrian

Firebird 3.0.5 sub-release is available

Firebird Project is happy to announce general availability of Firebird 3.0.5 — the 5th point release in the Firebird 3.0 series. This sub-release offers many bug fixes and also adds a few improvements, please refer to the Release Notes for the full list of changes.Binary kits for Windows and Linux platforms are immediately available for download, Android and Mac OS packages will follow shortly.

by Popa Adrian Marius (noreply@blogger.com) at January 14, 2020 09:32 AM

January 13, 2020

LibreOffice QA Blog

LibreOffice 6.4 RC2 is ready for testing!

The LibreOffice Quality Assurance ( QA ) Team is happy to announce LibreOffice 6.4 RC2 is ready for testing!

LibreOffice 6.4 will be released as final at the end of January, 2020, being LibreOffice 6.4 RC2 the forth pre-release since the development of version 6.4 started in the beginning of June, 2019 ( See the release plan ). Since LibreOffice 6.4 RC1 ( the previous pre-release ), 90 commits have been submitted to the code repository and 58 bugs have been fixed. Check the release notes to find the new features included in this version of LibreOffice.

LibreOffice 6.4 RC2 can be downloaded from here, it’s available for Linux, MacOS and Windows. ( Note that it will replace your actual installation )

In case you find any problem in this pre-release, please report it in Bugzilla ( You just need a legit email address in order to create a new account ) so it can get fixed before LibreOffice 6.4 final is released.

For help, you can contact the QA Team directly in the IRC channel.

Happy testing!!

Download it now!

by x1sc0 at January 13, 2020 11:30 AM

Tamás Bunth

Custom label in LibreOffice charts

There has been some progress in LibreOffice related to custom labels on charts. Let’s take a look at the following example document:

The above picture is extracted from a .docx document created by Word. When importing the document using LibreOffice, the diagram looks like this:

LibreOffice is now able to import custom text extracted from an OOXML document and store it in the ODF format. In order to do this, there was no need for extending the ODF structure, because it can already be accomplished using the <chart:data-label> tag. Multiple paragraphs are supported in one label. Apparently, style elements are not yet imported correctly, but the good news is it can be further developed without modifying the ODF format.

In addition, support for inserting percentage into the custom field is added:

The diagram above contains custom labels for each of its slices. Percentage fields have been added as new paragraphs into the labels. The text of these fields will dynamically change when changing the underlying data.

Thanks for SUSE for sponsoring this development.

by Bunth Tamás at January 13, 2020 10:09 AM

January 12, 2020

Roman Kuznetsov

LibreOffice 6.4 RC2 is available

LibreOffice 6.4 RC2 is available for downloading now. There are builds for all main OS for 64 bit. There is a 32 bit build for Windows also. These builds are only for testing.
Links for direct downloading below:
Source code
Description of fixed bugs in LibreOffice 6.4 RC2 compare with LibreOffice 6.4 RC1 is by link.
If you found a bug in LibreOffice 6.4 RC2, then please file a bug reprort in our Bugzilla.
Else one candidat release will be before final release of LibreOffice 6.4.

by Roman Kuznetsov (noreply@blogger.com) at January 12, 2020 03:10 PM

January 10, 2020

LibreOffice QA Blog

QA/Dev Report: December 2019

General Activities

  1. LibreOffice 6.3.4 was released on December, 12
  2. LibreOffice 6.4.0 RC1 was released on December 23 and a Bug Hunting Session took place the same day
  3. Ilmari Lauhakangas (TDF) published a blogpost wrapping all the improvements achieved by the PPTX Team in the last months
  4. Mike Kaganski (Collabora) made find & replace regular expressions work with look-behind and look-ahead assertions, fixed the display of multi-line formulas, fixed the importing of DOCX files with Tables of Contents and other indices
  5. Jim Raykowski completed the integration of the new colour palette and removed the old background tab page code, fixed a very popular annoyance concerning duplicated labels in Customize dialog (with additional contributions from Caolán McNamara of Red Hat) and fixed many accessibility issues
  6. Jan Holešovský (Collabora) fixed many under-the-hood issues with the Android application
  7. Dennis Francis (Collabora) fixed a frame-anchoring issue, which made elements fly into all the wrong places in Writer
  8. Andreas Kainz improved the Notebookbar UIs
  9. László Németh (NISZ) fixed several issues with DOCX tables and pasting to Writer tables. He also implemented several AutoCorrect fixes and enhancements
  10. Chris Sherlock made many under-the-hood improvements to the EMF+ handling code and implemented support for more EMF+ features
  11. Justin Luth (Collabora/SIL) fixed a DOCX import footnote issue and completed a multifaceted fix for a DOCX issue involving subscripts in character styles
  12. Samuel Mehrbrodt (CIB) added an infobar notification for cases of missing hyphenation information and improved the infobar behaviour in general
  13. Caolán McNamara (Red Hat) improved the behaviour of measurement units in the UI input fields, fixed issues in Calc cell style settings dialog and made many improvements to the UI code, including getting native GTK widgets working in the Sidebar
  14. Regina Henschel fixed unwanted rotation and position changes of a shape anchored to a Calc cell
  15. Noel Grandin (Collabora) fixed a performance issue when copying a large bulleted list, improved the speed of exporting a large document to PDF, improved the loading time of an XLSX file with lots of comments and made many cleanups under the hood
  16. Balázs Varga (NISZ) fixed number formatting in DOCX chart data labels
  17. Bakos Attila (NISZ) fixed shape anchoring in DOCX tables
  18. Michael Stahl (CIB) fixed an issue with DOCX continuous sections
  19. Muhammet Kara (Collabora) guided students in Ankara, Turkey to complete many C++ easy hacks
  20. Tomaž Vajngerl (Collabora) added functionality to check Writer documents for accessibility problems to make the document conform to PDF/UA requirements
  21. Miklos Vajna (Collabora) added support for semi-transparent text
  22. Kohei Yoshida published some Benchmark results on mdds multi_type_vector

Reported Bugs

580 bugs, 83 of which are enhancements, have been reported by 320 people.

Top 10 Reporters

  1. Xisco Faulí ( 36 )
  2. Nicolas Christener ( 29 )
  3. sdc.blanco ( 20 )
  4. Mike Kaganski ( 16 )
  5. Roman Kuznetsov ( 14 )
  6. NISZ LibreOffice Team ( 13 )
  7. DM ( 9 )
  8. R. Green ( 9 )
  9. Markus Elfring ( 9 )
  10. Rizal Muttaqin ( 8 )

Triaged Bugs

595 bugs have been triaged by 81 people.

Top 10 Triagers

  1. Xisco Faulí ( 150 )
  2. Dieter Praas ( 58 )
  3. Timur ( 56 )
  4. Heiko Tietze ( 34 )
  5. V Stuart Foote ( 31 )
  6. Julien Nabet ( 30 )
  7. Oliver Brinzing ( 20 )
  8. Roman Kuznetsov ( 17 )
  9. Olivier Hallot ( 16 )
  10. Mike Kaganski ( 15 )

Resolution of resolved bugs

578 bugs have been set to RESOLVED.

Check the following sections for more information about bugs resolved as FIXED, WORKSFORME and DUPLICATE.

Fixed Bugs

183 bugs have been fixed by 43 people.

Top 10 Fixers

  1. Caolán McNamara ( 22 )
  2. Mike Kaganski ( 11 )
  3. László Németh ( 10 )
  4. Noel Grandin ( 8 )
  5. Michael Stahl ( 6 )
  6. Jim Raykowski ( 5 )
  7. Jan-Marek Glogowski ( 5 )
  8. Roman Kuznetsov ( 4 )
  9. Miklos Vajna ( 4 )
  10. Samuel Mehrbrodt ( 4 )

List of critical bugs fixed

  1. tdf#112989 Time required to export a large document has doubled for Latin (text layout issue) ( Thanks to Noel Grandin )
  2. tdf#129533 Calc crashes on Navigator click or move ( Thanks to Noel Grandin )
  3. tdf#99711 Sidebar Position and Size displays incorrect width and height when units in mm ( Thanks to Caolán McNamara )

List of high severity bugs fixed

  1. tdf#105225 Color palette cannot be chosen in various places ( Thanks to Jim Raykowski )
  2. tdf#108458 Label changes for Toolbar use degrade function listing in the Customize dialog–have duplicate entries on the list ( Thanks to Caolán McNamara )
  3. tdf#116194 table content from .DOCX shown as text in Writer ( Thanks to László Németh )
  4. tdf#127022 menu bar is broken in RTL interface on Windows ( Thanks to Miklos Vajna )
  5. tdf#128077 Always reproducible complete crash/lock of all LibreOffice windows ( steps in comment 10 ) ( Thanks to Caolán McNamara )
  6. tdf#128449 Inserting image as background results in blue bg ( Thanks to Aron Budea )
  7. tdf#128845 EDITING: cannot modify a bibliography entry after creating it ( Thanks to Noel Grandin )
  8. tdf#129119 crash in launching Customize dialog from StartCenter Tools -> Customize ( Thanks to Caolán McNamara )
  9. tdf#129127 Crash when sort by column of Excel 97-2003 file with specific data ( Thanks to Dennis Francis )
  10. tdf#129165 Impress: right-click menu on slide in Slide Pane is not available anymore ( Thanks to Xisco Fauli )
  11. tdf#129210 CRASH: recovering database file ( Thanks to Caolán McNamara )
  12. tdf#37156 FORMATTING: Paste table result different for paste destination “table cell” or “normal text area” ( Thanks to László Németh )

List of crashes fixed

  1. tdf#127955 Crash when opening Insert Fields in Writer ( Thanks to Caolán McNamara )
  2. tdf#128077 Always reproducible complete crash/lock of all LibreOffice windows ( steps in comment 10 ) ( Thanks to Caolán McNamara )
  3. tdf#129056 CRASH: changing line’s colour in chart sidebar ( Thanks to Muhammet Kara )
  4. tdf#129076 impress slideshow crashes with skia backend ( Thanks to Luboš Luňák )
  5. tdf#129119 crash in launching Customize dialog from StartCenter Tools -> Customize ( Thanks to Caolán McNamara )
  6. tdf#129127 Crash when sort by column of Excel 97-2003 file with specific data ( Thanks to Dennis Francis )
  7. tdf#129136 crash in basic function CurDir ( Thanks to Stephan Bergmann )
  8. tdf#129192 Sharing a file will crash the Android app ( Thanks to Jan Holesovsky )
  9. tdf#129210 CRASH: recovering database file ( Thanks to Caolán McNamara )
  10. tdf#129346 CRASH: sd::SdUnoSlideView::getCurrentPage() ( Thanks to Caolán McNamara )
  11. tdf#129519 Crash when using two or more documents from the same WebDAV server ( Thanks to Thorsten Behrens )
  12. tdf#129533 Calc crashes on Navigator click or move ( Thanks to Noel Grandin )

List of performance issues fixed

  1. tdf#112989 Time required to export a large document has doubled for Latin (text layout issue) ( Thanks to Noel Grandin )
  2. tdf#119227 A five second freeze when copying a large bulleted list ( Thanks to Noel Grandin )
  3. tdf#129227 Poor performance in a Basic code ( Thanks to Mike Kaganski )
  4. tdf#129228 FILEOPEN XLSX: file won’t open then very slow (2 speedups in this bug) ( Thanks to Noel Grandin )
  5. tdf#129256 ReDim is slow when array custom type is explicitly known ( Thanks to Mike Kaganski )

List of old bugs ( more than 4 years old ) fixed

  1. tdf#34517 UI: Texts in context menu ‘Arrangement for chart lines’ interchanged ( Thanks to Kelemen Gábor )
  2. tdf#35570 Moving rows (and columns too) in tables overwrites content ( Thanks to László Németh )
  3. tdf#37156 FORMATTING: Paste table result different for paste destination “table cell” or “normal text area” ( Thanks to László Németh )
  4. tdf#38394 EDITING: Can’t insert a French opening quote after an apostrophe using AutoCorrection ( Thanks to László Németh )
  5. tdf#47583 PRINTING: Behaviour of Writer Print Options are not Transparent ( Thanks to Michael Weghorn )
  6. tdf#54409 AutoCorrect not correcting word next to smart/curved quote-mark (single or double) ( Thanks to László Németh )
  7. tdf#59327 BASIC: A missing optional argument is treated as a not declared variable. ( Thanks to Mike Kaganski )
  8. tdf#59666 EDITING: Option to disable Greek letters (αβγδελμ..) converting to big letters (ABGDE…) as automatic capitalization of first letters in sentence ( Thanks to László Németh )
  9. tdf#64902 Add new menu options to move rows/columns in tables without overwriting the original cells ( Thanks to László Németh )
  10. tdf#65038 EDITING: Search&Replace doesn’t replace regular expression with Look assertions (ahead-behind) ( Thanks to Mike Kaganski )
  11. tdf#75806 SearchWords in ReplaceDescriptor ( Thanks to Mike Kaganski )
  12. tdf#83248 PRINTING: “Single-line” text box always printed in black ( Thanks to Arnaud Versini )
  13. tdf#87569 FILEOPEN: Incorrect layout of table in DOCX file ( Thanks to Bakos Attila )

WORKSFORME bugs

111 bugs have been retested by 49 people.

Top 10 testers

  1. Timur ( 17 )
  2. Xisco Faulí ( 11 )
  3. Michael Weghorn ( 8 )
  4. Alex Thurgood ( 6 )
  5. Julien Nabet ( 6 )
  6. Buovjaga ( 6 )
  7. m.a.riosv ( 5 )
  8. Telesto ( 3 )
  9. Dieter Praas ( 3 )
  10. Heiko Tietze ( 3 )

DUPLICATED bugs

150 bugs have been duplicated by 38 people.

Top 10 testers

  1. Timur ( 44 )
  2. Xisco Faulí ( 23 )
  3. Michael Weghorn ( 7 )
  4. V Stuart Foote ( 6 )
  5. Heiko Tietze ( 5 )
  6. Dieter Praas ( 5 )
  7. m.a.riosv ( 5 )
  8. NISZ LibreOffice Team ( 4 )
  9. Mike Kaganski ( 4 )
  10. BogdanB ( 4 )

Verified bug fixes

170 bugs have been verified by 17 people.

Top 10 Verifiers

  1. raal ( 78 )
  2. Xisco Faulí ( 54 )
  3. Dieter Praas ( 9 )
  4. Thorsten Behrens (CIB) ( 8 )
  5. Buovjaga ( 4 )
  6. Timur ( 3 )
  7. Roman Kuznetsov ( 3 )
  8. BogdanB ( 2 )
  9. V Stuart Foote ( 1 )
  10. Vera Blagoveschenskaya ( 1 )

Categorized Bugs

304 bugs have been categorized with a metabug by 36 people.

Top 10 Categorizers

  1. Roman Kuznetsov ( 69 )
  2. Dieter Praas ( 56 )
  3. Aron Budea ( 35 )
  4. sdc.blanco ( 20 )
  5. V Stuart Foote ( 14 )
  6. NISZ LibreOffice Team ( 14 )
  7. Chris Sherlock ( 14 )
  8. oesterblog-admin ( 11 )
  9. Timur ( 9 )
  10. Oliver Brinzing ( 8 )

Regression Bugs

106 bugs have been set as regressions by 23 people.

Top 10

  1. Xisco Faulí ( 51 )
  2. Timur ( 17 )
  3. raal ( 5 )
  4. Roman Kuznetsov ( 5 )
  5. NISZ LibreOffice Team ( 4 )
  6. Oliver Brinzing ( 4 )
  7. Mike Kaganski ( 2 )
  8. Dieter Praas ( 2 )
  9. Justin L ( 2 )
  10. Boaz Dodin ( 1 )

Bisected Bugs

84 bugs have been bisected by 12 people.

Top 10 Bisecters

  1. Xisco Faulí ( 59 )
  2. raal ( 10 )
  3. Oliver Brinzing ( 4 )
  4. NISZ LibreOffice Team ( 2 )
  5. Justin L ( 2 )
  6. Telesto ( 1 )
  7. Kevin Suo ( 1 )
  8. Terrence Enger ( 1 )
  9. Mike Kaganski ( 1 )
  10. Thomas Bertels ( 1 )

Evolution of Unconfirmed Bugs

Check the current list of unconfirmed bugs here

Evolution of Open Regressions

Check the current list of open regressions here

Evolution of Open bibisectRequests

Check the current list of open bibisectrequests here

Evolution of Highest Priority Bugs

Check the current list of highest priority bugs here

Evolution of High Priority Bugs

Check the current list of high priority bugs here

Thank you all for making Libreoffice rock!
Join us and help to keep LibreOffice super reliable!
Check the Get Involved page out now!

by x1sc0 at January 10, 2020 02:02 PM

>Marius Popa Adrian

Firebird high-level native client for Node.js / TypeScript updated to v2.1.0

Firebird high-level native client for Node.js / TypeScript updated to v2.1.0 with a few changes . Feature #30 - Add methods executeReturningAsObject and fetchAsObject to return records as objects instead of arrays. Feature #43 - Add Statement.columnLabels property.

by Popa Adrian Marius (noreply@blogger.com) at January 10, 2020 09:47 AM

Wire encryption plugin using chacha cypher in Firebird master branch

AlexPeshkoff Added wire crypt plugin using ChaCha cipher Co-authored-by: Vlad Khorsun Here is the pull request #244

by Popa Adrian Marius (noreply@blogger.com) at January 10, 2020 09:36 AM

January 09, 2020

Roman Kuznetsov

Problem with LibreOffice installed with SiGUI

This note is more for QA people in LibreOffice project. 
If you test LibreOffice in Windows then possibly you use the SiGUI tool for parallel installing of many versions of LibreOffice.
Some days ago I got a crash in current developer build (future LibreOffice 6.5) that was installed with SiGUI. Nobody could repro that crash, but I got it every time. Deleting of user profile have not help. I always installed LibreOffice for testing into the same directory on top of old version. It was a reason for my problem! A crash disappeared only after LibreOffice installing to another clean directory.
So better install LibreOffice for testing with SiGUI only in clean path and if you want use for it only one directory, then delete all subdirectories and all files from it before install.

by Roman Kuznetsov (noreply@blogger.com) at January 09, 2020 01:33 PM

January 06, 2020

>Marius Popa Adrian

SHA-256 in Firebird 3.0.x

Thanks to contributions from Alex Peshkov and Tony Whyman in Firebird 3.0.4 SHA-256 message digest may be used instead of SHA-1 for generating the client proof: https://firebirdsql.org/file/documentation/release_notes/html/en/3_0/rnfb30-security-new-authentication.html#rnfb30-security-srp-patch304 Here is the related patch and proposed fix : CORE-5788

by Popa Adrian Marius (noreply@blogger.com) at January 06, 2020 03:56 PM

January 04, 2020

Roman Kuznetsov

About problems in LibreOffice from Linux distro packages

Very big thank you for all people who write bug reports about LibreOffice in to our bugzilla. But sometime I see, that your problems are only in Linux distro's (like SuSe, Ubuntu, Arch, etc.) LibreOffice and we can't repro your problem in LibreOffice from TDF site.
Your reports are really very important for our project and you really help make LibreOffice better. Unfortunately, we have only several active QA member now. So I have a big request for you, dear bug reporters: before post a report with LibreOffice problem in to our bugzilla, please make sure that your problem reproducible not only in your installed LibreOffice but also in LibreOffice downloaded from TDF site. It makes QA work more simple.
Thank you for your reports anyway.

by Roman Kuznetsov (noreply@blogger.com) at January 04, 2020 08:56 PM

December 30, 2019

Official TDF Blog

Happy New Year 2020

2020 is going to be a milestone year for the LibreOffice community, as we are going to celebrate the 10th anniversary of the LibreOffice project on September 28 – the date of the official announcement, with a press release distributed to FOSS media – and the 20th anniversary of the free office suite on July 19 – the date of the announcement issued by Sun for the release of StarOffice source code to the open source community.

It will be a year long celebration. To start it in the right way, four images which can be reused by LibreOffice community members to share their commitment to FOSS and to the best free office suite ever (background images are from Pixabay, and can be used without attribution). By right clicking on the images, it will be possible to download a larger version (2500 pixel wide).

Happy New Year 2020 to all LibreOffice community members and users worldwide.

by Italo Vignoli at December 30, 2019 11:07 PM

Video: LibreOffice in 2019 – project and community recap

Check out this short video of activities throughout the year:

Please confirm that you want to play a YouTube video. By accepting, you will be accessing content from YouTube, a service provided by an external third party.

YouTube privacy policy

If you accept this notice, your choice will be saved and the page will refresh.

by Mike Saunders at December 30, 2019 02:34 PM

December 28, 2019

Jean Hollis Weber

LibreOffice 6.2 Calc Guide published

LibreOffice 6.2 Calc Guide front coverIt’s been a long time coming, but an updated version of the LibreOffice Calc Guide has finally been completed by the Documentation Team.

Free PDFs are here: https://wiki.documentfoundation.org/Documentation/Publications#LibreOffice_Calc_Guide and will be linked from the main LibreOffice website in the new year.

A printed copy can be purchased here: http://www.lulu.com/content/paperback-book/libreoffice-62-calc-guide/26019667

by Jean at December 28, 2019 09:39 AM

December 24, 2019

Michael Meeks

2019-12-24 Tuesday.

  • Mail chew; more staff calls. Out for some shopping into town, back for lunch.
  • Posted our annual: Thank-you & summary of 2019 - to try to thank so many who have worked with us this year.
  • Out for a walk, back, babes watched Frozen with J.

December 24, 2019 03:58 PM

December 23, 2019

Michael Meeks

2019-12-23 Monday.

  • Calls with staff, annual review write-ups, a few calls & more work in the car on the way to B&A's arrived; worked through the afternoon, lots of great work done by the team through the year.

December 23, 2019 09:00 PM

LibreOffice QA Blog

LibreOffice 6.4 RC1 is ready for testing!

The LibreOffice Quality Assurance ( QA ) Team is happy to announce LibreOffice 6.4 RC1 is ready for testing!

LibreOffice 6.4 will be released as final at the end of January, 2020, being LibreOffice 6.4 RC1 the third pre-release since the development of version 6.4 started in the beginning of June, 2019 ( See the release plan ). Since LibreOffice 6.4 Beta1 ( the previous pre-release ), 410 commits have been submitted to the code repository and 195 bugs have been fixed. Check the release notes to find the new features included in this version of LibreOffice.

LibreOffice 6.4 RC1 can be downloaded from here, it’s available for Linux, MacOS and Windows. ( Note that it will replace your actual installation )

In case you find any problem in this pre-release, please report it in Bugzilla ( You just need a legit email address in order to create a new account ) so it can get fixed before LibreOffice 6.4 final is released.

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

Happy testing!!

Download it now!

by x1sc0 at December 23, 2019 04:33 PM

Official TDF Blog

Community Member Monday: Saikeo Kavhanxay

For our final Community Member Monday of 2019, we talk to Saikeo Kavhanxay, who is helping with the Lao language localisation of LibreOffice…

First, tell us a bit about yourself!

I live in Vientiane, Laos. I am working as a full-time network engineer. My hobbys are reading books, surfing the internet and learning how to code. I also dedicate my free time to the open source community and I have contributed to other open source projects as well.

You can find me on social media – Twitter and my blog.

What are you working on in LibreOffice at the moment?

Currently I am contributing to LibreOffice localization for my locale. In the future I also plan to contribute to other parts of the project as well, like filing bugs, development and assisting people in my community who have questions about using LibreOffice.

How did you get involved in the project?

I’ve been using LibreOffice for a long time, and then I realised that I want to contribute something back, so I decided to contact my locale and the LibreOffice localization community. After that, I got an opportunity to contribute to LibreOffice. I think is quite easy to get involved in the project – you can reach to your locale or the LibreOffice localization team and then they will get back to you shortly.

What do you think LibreOffice needs in the future?

To avoid license issues, and due to limited budgets, some organisations in my country use LibreOffice. So, I think the LibreOffice community in Southeast Asia needs to expand more, and work on LibreOffice Online.

Thanks to Saikeo and the Lao localisation team for their great work! Everyone is welcome to join our friendly community and give us a hand with design, documentation, QA, and many other aspects of the software. It’s a great way to build up experience, meet new people and have fun!

by Mike Saunders at December 23, 2019 08:54 AM

December 22, 2019

Michael Meeks

2019-12-22 Sunday.

  • All Saints service in the morning - Fraser taught, back home for lunch, and out for a walk with the babes. N. ill. Slugged, tea, out to the (packed) Carol Service in the evening, lovely. Bed late.

December 22, 2019 09:00 PM

December 21, 2019

Michael Meeks

2019-12-20 Friday.

  • More debugging work, fixing; annual review planing & finalization.
  • J's family over for a present-exchange, J. made a lovely spread for us all.
  • Sync call with Tracie.

December 21, 2019 09:00 PM

December 20, 2019

Michael Meeks

2019-12-20 Friday.

  • More debugging work, fixing; annual review planing & finalization; re-spun builds.
  • J's family over for a present-exchange, J. made a lovely spread for us all.
  • Sync call with Tracie, calls with staff.

December 20, 2019 09:00 PM

Official TDF Blog

10/20: LibreOffice 10th anniversary in 2020, a year long celebration

LibreOffice was announced on September 28, 2010, with a positive feedback from tech and business media all over the world (above, two significant titles from eWeek and Linux Gizmos). To celebrate the event, The Document Foundation has organized a year long anniversary project, starting at FOSDEM in Brussels on February 1/2 and ending at POSS in Paris in early December 2020.

LibreOffice community members will attend as many FOSS events as possible, carrying stickers and swag with the anniversary logo. The author is Rania Amina from Indonesia, a member of the LibreOffice community who has already contributed with logos and 2D animations to the success of LibreOffice Indonesia Conference in 2018.

Rania Amina will attend FOSDEM in Brussels, and will also talk about the LibreOffice Theme Changer at the Open Document Editors DevRoom.

So far, in addition to FOSDEM and POSS, events have been confirmed in Nigeria (Open Source Africa), Kosovo (FLOSSK), Croatia (DORS/CLUC), Albania (OSCAL), France (Libre Graphics Meeting and OW2con), Taiwan (COSCUP and LibreOffice Asia Conference), India (Open Source India), Germany (Chemnitzer Linux-Tage, FrOSCon and the LibreOffice Conference), US (All Things Open) and Serbia (PSSOH), but several other are being currently discussed and will be announced as soon as possible.

Stay tuned !!! 2020 will be an exciting time for the LibreOffice community !!!

by Italo Vignoli at December 20, 2019 01:04 PM

Miklos Vajna

Semi-transparent text in Draw/Impress

Draw/Impress now has support for semi-transparent shape text, next to the existing transparency support in the context of shape fill colors and shape border colors.

First, thanks Vector who made this work by Collabora possible.

Here is how it looks:

https://lh3.googleusercontent.com/FJ55-BJ_Mc75TiyrPYuvtOscHOqFp81sEI4SfJvybPzaXG5Y2n4mIoLRzkXydEEmtEf--l9s_h-L4CyYjuGpTyOngOTi8YAzIFp8bQBEn0k2DWsRzJHLdfttf74wTbdPgZUzgSnOYQ=w640
Figure 1. Semi-transparent text in Draw

What you can see is that next to the existing character color, now you can also set a transparency percentage to decide if the text should be entirely transparent, entirely opaque or something between the two.

The primary focus was Draw in this case, but this also helps PPTX support, as the importer/exporter now handles this for Impress documents as well.

All this is available in LibreOffice master (towards 6.5), so you can try it out right now, if interested.

by Miklos Vajna at December 20, 2019 08:39 AM

December 19, 2019

Collabora Community

Enthusiast students building LibreOffice – Report from Bootcamp in Ankara

Developing in C++ is not easiest thing you can do in ICT. But if you have some C++ knowledge and skills, it brings you great possibilities. What to think of building LibreOffice and working somewhere in the million lines of code? In Ankara, at the Hacettepe University’s Beytepe Campus, 40 students joining the LibreOffice Developer Bootcamp, just arrived at that point.

Muhammet Kara, Collabora Productivity developer, who gives the courses, tells:

We have finished the 5th session/week of the Bootcamp. So far, we did the following. The first four weeks we did C++ basics, and covered topics such as syntax, operators, data types, arrays, pointers, exceptions.. You name it. On week 2, 3, and 4 the students had to do three home works /assignments. In week 5 we looked at LibreOffice development: how it is organized, who are involved, tooling, habits. And of course: what is good about contributing to LibreOffice. The next week the students should have a complete building environment. So we’ll start the real development: working on easy hacks. More on that in the next report!

Collabora is really glad about the enthusiasm for LibreOffice development and happy to sponsor the Ankara Bootcamp.

The training program attracted much interest from the students side. In the first weeks, which were mainly about the basics of C++, were attended by 120 to 140 students were attending the course. The weekly plans for week 3 and week 4 (in Turkish), published on Muhammet Kara’s blog, show the ambitious amount of content they have been introduced to.  The LibreOffice Development Bootcamp was also widely noticed beyond the sphere of the Hacettepe University. The tweets posted on the topic generated many hundreds of interactions and over ten thousand views in the social network.

In week five the specific work on LibreOffice moved more into focus. It was discussed why it makes sense to contribute to it. 40 students took part in this phase of the bootcamp, a great number if you consider that it is not a mandatory course and the demands on the participants were very challenging. The weekly sessions will be given until the end of the semester, January 2020. We will keep you updated here and report about the next weeks of the LibreOffice Developer Camp in Ankara.

 

The post Enthusiast students building LibreOffice – Report from Bootcamp in Ankara appeared first on Collabora Productivity.

by Cor Nouws at December 19, 2019 03:00 PM

December 16, 2019

Collabora Community

CODE 4.2.0 Released with fresh User Interface

Clean look, feature rich Side Bar, and much more

Cambridge, United Kingdom, December 16, 2019 – Collabora Productivity, the driving force behind bringing LibreOffice to the cloud, is excited to announce a new, major release of our product CODE (Collabora Online Development Edition) 4.2.0 This release includes a fresh look, mobile improvements, improved inter-operability, new dialogs and functionality as well as a raft of bug fixes and polish. The release gives you an insight into our soon-to-be released enterprise version Collabora Online 4.2.0. CODE and Collabora Online offer privacy as well as the only truly open-source solution for working with and collaborating on rich documents in the cloud.

CODE logo

What’s new?

This major update of Collabora Online Development Edition (CODE) comes with a rich new user interface and is built onto of the stability and performance of our LTS version of LibreOffice: Collabora Office 6.2. It includes many improvements in functionality and user-friendliness. The most obvious new feature is the powerful sidebar on the right. Many settings for text and all kind of properties of objects in the documents can be easily updated here. The sidebar makes it much easier to change tables, colour settings and charts elements in the browser, with close to the same feature richness that is available in Collabora Office on the desktop. The status bar has been redesigned and our powerful function wizard is now available in Calc online. Copy and paste of rich text and content is added for online, and our responsive user interface adapts nicely to mobile phones and tablets.

Rich chart functions from the side bar

When charts are selected, the sidebar now gives access to a wide range of features. For example, you can easily choose chart types from bars, lines and points, pies and more, or whether the diagram should be displayed in 3D.

Other elements of charts can now also be adjusted from the sidebar. You can now determine how and where titles and legends are displayed. Furthermore, many of the visual elements of the diagram can be adjusted here. The sidebar also allows you to define the surface colour, transparency, line types and grid lines.

Click to see that in action:

Click to see the chart sidebar in action

Online function wizard: a powerful tool for formulas

Working with formulas is important and especially for the more complex types, having help with the tenth optional parameter is good. The new function wizard does that and it is new available in Calc from now on. The function wizard grants easy access to all elements of also the most complex formulas. It shows the structure and meaning of different parts of a formula, and more.

Conditions apply: Enhanced formatting options in Calc

Conditional formatting is a powerful feature in Calc. It is enables you to quickly visualize data in a spreadsheet by setting various useful rules on your sheet to adapt the cells formatting, colour, or even add icons when certain criteria are met. While a simplified set of conditional formats was previously available via an icon in the toolbar, you can now also make use of the full dialogs, to be found in the Format menu, to define and manage conditions fully.

Better display in Calc: smooth scaling of spreadsheets

The scaling of spreadsheets has been significantly improved in CODE 4.2.0. While in Calc you could previously only choose between two zoom factors of 100% and 200%, now fine adjustment is are possible to suit. Using the convenient (and redesigned) quick selector in the lower right corner, you can now choose your favourite zoom percentage between 33% and 200%.

More presentation functions in the sidebar

The new sidebar adds many useful functions to Impress. For shapes and outlines, the size, position, colours, transparency, wrapping and so on are easy to change.

The possibilities to alter the slide master and lay out, from the sidebar, are also completely new in CODE 4.2. You can now access extensive layout functionality for slides such selecting masters, layouts and even editing your own master pages. Needless to say, that character settings, fonts types, sizes, colours and spacing can also be easily adjusted from the sidebar.

Handier working with images

Working with images in all document types is easier, more convenient and more precise. The sidebar allows to adjust colour options, such as brightness, contrast or transparency or the red, blue and green portion of the image. Another handy feature is the adjustment of the layer settings of the images. Bring them to the foreground or arrange them in the background – all via the sidebar.

Rich copy and paste between docx and xlsx documents and more… in the browser

People that work online, often have many documents open simultaneously, and want to mash them together into bigger, better documents. So you’ll be glad to learn the CODE 4.2.0 introduces copying of rich formatted content along with images, charts, and other complex elements, between your online spreadsheets, documents and presentations.

New online colour picker

For certain elements there is not only the usual colour selector, offering a palette, but also the colour picker to chose any custom colours needed. Use it with text and background in presentations, lines in spreadsheets and presentations, text and background for floating frames in text documents.

Handling links in Writer has just become more pleasant

CODE 4.2.0 brings very nice enhancements when working with hyperlinks. Whenever the mouse cursor is located next to a link or on it, you will be kindly notified by a pop-up dialogue allowing the real target to be inspected and launched conveniently with a single click.

Beautiful new icons and a redesigned theme

The new design of the icons embellishes the upper toolbar. The new theme is tidier has more generous spacing, and is clearer in general. It should increase productivity and reduce friction. Buttons that are selected have a clearer and more distinct highlight too.

The status bar also benefits from our visual redesign. Not only does it look cleaner, it also improves quick access to the functions located there. The language of documents can now also be set via a popup.

Table editing in the side bar and table handles

In Writer it is now possible to manipulate tables extensively from the sidebar and we also added easy to use in-document selection handles, choose either or both. Previously the table dialog had to be used, which was far less convenient. These handles make adjusting row height and column width very user-friendly.

You want to insert rows or columns from here? Of course! Or delete some or all of them? a click! Furthermore, the sidebar also allows you to set the background colour of the cells or to fine-tune their height and width of rows and columns. It becomes even more interesting if you select several cells. Then you can also merge them from the sidebar or distribute them evenly.

 

Table of contents

In text documents, the full table of contents can now be configured with the new dialogs. So even online, you can customize your complex table of contents in a few clicks according to your wishes. For example edit the entries and change style, background or columns.

About CODE

CODE is the Collabora Online Development Edition. It contains the latest developments and is perfect for home users that want to start to run their own online office suite. It enables them to regain control of their own online documents and host them themselves in their own controlled and private environment. For them and also for tech-enthusiast, it is a low-threshold way to get involved and familiar with our online office solution. CODE gives the possibility to be the first to use new features. It will be improved continuously and our next enterprise Collabora Online product will be built from it. Note that we recommend our supported and maintained enterprise release: Collabora Online for business and production environments. CODE warns users that they might want support after 10 concurrent documents or 20 concurrent users. Find out how about the different ways to install CODE on our product page.

Get CODE 4.2.0!

The post CODE 4.2.0 Released with fresh User Interface appeared first on Collabora Productivity.

by Marc Rodrigues at December 16, 2019 10:27 AM

December 13, 2019

Kohei Yoshida

Benchmark results on mdds multi_type_vector

In this post, I’m going to share the results of some benchmark testing I have done on multi_type_vector, which is included in the mdds library. The benchmark was done to measure the impact of the change I made recently to improve the performance on block searches, which will affect a major part of its functionality.

Background

One of the data structures included in mdds, called multi_type_vector, stores values of different types in a single logical vector. LibreOffice Calc is one primary user of this. Calc uses this structure as its cell value store, and each instance of this value store represents a single column instance.

Internally, multi_type_vector creates multiple element blocks which are in turn stored in its parent array (primary array) as block structures. This primary array maps a logical position of a value to the actual block structure that stores it. Up to version 1.5.0, this mapping process involved a linear search that always starts from the first block of the primary array. This was because each block structure, though it stores the size of the element block, does not store its logical position. So the only way to find the right element block that intersects the logical position of a value is to scan from the first block and keep accumulating the sizes of the encountered blocks. The following diagram depicts the structure of multi_type_vector’s internal store as of 1.5.0:

The reason for not storing the logical positions of the blocks was to avoid having to update them after shifting the blocks after value insertion, which is quite common when editing spreadsheet documents.

Of course, sometimes one has to perform repeated searches to access a number of element values across a number of element blocks, in which case, always starting the search from the first block, or block 0, in every single search can be prohibitively expensive, especially when the vector is heavily fragmented.

To alleviate this, multi_type_vector provides the concept of position hints, which allows the caller to start the search from block N where N > 0. Most of multi_type_vector’s methods return a position hint which can be used for the next search operation. A position hint object stores the last position of the block that was either accessed or modified by the call. This allows the caller to chain all necessary search operations in such a way to scan the primary array no more than once for the entire sequence of search operations. It was largely inspired by std::map’s insert method which provides a very similar mechanism. The only prerequisite is that access to the elements occur in perfect ascending order. For the most part, this approach worked quite well.

The downside of this is that there are times you need to access multiple element positions and you cannot always arrange your access pattern to take advantage of the position hints. This is the case especially during multi-threaded formula cell execution routine, which Calc introduced some versions ago. This has motivated us to switch to an alternative lookup algorithm, and binary search was the obvious replacement.

Binary search

Binary search is an algorithm well suited to find a target value in an array where the values are stored in sorted order. Compared to linear search, binary search performs much faster except for very small arrays. People often confuse this with binary search tree, but binary search as an algorithm does not limit its applicability to just tree structure; it can be used on arrays as well, as long as the stored values are sorted.

While it’s not very hard to implement binary search manually, the C++ standard library already provides several binary search implementations such as std::lower_bound and std::upper_bound.

Switch from linear search to binary search

The challenge for switching from linear search to binary search was to refactor multi_type_vector’s implementation to store the logical positions of the element blocks and update them real-time, as the vector gets modified. The good news is that, as of this writing, all necessary changes have been done, and the current master branch fully implements binary-search-based block position lookup in all of its operations.

Benchmarks

To get a better idea on how this change will affect the performance profile of multi_type_vector, I ran some benchmarks, using both mdds version 1.5.0 – the latest stable release that still uses linear search, and mdds version 1.5.99 – the current development branch which will eventually become the stable 1.6.0 release. The benchmark tested the following three scenarios:

  1. set() that modifies the block layout of the primary array. This test sets a new value to an empty vector at positions that monotonically increase by 2, until it reaches the end of the vector.
  2. set() that updates the value of the last logical element of the vector. The update happens without modifying the block layout of the primary array. Like the first test, this one also measures the performance of the block position lookup, but since the block count does not change, it is expected that the block position lookup comprises the bulk of its operation.
  3. insert() that inserts a new element block at the logical mid-point of the vector and shifts all the elements that occur below the point of insertion. The primary array of the vector is made to be already heavily fragmented prior to the insertion. This test involves both block position lookup as well as shifting of the element blocks. Since the new multi_type_vector implementation will update the positions of element blocks whose logical positions have changed, this test is designed to measure the cost of this extra operation that was previously not performed as in 1.5.0.

In each of these scenarios, the code executed the target method N number of times where N was specified to be 10,000, 50,000, or 100,000. Each test was run twice, once with position hints and once without them. Each individual run was then repeated five times and the average duration was computed. In this post, I will only include the results for N = 100,000 in the interest of space.

All binaries used in this benchmark were built with a release configuration i.e. on Linux, gcc with -O3 -DNDEBUG flags was used to build the binaries, and on Windows, MSVC (Visual Studio 2017) with /MD /O2 /Ob2 /DNDEBUG flags was used.

All of the source code used in this benchmark is available in the mdds perf-test repository hosted on GitLab.

The benchmarks were performed on machines running either Linux (Ubuntu LTS 1804) or Windows with a variety of CPU’s with varying number of native threads. The following table summarizes all test environments used in this benchmark:

It is very important to note that, because of the disparity in OS environments, compilers and compiler flags, one should NOT compare the absolute values of the timing data to draw any conclusions about CPU’s relative performance with each other.

Results

Scenario 1: set value at monotonically increasing positions

This scenario tests a set of operations that consists of first seeking the position of a block that intersects with the logical position, then setting a new value to that block which causes that block to split and a new value block inserted at the point of split. The test repeats this process 100,000 times, and in each iteration the block search distance progressively increases as the total number of blocks increases. In Calc’s context, scenarios like this are very common especially during file load.

Without further ado, here are the results:

You can easily see that the binary search (1.5.99) achieves nearly the same performance as the linear search with position hints in 1.5.0. Although not very visible in these figures due to the scale of the y-axes, position hints are still beneficial and do provide small but consistent timing reduction in 1.5.99.

Scenario 2: set at last position

The nature of what this scenario tests is very similar to that of the previous scenario, but the cost of the block position lookup is much more emphasized while the cost of the block creation is eliminated. Although the average durations in 1.5.0 without position hints are consistently higher than their equivalent values from the previous scenario across all environments, the overall trends do remain similar.

Scenario 3: insert and shift

This last scenario was included primarily to test the cost of updating the stored block positions after the blocks get shifted, as well as to quantify how much increase this overhead would cause relative to 1.5.0. In terms of Calc use case, this operation roughly corresponds with inserting new rows and shifting of existing non-empty rows downward after the insertion.

Without further ado, here are the results:

These results do indicate that, when compared to the average performance of 1.5.0 with position hints, the same operation can be 4 to 6 times more expensive in 1.5.99. Without position hints, the new implementation is more expensive to a much lesser degree. Since the scenario tested herein is largely bottlenecked by the block position updates, use of position hints seems to only provide marginal benefit.

Adding parallelism

Faced with this dilemma of increased overhead, I did some research to see if there is a way to reduce the overhead. The suspect code in question is in fact a very simple loop, and all its does is to add a constant value to a known number of blocks:

template
void multi_type_vector<_CellBlockFunc, _EventFunc>::adjust_block_positions(size_type block_index, size_type delta)
{
    size_type n = m_blocks.size();

    if (block_index >= n)
        return;

    for (; block_index < n; ++block_index)
        m_blocks[block_index].m_position += delta;
}

Since the individual block positions can be updated entirely independent of each other, I decided it would be worthwhile to experiment with the following two types of parallelization techniques. One is loop unrolling, the other is OpenMP. I found these two techniques attractive for this particular case, for they both require very minimal code change.

Adding support for OpenMP was rather easy, since all one has to do is to add a #pragma line immediately above the loop you intend to parallelize, and add an appropriate OpenMP flag to the compiler when building the code.

Adding support for loop unrolling took a little fiddling around, but eventually I was able to make the necessary change without breaking any existing unit test cases. After some quick experimentation, I settled with updating 8 elements per iteration.

After these changes were done, the above original code turned into this:

template
void multi_type_vector<_CellBlockFunc, _EventFunc>::adjust_block_positions(int64_t start_block_index, size_type delta)
{
    int64_t n = m_blocks.size();

    if (start_block_index >= n)
        return;

#ifdef MDDS_LOOP_UNROLLING
    // Ensure that the section length is divisible by 8.
    int64_t len = n - start_block_index;
    int64_t rem = len % 8;
    len -= rem;
    len += start_block_index;
    #pragma omp parallel for
    for (int64_t i = start_block_index; i < len; i += 8)
    {
        m_blocks[i].m_position += delta;
        m_blocks[i+1].m_position += delta;
        m_blocks[i+2].m_position += delta;
        m_blocks[i+3].m_position += delta;
        m_blocks[i+4].m_position += delta;
        m_blocks[i+5].m_position += delta;
        m_blocks[i+6].m_position += delta;
        m_blocks[i+7].m_position += delta;
    }

    rem += len;
    for (int64_t i = len; i < rem; ++i)
        m_blocks[i].m_position += delta;
#else
    #pragma omp parallel for
    for (int64_t i = start_block_index; i < n; ++i)
        m_blocks[i].m_position += delta;
#endif
}

I have made the loop-unrolling variant of this method a compile-time option and kept the original method intact to allow on-going comparison. The OpenMP part didn’t need any special pre-processing since it can be turned on and off via compiler flag with no impact to the code itself. I needed to switch the loop counter from the original size_type (which is a typedef to size_t) to int64_t so that the code can be built with OpenMP enabled on Windows, using MSVC. Apparently the Microsoft Visual C++ compiler requires the loop counter to be a signed integer for the code to even build with OpenMP enabled.

With these changes in, I wrote a separate test code just to benchmark the insert-and-shift scenario with all permutations of loop-unrolling and OpenMP. The number of threads to use for OpenMP was not specified during the test, which would cause OpenMP to automatically use all available native threads.

With all of this out of the way, let’s look at the results:

Here, LU and OMP stand for loop unrolling and OpenMP, respectively. The results from each machine consist of four groups each having two timing values, one with 1.5.0 and one with 1.5.99. Since 1.5.0 does not use neither loop unrolling nor OpenMP, its results show no variance between the groups, which is expected. The numbers for 1.5.99 are generally much higher than those of 1.5.0, but the use of OpenMP brings the numbers down considerably. Although how much OpenMP reduced the average duration varies from machine to machine, the number of available native threads likely plays some role. The reduction by OpenMP on Core i5 6300U (which comes with 4 native threads) is approximately 30%, the number on Ryzen 7 1700X (with 16 native threads) is about 70%, and the number on Core i7 4790 (with 8 native threads) is about 50%. The relationship between the native thread count and the rate of reduction somewhat follows a linear trend, though the numbers on Xeon E5-2697 v4, which comes with 32 native threads, deviate from this trend.

The effect of loop unrolling, on the other hand, is visible only to a much lesser degree; in all but two cases it has resulted in a reduction of 1 to 7 percent. The only exceptions are the Ryzen 7 without OpenMP which denoted an increase of nearly 16%, and the Xeon E5630 with OpenMP which denoted a slight increase of 0.1%.

The 16% increase with the Ryzen 7 environment may well be an outlier, since the other test in the same environment (with OpenMP enabled) did result in a reduction of 7% – the highest of all tested groups.

Interpreting the results

Hopefully the results presented in this post are interesting and provide insight into the nature of the change in multi_type_vector in the upcoming 1.6.0 release. But what does this all mean, especially in the context of LibreOffice Calc? These are my personal thoughts.

  • From my own observation of having seen numerous bug reports and/or performance issues from various users of Calc, I can confidently say that the vast majority of cases involve reading and updating cell values without shifting of cells, either during file load, or during executions of features that involve massive amounts of cell I/O’s. Since those cases are primarily bottlenecked by block position search, the new implementation will bring a massive win especially in places where use of position hints was not practical. That being said, the performance of block search will likely see no noticeable improvements even after switching to the new implementation when the code already uses position hints with the old implementation.
  • While the increased overhead in block shifting, which is associated with insertion or deletion of rows in Calc, is a certainly a concern, it may not be a huge issue in day-to-day usage of Calc. It is worth pointing out that that what the benchmark measures is repeated insertions and shifting of highly fragmented blocks, which translates to repeated insertions or deletions of rows in Calc document where the column values consist of uniformly altering types. In normal Calc usage, it is more likely that the user would insert or delete rows as one discrete operation, rather than a series of thousands of repeated row insertions or deletions. I am highly optimistic that Calc can absorb this extra overhead without its users noticing.
  • Even if Calc encounters a very unlikely situation where this increased overhead becomes visible at the UI level, enabling OpenMP, assuming that’s practical, would help lessen the impact of this overhead. The benefit of OpenMP becomes more elevated as the number of native CPU threads becomes higher.

What’s next?

I may invest some time looking into potential use of GPU offloading to see if that would further speed up the block position update operations. The benefit of loop unrolling was not as great as I had hoped, but this may be highly CPU and compiler dependent. I will likely continue to dig deeper into this and keep on experimenting.

by Kohei Yoshida at December 13, 2019 02:24 AM

December 10, 2019

Collabora Community

New: Collabora Office for Android

Great new interface and editing – in beta

We are excited to announce a complete new version of Collabora Office for Android, available now in Google Play, with the following main improvements:

  • A great looking interface, easy to use with just one hand on your phone
  • Editing of complex office documents, not just viewing
  • Now re-uses the same technology as Collabora Online.

In common with other Collabora Productivity products, this new Android release enables people to edit their documents without compromising on privacy. There is no longer a reason to hand over your data to get rich mobile editing.
The new release marks the end of a period of rewriting important parts of the application. We now share much of the code and user experience from Collabora Online’s collaborative editor as well as Collabora Office 6.2 for displaying the documents.

 

  (minimal version Android 5.0)

What it looks like

Text file and image details – Collabora Office for Android

Typing in a text document – Collabora Office for Android

Inserting and editing tables – Collabora Office for Android

More great interface details

Text file with spreadsheet embedded – Collabora Office for Android

Image handling in text document – Collabora Office for Android

A new front end, re-using Collabora Online

The technology under the hood has changed almost completely, with only the LibreOffice core for rendering the documents remained. We removed the previous Fennec tiled renderer, and moved to re-use a our Collabora Online web view. This means our Android app can share the same features as our flagship product Collabora Online. The recently released Collabora Office for iOS uses the same approach. As a result, features and improvements and fixes made foor one solution (online, mobile, desktop) often enhance all the others. The Javascript and CSS base makes contributing to and developing and debugging the app much simpler for people to get involved with.

 

Shape editing – Collabora Office for Andoid

 

Spreadsheet in Collabora Office for Android

 

Rich documents in Collabora Office for Android

 

Getting involved

Once you have got Collabora Office (Google Play), your feedback is much appreciated. Report any problems you find to the bug tracker, and attach any documents related to the issue so developers can investigate. You can also checkout the Online code and build it yourself.

Rich history and community growth

The road to the current version of the Android app was a long one, one with many companions and some detours. The first version that brought LibreOffice to the Android platform was released in 2011 after an intensive process of cross-compiling and a number of bug fixes. This version was rather a proof of concept and by no means suitable for productive work.

Two years later, in 2013, the application had developed into a document viewer rendering entire pages and including basic user interface to handle pages. During the years 2014 to 2015, the rendering was changed to split the pages into „tiles“, the same way as other applications like Mozilla Firefox were doing. We have extracted the Mozilla’s compositing from their code and reused it in our Android app – still only a viewer. Later in this period, editing was added as an experimental feature.
Between 2016 and 2018 further features and functions were implemented thanks to community involvement, however the vision of a full editor was not realized.

In 2019 we decided to do a complete rewrite of everything above the LibreOffice rendering core. Inspiration for this was the development of the new Collabora Office for iOS app, which Collabora is driving forward together with our Swiss partner Adfinis SyGroup. The current, newly developed Android app benefits greatly from the Collabora Online code base and work for the iOS version and includes also features implemented this year during the GSoC, mentored by our engineers.

Thanks to everyone that contributed

This new Office app for Android obviously came by a huge investment from Collabora.  As with all open source projects, it has also been made possible by the open source community as a whole, by many organizations and the personal dedication of many individuals that contributed. Specifically, for this Android app we want to mention the initial Android port funded by SUSE. The initial app used the tiled rendering funded by CloudOn, and was driven by Smoose, IceWarp and many customers of Collabora Productivity. The Document Foundation’s donors also funded the initial basic editing functionality.

Without ever doing justice to the entire crowd of supporters, we would like to thank a few people whose performance in this development has been outstanding. At this point, we would like to mention the pioneering work of our fellow two collaborators Tor Lillqvist and Michael Meeks and on the initial version of the App that among others included a first loader developed by Iain Billiet, during his GSoC ‘12 program and other components by Matúš Kukan.

Tomaž Vajngerl contributed to the already mentioned tiled rendering to the app in 2014/2105. Miklos Vajna’s efforts made editing possible at that stage. Christian Lohmaier, Ximeng Zu, and Mert Tumer have made important and substantial contributions by adding more features to the toolbar in the last few years.

Tor Lillquist was also responsible for the development of the Collabora Office for iOS app, which had a significant influence on the version for Android, and was made possible thanks to the great personal commitment of Nicolas Christener of Adfinis SyGroup. Thank you to Kaishu Sahu for his large amount of features programmed during the GSoC this summer, while our team member Jan Holesovsky has been the main developer of the current release.

Would you like to be part of the story ? get involved today.

About Collabora Productivity:

Collabora Productivity is the driving force behind putting LibreOffice in the cloud, providing Collabora Online and a range of products and consulting to enterprise and government. Powered by the largest team of certified LibreOffice engineers in the world, it is a leading contributor to the LibreOffice codebase and community. Collabora Office for Desktop and Collabora Online provide a business-hardened office suite with long-term, multi-platform support. Collabora Productivity is a division of Collabora, the global software consultancy dedicated to providing the benefits of Open Source to the commercial world, specializing in mobile, automotive and consumer electronics industries. For more information, visit www.collaboraoffice.com or follow @CollaboraOffice on Twitter.

The post New: Collabora Office for Android appeared first on Collabora Productivity.

by Cor Nouws at December 10, 2019 10:00 AM

December 07, 2019

LibreOffice QA Blog

QA/Dev Report: November 2019

General Activities

  1. LibreOffice 6.4 Beta1 was announced on November 18
  2. A new version of LibreOffice Impress Remote for Android was announced
  3. The new LibreOffice Macro Team posted a progress report
  4. Julien Nabet improved the code quality based on cppcheck results
  5. Coverity’s defect density is back to 0
  6. Andreas Kainz continued improving dialog layout and the UI with nearly sixty commits
  7. Caolán McNamara made the customize dialog open quickly again
  8. Luboš Luňák and Tomaž Vajngerl (Collabora) introduced the Skia graphics engine into the codebase. It supports rendering the UI using GPU with Vulkan.
  9. Mike Kaganski (Collabora) fixed a long standing problem in basic’s syntax checker. He also added support for Windows Default apps settings
  10. Stephan Bergmann (Red Hat) started the work on replacing boost::optional with std::optional
  11. Justin Luth (Collabora) removed a bunch of obsolete hacks and fixed several issues related to styles and tables in Writer
  12. Eike Rathke (Red Hat) made it possible to use long passwords in OOXML documents
  13. Tamás Bunth (Collabora) added support for importing and exporting custom label text in DOCX documents
  14. Miklos Vajna (Collabora) improved the interoperability of math objects from PPTX
  15. Noel Grandin (Collabora) continued working on more than 1024 columns support for Calc, solved an acessibility-related performance issue with complex tables, made ODS documents with lots of countif functions load faster and changed various XML-handling code to use FasterParser
  16. Jan-Marek Glogowski (CIB), Michael Weghorn (LHM), Katarina Behrens (CIB) keep reducing the Kf5/Qt5 funtionality gap compared to other VCL backends
  17. Gülşah Köse and Tamas Bunth (Collabora) improved how PPTX rotated objects and text are imported and exported
  18. Balazs Varga (NISZ) fixed the position and size of custom chart legends and digits of percentages of data points when saving OOXML charts
  19. Jim Raykowski made it so list styles can be deleted in Custom Styles view
  20. Bartosz Kosiorek and Chris Sherlock added support for EMF+ custom line cap
  21. Michael Weghorn fixed loading printer settings with the document
  22. László Németh (NISZ) fixed the table line spacing in a certain DOCX document
  23. Szabolcs Toth (NISZ) fixed the displaying of table borders in a certain DOCX document
  24. Samuel Mehrbrodt (CIB) added API support for the infobar

Reported Bugs

585 bugs, 67 of which are enhancements, have been reported by 365 people.

Top 10 Reporters

  1. NISZ LibreOffice Team ( 28 )
  2. Xisco Faulí ( 23 )
  3. Mike Kaganski ( 12 )
  4. Roman Kuznetsov ( 9 )
  5. andreas_k ( 8 )
  6. Nicolas Christener ( 7 )
  7. ricky.tigg ( 7 )
  8. sdc.blanco ( 6 )
  9. Pablo ( 6 )
  10. Nukool Chompuparn ( 6 )

Triaged Bugs

652 bugs have been triaged by 76 people.

Top 10 Triagers

  1. Xisco Faulí ( 194 )
  2. Heiko Tietze ( 58 )
  3. Dieter Praas ( 50 )
  4. Timur ( 35 )
  5. Julien Nabet ( 30 )
  6. Oliver Brinzing ( 29 )
  7. Alex Thurgood ( 29 )
  8. V Stuart Foote ( 25 )
  9. Roman Kuznetsov ( 23 )
  10. raal ( 15 )

Resolution of resolved bugs

610 bugs have been set to RESOLVED.

Check the following sections for more information about bugs resolved as FIXED, WORKSFORME and DUPLICATE.

Fixed Bugs

236 bugs have been fixed by 43 people.

Top 10 Fixers

  1. Caolán McNamara ( 32 )
  2. Balazs Varga ( 12 )
  3. Mike Kaganski ( 11 )
  4. László Németh ( 9 )
  5. Samuel Mehrbrodt ( 9 )
  6. Miklos Vajna ( 8 )
  7. Justin Luth ( 7 )
  8. Jan-Marek Glogowski ( 7 )
  9. andreas kainz ( 6 )
  10. Olivier Hallot ( 6 )

List of critical bugs fixed

  1. tdf#118526 CRASH: Notebookbar crashes in read mode ( Thanks to Jim Raykowski )
  2. tdf#121963 button flashing – mouse wheel zooming breaks ( Thanks to Armin Le Grand )
  3. tdf#128659 Cannot add AutoCorrect entries once the user/autocorr/acor_xx-XX.dat file is created ( Thanks to Noel Grandin )

List of high severity bugs fixed

  1. tdf#118639 Editing password-protected non-ODF files creates multiple empty files in backup directory ( Thanks to Mike Kaganski )
  2. tdf#124270 Editing: Err:522 on copying of rows with “Calc: threaded” enabled ( steps in comment 6 ) ( Thanks to Dennis Francis )
  3. tdf#124708 CRASH: Selecting all and deleting ( Thanks to Muhammet Kara )
  4. tdf#127921 Presenter View of Impress 6.3.x doesn’t remember slide after Slides and Close, as it used to, but returns to 1 during presentation ( Thanks to Samuel Mehrbrodt )
  5. tdf#128538 Restart in safe mode: Open containig folder doesn’t work and Show user profile gets a error message ( Thanks to Stephan Bergmann )
  6. tdf#128562 Pressing F5 (Navigation) in Calc crashes document, corrupts user profile, and makes Calc impossible to use ( Thanks to Noel Grandin )
  7. tdf#128862 CRASH: Unable to open tables in HSQLDB odb-files with apostrophe ” ‘ ” character in table name ( Thanks to Julien Nabet )
  8. tdf#44462 Provide a proper ‘File Association Manager’ for the windows version of Libreoffice ( Thanks to Mike Kaganski )
  9. tdf#47490 CONFIGURATION: “Show overwrite warning when pasting data” setting is not honored when “Enter” is used to paste ( Thanks to Aditya )

List of crashes fixed

  1. tdf#118526 CRASH: Notebookbar crashes in read mode ( Thanks to Jim Raykowski )
  2. tdf#123851 Crash on start with KDE integration installed ( Thanks to Jan-Marek Glogowski )
  3. tdf#124708 CRASH: Selecting all and deleting ( Thanks to Muhammet Kara )
  4. tdf#128335 CRASH: cutting textboxes ( Thanks to Miklos Vajna )
  5. tdf#128375 CRASH: Closing LibreOffice after cutting content from document ( Thanks to Michael Stahl )
  6. tdf#128441 Crash in: mergedlo.dll (nvidia with device 0x2182 + Win10) ( Thanks to Julien Nabet )
  7. tdf#128562 Pressing F5 (Navigation) in Calc crashes document, corrupts user profile, and makes Calc impossible to use ( Thanks to Noel Grandin )
  8. tdf#128599 Crash when typing in the Authentication Required dialog ( Thanks to Caolán McNamara )
  9. tdf#128603 CRASH: Cutting a textbox in a reopened document ( Thanks to Miklos Vajna )
  10. tdf#128667 Crash when pasting text with line wrap ( Thanks to Caolán McNamara )
  11. tdf#128736 CRASH: Moving content to 2 page and undoing ( Thanks to Miklos Vajna )
  12. tdf#128737 CRASH: Importing a specific file ( Thanks to Michael Stahl )
  13. tdf#128739 CRASH: working with fields ( Thanks to Michael Stahl )
  14. tdf#128746 Opening table properties window causes crash in development build ( Thanks to Caolán McNamara )
  15. tdf#128753 CRASH: Closing LibreOffice after cutting content from document ( Thanks to Julien Nabet )
  16. tdf#128767 CRASH: Clicking on Export Directly to PDF (gen) ( Thanks to Caolán McNamara )
  17. tdf#128788 Crash when trying to put autovalue on a field of a table ( Thanks to Caolán McNamara )
  18. tdf#128802 customize toolbar with drag and drop causes crash ( Thanks to Caolán McNamara )
  19. tdf#128862 CRASH: Unable to open tables in HSQLDB odb-files with apostrophe ” ‘ ” character in table name ( Thanks to Julien Nabet )
  20. tdf#129025 CRASH: Closing LibreOffice while Options dialog is open ( gen ) ( Thanks to Caolán McNamara )

List of performance issues fixed

  1. tdf#108642 FILEOPEN: document with a complex table structure takes double the time to open when the sidebar is enabled (gtk3) ( Thanks to Noel Grandin )
  2. tdf#126043 Tools -> Customize has a nagging delay of 3 seconds on each opening ( Thanks to Caolán McNamara )
  3. tdf#128812 LibreOffice – calc – specific xlsx document (almost) any operation (FILEOPEN, FORMATTING) takes about 1 min ( Thanks to Noel Grandin )

List of old bugs ( more than 4 years old ) fixed

  1. tdf#38199 Writer EDITING: Why when I press tab in read-only mode, then the document scrolls to top? ( Thanks to Jim Raykowski )
  2. tdf#41205 PRINTING: clicking radio button “Pages” should select pane contents for page selection ( Thanks to Michael Weghorn )
  3. tdf#42112 EMF+ Fileopen: Embedded grouped diagram from particular DOC still doesn’t preview arrows correctly (diagram opens fine if extracted from MSO) ( Thanks to Bartosz Kosiorek )
  4. tdf#43021 Macros: FilePicker method setDisplayDirectory shows wrong folder with native dialog Win 7 (64-bit) ( Thanks to Jan-Marek Glogowski )
  5. tdf#44462 Provide a proper ‘File Association Manager’ for the windows version of Libreoffice ( Thanks to Mike Kaganski )
  6. tdf#47490 CONFIGURATION: “Show overwrite warning when pasting data” setting is not honored when “Enter” is used to paste ( Thanks to Aditya )
  7. tdf#54204 Hyperlinks between documents not works if link contains anchor at the end ( Thanks to Tünde Tóth )
  8. tdf#76586 FILEOPEN 2007 DOCX Column width of table within table not imported properly (OK if resaved in MSO) ( Thanks to László Németh )
  9. tdf#84183 [Infobar] Wrong appearance of clicked close button ( Thanks to Samuel Mehrbrodt )
  10. tdf#84929 EDITING: Clicking in the footer area brings focus/view to last cursor position on page ( Thanks to Justin Luth )
  11. tdf#88922 Resizing a chart legend makes the chart’s body rezise on top of it ( Thanks to Balazs Varga )
  12. tdf#94288 Entering chart mode doesnt show chart sidebar ( Thanks to Muhammet Kara )
  13. tdf#95374 FILEOPEN DOCX Margin import error. LibreOffice imports with -1cm margin that should be 0cm ( Thanks to László Németh )

WORKSFORME bugs

106 bugs have been retested by 40 people.

Top 10 testers

  1. Xisco Faulí ( 15 )
  2. Timur ( 11 )
  3. Buovjaga ( 9 )
  4. Julien Nabet ( 8 )
  5. eisa01 ( 7 )
  6. Robert Großkopf ( 5 )
  7. Heiko Tietze ( 5 )
  8. Roman Kuznetsov ( 4 )
  9. Dieter Praas ( 4 )
  10. Aron Budea ( 3 )

DUPLICATED bugs

131 bugs have been duplicated by 29 people.

Top 10 testers

  1. Xisco Faulí ( 29 )
  2. Timur ( 15 )
  3. V Stuart Foote ( 11 )
  4. Alex Thurgood ( 8 )
  5. Oliver Brinzing ( 8 )
  6. NISZ LibreOffice Team ( 7 )
  7. Roman Kuznetsov ( 5 )
  8. libreoffice.bak ( 4 )
  9. Heiko Tietze ( 4 )
  10. Dieter Praas ( 4 )

Verified bug fixes

104 bugs have been verified by 20 people.

Top 10 Verifiers

  1. Xisco Faulí ( 75 )
  2. Timur ( 6 )
  3. Dieter Praas ( 4 )
  4. Buovjaga ( 2 )
  5. BogdanB ( 2 )
  6. Michael Weghorn ( 2 )
  7. roland ( 2 )
  8. raal ( 1 )
  9. Patrick Jaap ( 1 )
  10. Eike Rathke ( 1 )

Categorized Bugs

241 bugs have been categorized with a metabug by 32 people.

Top 10 Categorizers

  1. Dieter Praas ( 51 )
  2. Roman Kuznetsov ( 32 )
  3. LibreOfficiant ( 29 )
  4. NISZ LibreOffice Team ( 27 )
  5. V Stuart Foote ( 19 )
  6. sdc.blanco ( 11 )
  7. Rizal Muttaqin ( 9 )
  8. Xisco Faulí ( 7 )
  9. Aron Budea ( 7 )
  10. Luke ( 5 )

Regression Bugs

114 bugs have been set as regressions by 24 people.

Top 10

  1. Xisco Faulí ( 52 )
  2. NISZ LibreOffice Team ( 10 )
  3. Alex Thurgood ( 8 )
  4. Timur ( 6 )
  5. Roman Kuznetsov ( 5 )
  6. Oliver Brinzing ( 5 )
  7. eisa01 ( 3 )
  8. Jan-Marek Glogowski ( 2 )
  9. Dieter Praas ( 2 )
  10. Julien Nabet ( 2 )

Bisected Bugs

99 bugs have been bisected by 13 people.

Top 10 Bisecters

  1. Xisco Faulí ( 66 )
  2. NISZ LibreOffice Team ( 9 )
  3. Aron Budea ( 6 )
  4. raal ( 6 )
  5. Oliver Brinzing ( 3 )
  6. Roman Kuznetsov ( 2 )
  7. writepaperforme2 ( 1 )
  8. Gabor Kelemen ( 1 )
  9. Buovjaga ( 1 )
  10. Michael Weghorn ( 1 )

Evolution of Unconfirmed Bugs

Check the current list of unconfirmed bugs here

Evolution of Open Regressions

Check the current list of open regressions here

Evolution of Open bibisectRequests

Check the current list of open bibisectrequests here

Evolution of Highest Priority Bugs

Check the current list of highest priority bugs here

Evolution of High Priority Bugs

Check the current list of high priority bugs here

Thank you all for making Libreoffice rock!
Join us and help to keep LibreOffice super reliable!
Check the Get Involved page out now!

by x1sc0 at December 07, 2019 11:34 AM

December 05, 2019

Roman Kuznetsov

Fixed a terrible regression

There was a bug tdf#128133 about "muddy fonts in LibreOffice GUI with 125% scale in Windows". I have 125% scaled GUI on all my machines with Windows because I have a bad vision. And that bug was very terrible for me. 
The bug was a regression but we have couldn't to find a bad commit using bibisect process. We just have had wrong result.
And finally, Jan-Marek Glogowski have found a problem and yesterday he fixed it!
Thank you very much!

by Roman Kuznetsov (noreply@blogger.com) at December 05, 2019 10:04 AM

December 02, 2019

Florian Effenberger

LibreOffice-Projektwochenende 2020 – Terminfindung

Im deutschsprachigen LibreOffice-Projekt ist es bewährte Tradition, mindestens ein Projektwochenende im Jahr abzuhalten. Derzeit laufen die Planungen für das erste Treffen in 2020 – und du kannst dabei sein!

Neben den regelmäßigen Telefonkonferenzen sind persönliche Treffen durch nichts zu ersetzen, ermöglichen sie uns doch, gemeinsame Aktionen, Projekte und Veranstaltungen zu koordinieren, uns gegenseitig besser kennenzulernen – und natürlich auch neue Projektmitglieder und Interessierte herzlich willkommen zu heißen.

Für gewöhnlich treffen wir uns von Freitagnachmittag bis Sonntagmittag. Um die Terminplanung zu erleichtern, haben wir eine Umfrage aufgesetzt. Wenn du Lust hast, in eines der großen Open-Source-Projekte hineinzuschnuppern, die “Macher” hinter dem Programm kennen zu lernen und selbst bei uns mitzumachen, dann ist das die ideale Gelegenheit dazu!

LibreOffice-Projektwochenende 2020 – Terminfindung

by Florian Effenberger at December 02, 2019 07:51 AM

November 28, 2019

Luboš Luňák

Skia branch merged to master

So, the branch implementing VCL drawing based on the  Skia graphics library has been merged in.
All(?) the necessary info about how to enable it etc. are in this mail, but there are things that better fit a blog post than a mail, and in this case that's going to be a table and a picture showing how well it may perform. Note that these results are from running visualbackendtest, which is not really a benchmark, so these numbers should be taken with a grain of salt. It's just a test that draws a gradient, several big polygons (each circle is actually 720 lines) and short text.
And LibreOffice of course does many more things than just paint on the screen. And it's not just about performance of drawing (some of these e.g. do not double-buffer, which makes things like alpha blending complicated and slow). And for some of these we could discuss the complicated reasons for why the numbers are what they are. But still, some of the numbers are interesting:
Render methodFPS
Linux gen (X11)86
Linux gtk370-90
Linux OpenGL45
Linux Skia Vulkan (GPU)65-90
Linux Skia raster (CPU)5
Windows GDI64
Windows OpenGL40-60
Windows Skia Vulkan (GPU)175-185
Windows Skia raster (CPU)75-85


by llunak (noreply@blogger.com) at November 28, 2019 10:48 AM

November 23, 2019

Caolán McNamara

coverity scan

When we make C++17 a requirement for LibreOffice at the end of 2018 the version of coverity provided by scan.coverity.com no longer worked for us. In July 2019 a newer version of the coverity tooling was available which supported C++17 and analysis resumed.

Prior to losing coverity support we had a defect density (i.e. defects per 1,000 line of code) of 0, on its return this had inflated to 0.06 due to both new defects introduced during the down period and old defects newly detected due to additional checks introduced in the new version.

Today we're finally back to 0

by caolan (noreply@blogger.com) at November 23, 2019 08:26 PM

November 21, 2019

Miklos Vajna

Better math import from PPTX into Impress

Impress now has a much improved math handling in its importer from PPTX, eliminating annoying duplicated objects you had to delete after import, manually.

First, thanks TU Dresden who made this work by Collabora possible.

Here is how it looks:

https://lh3.googleusercontent.com/zI1fDb7tfl0a-6e1JljnBuCz67cGBSpx3s_tMViW_xWpTjy0FrsLGws-VAXWcdQhmSwXddr9wjADs5UvhNu_sNjETT7VfMJB8pdQ4PxPpHliCVbuMOx67Wwrd6brfE-eJtWIb2K36A=w640
Figure 1. Impress, new math import from PPTX
https://lh3.googleusercontent.com/rpC9KOUaadEoYKekczLTZakB98SBwqbKGqmwf_VLY6D-8OpBLh9Lpxi_RDl6CMQHJKqsz0NnxgTN8kn63CB9fGmP6AWUKIqK0huvjoRCxvoh6dtd0BMRXclsWlaKr3jbdzb1TOJ1LQ=w640
Figure 2. Reference rendering
https://lh3.googleusercontent.com/hUBhfLLFPZFDa50EMPEQxl2kih91oKIfQFBxNK7F9uWGexGbUKnV1FMQZgvmj4EctmCwlxlYK56hPSX0RZS_MpOAKZZagmfOALZ3LRrvBgoOGAx9dsM1N3dp9bGvPU7c0WVvROu8iQ=w640
Figure 3. Impress, old math import from PPTX

What you can see is that the in the old case we managed to read both the actual math object and its replacement image from PPTX, which caused visible duplication due to working transparency handling. The new way just imports the math objects, and ignores the replacement graphic.

This new way (handling of the OOXML a14 feature flag) is enabled by default, except for Calc documents, where more works is needed before it can be enabled.

All this is available in LibreOffice master (towards 6.4), so you can try it out right now, if interested.

by Miklos Vajna at November 21, 2019 09:05 AM

November 19, 2019

Collabora Community

Collabora sponsoring LibreOffice Developer Bootcamp in Ankara

On November 13 more than 120 students in Ankara Hacettepe University’s Beytepe Campus joined the first session of the LibreOffice Developer Bootcamp, a course for students with interest in C++. There is a session every week, until the end of the semester.
 
Collabora Sponsored LibreOffice Bootcamp in Ankara
 

 

The announcement of the course was received with enthusiasm at Twitter!

 

The first sessions gave a broad introduction on the course, Free Software & Open Source, LibreOffice & Collabora and requirements for the course. And after that, really into development: installations & setup, different IDEs, git, gcc, clang and the basics of C++.

 

 

 

The instructor of this course, Muhammet Kara, recently also held a talk about Google Summer of Code. Starting from that point, then doing a project for LibreOffice, he grew to a developer working for Collabora.

After the first session, Muhammet tells “There were many enthusiastic participants, even some from outside the town. I’m sure that at the end of the course, there will be many students with pretty good skills in C++ and LibreOffice development.

This course in Ankara can be organized thanks to of course support of the Hacettepe University for the use of the amphitheater, Hacettepe ACM Student Chapter for the local/logistics organization, Collabora for sponsoring, and the enthusiasm and knowledge that Collabora developer Muhammet Kara is putting into it.

The weekly sessions will be given until the end of the semester, January next year. So if you’re motivated and love open source.. you may still be able to join 🙂 !

The post Collabora sponsoring LibreOffice Developer Bootcamp in Ankara appeared first on Collabora Productivity.

by Cor Nouws at November 19, 2019 06:50 PM

November 18, 2019

LibreOffice QA Blog

LibreOffice 6.4 Beta1 is ready for testing

The LibreOffice Quality Assurance ( QA ) Team is happy to announce LibreOffice 6.4 Beta1 is ready for testing!

LibreOffice 6.4 will be released as final at the beginning of February, 2020 ( Check the Release Plan ) being LibreOffice 6.4 Beta1 the second pre-release since the development of version 6.4 started in the beginning of June, 2019. Since then, 5677 commits have been submitted to the code repository and more than 850 bugs have been set to FIXED in Bugzilla. Check the release notes to find the new features included in this version of LibreOffice.

LibreOffice 6.4 Beta1 can be downloaded from here for Linux, MacOS and Windows, and it can be installed alongside the standard version.

In case you find any problem in this pre-release, please report it in Bugzilla ( You just need a legit email account in order to create a new account ).

For help, you can contact the QA Team directly in the QA IRC channel or via Telegram.

Happy testing!!

Banner

by x1sc0 at November 18, 2019 12:37 PM

November 13, 2019

CIB News

CIB attends the South Tyrol Free Software Conference – SFScon 2019

With 18 editions, 318 talks and a total of 291 speakers, SFScon, the annual European Free Software conference for public administrations, citizens and private companies is scheduled from November 15 to the 16. CIB is proud to be once again at this year´s event. Several good reasons to attend the conference: • a list of … CIB attends the South Tyrol Free Software Conference – SFScon 2019 weiterlesen

Der Beitrag CIB attends the South Tyrol Free Software Conference – SFScon 2019 erschien zuerst auf CIB Blog.

by CIB Marketing at November 13, 2019 09:55 AM

Chris Sherlock

Drawing in OutputDevice

For a long time now I have noticed that OutputDevice is a class that is tightly coupled to drawing primitives such a pixels, lines, rectangles, etc. To draw new primitives in OutputDevice, you need to change the interface by adding another function, often you need to add new private functions, etc.

I have never been entirely comfortable with this - I believe that we shouldn't vary the OutputDevice class, but instead the functionality should be implemented in a command pattern. In a command pattern, you use an object to encapsulate the functionality used to perform an action. What this means is that OutputDevice no longer needs to know how to directly draw a line, pixel, rectangle or any other primitive we throw at it - this is all done in the command object. I call these OutputDevice Drawables. It turns out, I find it easier to test a command object.

In fact, the more I rewrote code to use the command pattern, the more I found that we were using a particular sequence of actions in most of our drawing functions:

  1. Add action to GDI metafile 
  2. Can we draw? No - exit 
  3. Initialize the clipping region if possible 
  4. Initialize the object's color 
  5. Initialize the object's fill color 
  6. Acquire the SalGraphics instance 
  7. Do the actual drawing! 
  8. Paint alpha virtual device
When I realised this, I decided to follow the principle of encapsulating what was varying - point 7 - the actual drawing. Everything else was the same - at least so I initially thought. It turns out this is not the case all the time, so I allowed two things - a function that can be overridden that tells the Drawable that the step should be bypassed, and in the case where we need to through all this scaffolding out the window a way of bypassing it entirely. However, this is an example of a template method pattern.

You can see the base work for this in a gerrit patch I submitted today. To use the actually command pattern is very easy: if there is not an existing function like DrawPixel in OutputDevice, you just have to invoke the command object via OutputDevice::Draw(Drawable* pDrawable). An example can be found in the unit test.

To implement a new command, you just derive from Drawable - the simplest Drawable class you can define only needs a constructor with the parameters you would normally send to a Draw command in OutputDevice (e.g. PixelDrawable only needs a Point sent to the constructor), and you implement the actually drawing in DrawCommand(OutputDevice* pRenderContext).

A few things I found helped me when I created Drawables - I quite like passing parameters to functions, I'm not a huge fan of a lot of state in the class. Drawables work because they essentially work by calling the Execute function, this handles all the basic drawing for you on the state you set in the constructor. I have found in some patches that I have on github that the functionality is somewhat complex, for this I have extract function to simplify test and readability of the code (an example of this is GradientDrawable - see GradientDrawable.cxx and GradientDrawableHelper.cxx).

by Chris Sherlock (noreply@blogger.com) at November 13, 2019 08:11 AM