Tender to implement master document fixes (#202106-02)

The Document Foundation (TDF) is the charitable entity behind the world’s leading free/libre open source (FLOSS) office suite LibreOffice.

We are looking for an individual or company to implement master document fixes.

The documentation team regularly publishes guides and books. The underlying workflow requires to fix bugs and issues with the master document feature of Writer.

The scope of this tender is to fix at least the following issues:

  1. ToC is never shown in Master Document if it is in ODT in a section with a hide condition
    https://bugs.documentfoundation.org/show_bug.cgi?id=103612
  2. Exported PDF of master document with hidden sections containing headings shows headings anyway
    https://bugs.documentfoundation.org/show_bug.cgi?id=142129
  3. Creating master document from *.odt breaks cross-references
    https://bugs.documentfoundation.org/show_bug.cgi?id=128106
  4. TRACK CHANGES: linked files changes are not shown in the master document
    https://bugs.documentfoundation.org/show_bug.cgi?id=121166

The work has to be developed on LibreOffice master, so that it will be released in the next major version.

The bugs must be fixed and verified.

All technology standards of relevance, as well as their targeted versions for this tender should be declared or defined in the offer’s description of implementation.

A key item of the deliverables for this tender and therefore also a decision criteria – besides qualification, references, price, and completeness of fullfilment – is extensive is documentation about the approach chosen to implement or fix the above items. We expect bidders to provide documentation on both the code and the non-code parts of this tender, e.g. methodology, structure and technical aspects. The Document Foundation will publish this under a free and open source license and make it available to the general public. Publications will be in the Help system and in the Guides books.

If the bug fix incurs in a change in the user interface or user procedure, it should also contain the necessary instructions to activate the procedure.

Required skills

  • Extensive knowledge of C++
  • Experience working on the LibreOffice source code

Other skills

  • English (conversationally fluent in order to coordinate and plan with members of TDF)

We use free, libre and open source (FLOSS) software for development wherever possible, and the resulting work on the program code must be licensed under the Mozilla Public License v2.0.

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

Bidders will get a preference for including a partner or independent developer who has not been involved in a successful tender before. For such developers, who have not yet been part of a successful tender bid, we aim on a best-effort basis, but without any guarantees whatsoever, to provide some mentoring in understanding the code base and the process in contributing to the code. We expect that time and efforts on the bidder’s side for this should not be part of the paid work for this tender. Please mention such need of LibreOffice development mentoring in your offer.

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

The task offered is a project-based one-off, with no immediate plans to a mid- or long-term contractual relationship. It is offered on a freelance, project basis. Individuals and companies applying can be located anywhere in the world.

When budgeting, we anticipated that this project (all items combined) to take in the region of 5 days of work. Should bidders’ assessment result in a significantly different number, please reach out to us before sending your bid, so we can clarify upfront.

TDF is looking forward to receiving your applications for the aforementioned tasks, your offer in form of a fixed-time, fixed-budget approach, and the duration period for the implementation in calendar weeks after the final awarding of the tender, via e-mail to a committee at tender20210602@documentfoundation.org no later than July 5, 2021.

Applicants who have not received feedback by August 2, 2021 should consider that their application, after careful review, was not accepted.

All bidders are invited to ask their questions on this tender until June 23, 2021. Questions and answers will be made public in a collected and anonymized form.

Tender to implement automated ODF filter regression testing (#202106-01)

The Document Foundation (TDF) is the charitable entity behind the world’s leading free/libre open source (FLOSS) office suite LibreOffice.

We are looking for an individual or company to implement automated ODF filter regression testing.

The default file format of LibreOffice is ODF, the Open Document Format. From time to time, there are regression bugs reported towards these filters, that involve loss of data. The respective unit tests do not provide sufficient coverage to prevent these regressions to happen.

The scope of this tender is:

  1. To implement an early warning system for such problems, to avoid them in the future and improve the overall quality of the software. As a recommended approach, we propose to use the ODFunDiff tool (https://git.libreoffice.org/odfundiff), which was developed specifically with the relevant functional and performance requirements in mind. Initial development of this tool was targetted towards LibreOffice 5.2/5.3, so updates to the code are likely necessary. Also, it may be necessary to fix some hypothetical additional non-determinism in LibreOffice, which was introduced in version 5.3
  2. Extend the crashtest report scripts (e.g. this one) with an additional report about ODF differences, which were detected during the 27,000 ODF roundtrips. This test should use last run’s ODF files as reference to compare against
  3. Raise and mention potential resource problems (like disk space) with existing infrastructure, e.g. the “crashtesting” virtual machine

Further information can be found in this presentation from a past LibreOffice Conference.

All technology standards of relevance, as well as their targeted versions for this tender should be declared or defined in the offer’s description of implementation.

A key item of the deliverables for this tender, and therefore also a decision criteria – besides qualification, references, price, and completeness of fulfilment – is extensive documentation about the approach chosen to implement the above items, covering more than just the pure implementation. We expect bidders to provide documentation on both the code and the non-code parts of this tender, e.g. methodology, structure and technical aspects. The Document Foundation will publish this under a free and open source license and make it available to the general public.

Required skills

  • Extensive knowledge of C++
  • Experience working on the LibreOffice source code

Other skills

  • English (conversationally fluent in order to coordinate and plan with members of TDF)

We use free, libre and open source (FLOSS) software for development wherever possible, and the resulting work must be licensed under the Mozilla Public License v2.0.

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

Bidders will get a preference for including a partner or independent developer who has not been involved in a successful tender before. For such developers, who have not yet been part of a successful tender bid, we aim on a best-effort basis, but without any guarantees whatsoever, to provide some mentoring in understanding the code base and the process in contributing to the code. We expect that time and efforts on the bidder’s side should not be part of the paid work for this tender. Please mention such need of LibreOffice development mentoring in your offer.

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

The task offered is a project-based one-off, with no immediate plans to a mid- or long-term contractual relationship. It is offered on a freelance, project basis. Individuals and companies applying can be located anywhere in the world.

When budgeting, we anticipated that this project (all items combined) to take in the region of 15 days of work. Should bidders’ assessment result in a significantly different number, please reach out to us before sending your bid, so we can clarify upfront.

TDF is looking forward to receiving your applications, your financial expectations offer in form of a fixed time fixed budget approach and the duration period for the implementation in calender weeks after the final reward of the tender, via e-mail to a committee at tender20210601@documentfoundation.org no later than June 30, 2021.

Applicants who have not received feedback by July 28, 2021 should consider that their application, after careful review, was not accepted.

All bidders are invited to ask their questions on this tender until June 23, 2021. Questions and answers will be made public in a collected and anonymized form.

Annual Report 2020: TDF and LibreOffice infrastructure

In 2020, the infrastructure team added new services, implemented a new Extensions and Templates site, and worked on a replacement for Ask LibreOffice

(This is part of The Document Foundation’s Annual Report for 2020 – the full version is here.)

LibreOffice’s infrastructure team is responsible for maintaining the hardware, virtual machines and services that enable the wider community to develop, market, test, localize and improve the software. The public infrastructure is powered by around 50 kernel-based virtual machines (KVMs) spread across four hypervisors, plugged to an internal 10Gbps switch, hosted at Manitu in St. Wendel (Germany), and managed with libvirt and its KVM/QEMU driver. The virtual disk images are typically stored in GlusterFS volumes – distributed across the hypervisors – except for some transient disks (such as cache) where the IOPS requirement is higher and the redundancy less important.

In 2020, the infra team added various new services, such as the new SilverStripe-based Extensions and Templates site. Some background to the technical and design decisions behind the site are here on the blog.

Meanwhile, Discourse was investigated as a likely AskBot replacement, while several VMs for deployment tests outside the scope of infra were handed over (such as decidim). The infra team worked on Moodle (an e-learning platform), build bots, integration of the Weblate translation platform into the TDF development dashboard, and a crashtest box (sponsored by Adfinis).

Along with the new services, there were many notable upgrades too. Some machines are still running Debian GNU/Linux 9 (codename Stretch), but most are now upgraded to Debian 10 (codename Buster). Other updates include: Nextcloud 16 to 20, Gerrit 2.16 to 3.2, LibreOffice Online 6.3 to 7.0, and Mediawiki 1.31 to 1.35. Finally, OpenGrok, Etherpad Lite, Weblate and the Grimoire dashboard received updates too.

Notable refactoring/improvements took place in the online help backend, along with the backends for bibisecting and mailing lists. The team started collecting metrics for download counters and the update checker, and worked on improving IRC bots, the monitoring setup, and a distributed backup solution.

Documentation was improved to make onboarding of new infra team members easier, while the SSO (Single Sign-On authentication) system was expanded with more services: Gerrit, the new extension site, Discourse, Jitsi and Moodle.

Like what we do? Support the LibreOffice project and The Document Foundation – get involved and help our volunteers, or consider making a donation. Thank you!

Projects selected for LibreOffice in the Google Summer of Code 2021

In March, we announced that LibreOffice will be participating in the Google Summer of Code (GSoC), a programme that connects students with free and open source software projects. GSoC helps students to implement new features, and provides them with financial support along the way.

Well, the projects have been selected, so here they are!

  • Bayram Çiçek – 100 Paper Cuts: This aims to improve LibreOffice’s user interface, implementing enhancement requests and solving the most annoying UX (user experience) issues.
  • Anshu Khare – Sidebar: It’s planned to revamp the current styles deck sidebar and to merge paragraph and character styles into one Text Style deck. Furthermore, the student wants to rework the filter workflow. Here’s a mockup (click for larger):

  • Tushar Kumar – Implement an interface for external data source import in Calc: Currently, Calc’s back-end data provider supports CSV, HTML, XML and and Base’s data provider. This feature is not yet ready for production, however, so this project’s goal is to improve it. Here’s a mockup:

  • Balázs Sántha – Implement table styles in OOXML (.docx) support: At the moment, table styles found in .docx documents are converted into direct formatting at at Writer’s core level. This project aims to take a step towards a solution for handling proper table styles.

  • Panos Korovesis – Make the SVM format independent of the VCL metafile + tests for the format: This requires the completion of the tests regarding SVM, and then the separation of the read and write functionality of MetaActions to new distinct classes.
  • Akshit Kushwaha – Tests for the VCL graphics back-end: Add more test cases to the pre-existing tests, running those tests in every back-end, and implement a usable UI for the users to test the graphic’s feasibility themselves. This should make graphics rendering smoother.
  • Shubham Jain – Write missing unit tests: Extend the tests in Libreoffice. There are currently more than 1300 bugs fixes which do not have tests written for them, so this project aims to bring down that number.

Good luck to all the students – we appreciate their work on these important features and improvements! And thanks to our mentors for assisting them: Heiko Tietze, Xisco Fauli, lmari Lauhakangas, Olivier Hallot and Christian Lohmeier (The Document Foundation); Tomaž Vajngerl, Muhammet Kara, Luboš Luňák, Miklos Vajna and Mike Kaganski (Collabora); Thorsten Behrens (allotropia); László Németh and Markus Mohrhard.

From August 16 – 23, students will submit their code, project summaries, and final evaluations of their mentors. Find out more about the timeline here, and check out more details about the projects on this page.

Improvements in LibreOffice’s PowerPoint presentation support

LibreOffice’s native file format is OpenDocument, a fully open and standardised format that’s great for sharing documents and long-term data storage. Of course, LibreOffice does its best to open files made by other office software as well, even if they’re stored in pseudo-“standards” with cryptic and obfuscated contents. Compatibility with PowerPoint PPT(X) presentations is therefore a challenge, but developers are working hard on improvements…

In September 2019, we announced an initiative to improve the support of PPT and PPTX files in LibreOffice. A year has passed since the last review and it is time to summarise achievements again.

Everyone is invited to participate in the PowerPoint support initiative, either in development or testing. If you are interested in joining, please send an email to ilmari.lauhakangas@libreoffice.org.

Audio

Miklos Vajna (Collabora):
Added import and export support for slide narrations and their icons

Borders and fills

Miklos Vajna (Collabora):
Handle stroke properties of image shapes
Improve import of transparency in multi-step gradients

Before screenshot of bug 134183
Slide before Miklos’s fix

After screenshot of bug 134183
Slide after Miklos’s fix

Regina Henschel:
PPTX: transparency gradient on solid fill is not considered in export
Add fill to fontwork in export to PPTX

Charts

Zhenhua Fong (PPT/X team):
Chart background is white instead of Automatic/No fill plot area

Custom shapes

Gülşah Köse (Collabora):
Handle greyscale effect on bitmap filled custom shapes (blog post)
Apply mirror property to custom cropped graphic (blog post)
Import support for custom stretch values (blog post)
Import crop position of bitmap filled shape (blog post)
Import graphics cropped into custom geometry as custom shapes (blog post)

Mark Hung (PPT/X team):
Export names of custom shapes

Miklos Vajna (Collabora):
Handle adjust values from both the custom shape and its placeholder

Tünde Tóth (NISZ):
Fix lost arcTo shape

Xisco Faulí (TDF):
PPT: export custom shapes as Bitmap

Hyperlinks

Tibor Nagy (NISZ):
Fix internal hyperlink to slide in PPTX
Fix lost direct hyperlink colors
Fix internal hyperlinks with PPTX export

Zhenhua Fong (PPT/X team):
Import hyperlinks from PPT

Tables

Gülşah Köse (Collabora):
Table row height improvement in Impress (blog post)

Miklos Vajna (Collabora):
Shadow for tables from PPTX in Impress (blog post)

Tibor Nagy (NISZ):
Fix vertical alignment in exported table

Text boxes

Attila Bakos (NISZ):
Fix exporting of placeholders

Gülşah Köse (Collabora):
Fix the placeholders priority order
Text box gets displaced by text coming from master page

Text in shapes

Gülşah Köse (Collabora):
Camera Rotation Improvement (blog post)

Miklos Vajna (Collabora):
SmartArt improvements in Impress, part 5 (blog post)
SmartArt improvements in Impress, part 6 (blog post)

Regina Henschel:
Text transformation “Deflate” is wrongly imported as “Inflate”
Wordart 3D is lost on round trip

Serge Krot (CIB):
Top-aligned text in imported PPTX becomes bottom-aligned

Various

Ahmad Ganzouri:
OOXML support for shadow blur

Bartosz Kosiorek (PPT/X team):
OOXML Fix storage of date in Custom Properties

Dániel Arató (NISZ):
Fix missing chart in exported PPTX

Gülşah Köse (Collabora):
Protect aspect ratio of graphic bullets
Import shadow size

Luboš Luňák (Collabora):
Load images in parallel
Implement PowerPoint ‘flash’ slide transition

Mike Kaganski (Collabora):
Support for transparency attribute of glow effect

Miklos Vajna (Collabora):
Crash fix for pyramid SmartArt import
Detecting 0-byte files based on extension in Impress and elsewhere (blog post)

Samuel Mehrbrodt (allotropia) and Piet van Oostrum:
Tab positions not being retained in PPT and being lost in PPTX

Tibor Nagy (NISZ):
Fix duplicated slide name with PPTX import

Vasily Melenchuk (CIB):
Support API-based MS-CRYPTO algorithms

Zhenhua Fong (PPT/X team):
Correct positions for group shapes
SmartArt caption text location is wrong

From left to right: PowerPoint, LibreOffice before Zhenhua’s fix, LibreOffice after the fix