This is a feed aggregator that collects what LibreOffice and Document Foundation contributors are writing in their respective blogs.
To have your blog added to this aggregator, please mail the website@global.libreoffice.org mailinglist or file a ticket in Redmine.
Yes, it has started! Check out the conference website for live streams and more information – and a big thanks to the organisers, sponsors and supporters.
Here’s to a great event
LibreOffice Conference 2023 will be hosted by the Universitatea Națională de Știință și Tehnologie Politehnica București, Facultatea de Automatică și Calculatoare (National University of Science and Technology, Polytechnic University of Bucharest, Faculty of Automation and Computer Science) at the PRECIS building from Wednesday 20 September to Saturday 23 Septembe. On Wednesday, the community will gather for the usual community meeting to discuss localisation and marketing activities at the local level. The conference will open on Thursday morning and continue with talks and workshops until Saturday lunchtime (schedule). Alongside this, there will be a technical workshop focusing on LibreOffice development.
The conference is sponsored by Collabora Office and Allotropia (main sponsors), dvloper.io and 1&1, with a significant contribution from The Document Foundation, and the technical support of IT Genetics. The event has been organized by a local team of volunteers, backed by 1&1 and supported by the team at The Document Foundation with the help of local NGOs Rosedu and Tech Lounge. More information on the conference website.
This year, LibreOffice was once again a mentoring organization in the Google Summer of Code (GSoC), a global program focused on bringing more student developers into free and open source software development. Five projects were finished successfully. Students and mentors enjoyed the time, and here we present some of the achievements, which should make their way into LibreOffice 24.2 in early February 2024!
You can experiment with the new features by using daily builds and report any problems in our bug tracker.
Mentors: Thorsten Behrens (allotropia), Heiko Tietze (TDF), Hossein Nourikhah (TDF)
LibreOffice can encrypt documents using OpenPGP public key cryptography by making use of external applications such as gpg4win, GPGTools and gnupg. Thanks to Ahmed’s work, it is now easier to manage and search keys and faster to navigate large keyrings.
Learn more about the encryption experience improvements in the final report.
Mentors: Thorsten Behrens (allotropia), Stéphane Guillou (TDF), Christian Lohmaier (TDF)
This project was inspired by Mozilla’s work on Firefox’s continuous integration. There is now a system in place that makes predictions on the test failure possibility of submitted code changes and decides the most efficient way to build the changes. As this kind of machinery is very new to everyone, we expect many tweaks to follow.
Learn more about the machine learning project in the final report.
Mentors: Andreas Heinisch, Heiko Tietze (TDF)
Searching through options is pretty standard in applications these days, so it is about time LibreOffice learned how to do it!
Learn more about the search feature in the final report.
Mentors: Tomaž Vajngerl (Collabora), Xisco Faulí (TDF)
The idea here was to reduce the dependency on Java during the LibreOffice build process. Half of the tests for Writer were converted.
Learn more about the test conversion project in the final report.
Mentors: Tomaž Vajngerl (Collabora)
APNG is short for Animated Portable Network Graphics. It is not an official extension to PNG, but nevertheless has broad support in web browsers these days. Thanks to Paris’s work, LibreOffice now fully supports this format.
Learn more about the APNG feature in the final report.
Many thanks to all contributors who spent their summer time improving LibreOffice. You are awesome! And special thanks also to the mentors who always put so much love and energy into these tasks. That’s what makes LibreOffice rock.
Now we are looking forward to next year’s GSoC. If you are interested, why not prepare early? Learn more at out wiki page where some ideas are listed.
Participating in GSoC is a great way to build your skills, and show future employers what you’re capable of!
Berlin, September 14, 2023 – LibreOffice 7.6.1 Community, the first minor release of the 7.6 family of the volunteer-supported free office suite for desktop productivity, for Windows (Intel/AMD and ARM processors), macOS (Apple and Intel processors) and Linux is immediately available from www.libreoffice.org/download.
LibreOffice is the only open source office suite for personal productivity which can be compared feature-by-feature with the market leader. LibreOffice offers the highest level of compatibility in the office suite market segment, with native support for the Open Document Format (ODF) – beating proprietary formats for security and robustness – to superior support for MS Office files, along with filters for a large number of legacy document formats, to return ownership and control to users.
Based on the advanced features of the LibreOffice Technology platform for personal productivity on desktop, mobile and cloud, the LibreOffice 7.6 family provides a large number of improvements and new features targeted at users sharing documents with MS Office or migrating from MS Office. These users should check new releases of LibreOffice on a regular basis, as the progress is so fast, that each new version improves dramatically over the previous one.
LibreOffice 7.6 Community Highlights
GENERAL
WRITER
CALC
LibreOffice has a database application called Base. It can connect to various database management systems, and is integrated with two internal database engines: Firebird and HSQLDB. Here I discuss how to add catalog and schema support for SQL functions in LibreOffice Base.
SQL window
One can use SQL to create and use internal functions. For example, with Firebird:
CREATE FUNCTION F(X INT) RETURNS INT AS BEGIN RETURN X+1; END;
To run this, you can use “Tools > SQL…”, and then write the above SQL query. To see the result, you need to run this query:
SELECT F(5) FROM RDB$DATABASE;
On the other hand, support for SQL commands is limited. For example, as the issue tdf#95174 describes, SQL parser of LibreOffice parser currently does not handle catalog and schema in function names:
Currently, this command works fine:
SELECT function_name(a, b) FROM C
But this one does not:
SELECT schema_name.function_name(a, b) FROM C
The goal is to make the second one also work in LibreOffice Base.
To add the support for catalog and schema in function names, you should refer to the Yacc rule for the SQL Parer.
Lionel, the experienced Base developer describes what to do in the first comment. In the file connectivity/source/parse/sqlbison.y
, you can find this rule
function_name: string_function | date_function | numeric_function | SQL_TOKEN_NAME Here, you should add two new cases, like: | SQL_TOKEN_NAME '.' SQL_TOKEN_NAME {$$ = SQL_NEW_RULE; $$->append($1); $$->append(newNode(".", SQLNodeType::Punctuation)); $$->append($3); } | SQL_TOKEN_NAME '.' SQL_TOKEN_NAME '.' SQL_TOKEN_NAME {$$ = SQL_NEW_RULE; $$->append($1); $$->append(newNode(".", SQLNodeType::Punctuation)); $$->append($3); $$->append(newNode(".", SQLNodeType::Punctuation)); $$->append($5);}
After that, one should invoke this command:
git grep -E '(function_name|set_fct_spec)'
to find parts of the code that use them.
If the code is examining one of the above nodes, it expects a single token at the function_name
. The code should be changed to expect a token or a node to handle the schema_name
and function_name
.
An implementation should be accompanied with a test to make sure that the code actually works, and will remain fine in the future changes. To see other discussed EasyHacks, follow the EasyHacks tag in this blog.
![]() |
![]() |
Jean H. Weber (photo) and the Documentation Team are happy to announce the immediate availability of the Writer Guide 7.6, the latest update based on the recently released LibreOffice 7.6.
Writer is the word-processing application. It is compatible with a wide range of document formats including Microsoft Word (.doc, .docx), and you can export your work in several formats including PDF. Anyone who wants to get up to speed quickly with Writer will find this book valuable. You may be new to word processing software, or you may be familiar with another office suite.
The 7.6 Writer Guide incorporates the latest features including:
![]() |
![]() |
![]() |
The Writer Guide 7.6 is available in the Documentation Website as well as in the LibreOffice Bookshelf website and it includes the guides in HTML format for web navigation, as well as the traditional PDF, ODT and the printed version from LuLu Inc.
Two weeks ago, we released LibreOffice 7.6, our new major version of the office suite. And so far we’ve had 1,587,383 downloads from our site! (So that doesn’t include Linux distributions that package it themselves.) We hope all users are enjoying it, and the many new features.
Some more stats: 31,519 impressions of the announcement tweet, with 690 likes and 231 reposts. Our Mastodon post had 293 likes and 272 reposts, while the New Features video on YouTube has had 17,339 views. (It’s also on PeerTube as well.)
Many thanks to our worldwide community of volunteers, and certified developers, for all their work on this release!
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.
If you accept this notice, your choice will be saved and the page will refresh.
Berlin, September 7, 2023 – LibreOffice 7.5.6 Community, the sixth minor release of the LibreOffice 7.5 line, the volunteer-supported free office suite for desktop productivity, is available from our download page for Windows (Intel/AMD and ARM processors), macOS (Apple Silicon and Intel processors), and Linux [1].
Products based on LibreOffice Technology are available for major desktop operating systems (Windows, macOS, Linux and Chrome OS), for mobile platforms (Android and iOS), and for the cloud.
For enterprise-class deployments, TDF strongly recommends the LibreOffice Enterprise family of applications from ecosystem partners – for desktop, mobile and cloud – with a large number of dedicated value-added features and other benefits such as SLA (Service Level Agreements).
LibreOffice 7.5.6 Community is available from this page. Minimum requirements for proprietary operating systems are Microsoft Windows 7 SP1 and Apple macOS 10.14. LibreOffice Technology-based products for Android and iOS are listed here.
The Document Foundation does not provide technical support for users, although they can get it from volunteers on user mailing lists and the Ask LibreOffice website.
LibreOffice users, free software advocates and community members can support The Document Foundation with a donation.
Recently, Linux New Media released an updated version of its “LibreOffice Expert” magazine, which contains tutorials, tips and tricks about LibreOffice. And some articles were contributed by members of the LibreOffice community! The magazines come with DVDs that include LibreOffice for Linux, Windows and macOS, alongside extra templates, extensions, videos and guidebooks.
We have some copies to give away, for schools, universities and local communities. Ideally, we’d like to get these magazines out to places where internet connections aren’t always available – so that the users can really benefit from the DVDs.
So, if you can help us to distribute these magazines, drop us a line! Please note that we can only send a maximum of five copies to any one place, to make sure many people get a chance. When you contact us, please include this information:
Include that information in an email to us and let’s see what we can do!
(Note: if you want to buy the magazine directly from the publisher, you can do so here.)
perl -pi.bak
re-wrote everything to use the wonderful web archive.
This post is part of a series to describe how Writer now gets a feature to handle tables that are both floating and span over multiple pages.
This work is primarily for Collabora Online, but is useful on the desktop as well. See the sixth post for the previous part.
The current post features sub-tasks for the multi-page floating table work that is around an explicit table overlap control that Word has (and Writer lacked so far), compatible border rendering of split tables and having footnotes in floating tables, which was not working previously.
Regarding testing, the core.git repository has 60 files now which are focusing on correct
handling of floating tables (filename matching floattable-|floating-table-
). This doesn't count
cases where the document model is built using C++ code in the memory and then we assert the result
of some operation.
Here are some screenshots from the fixes this month:
Old, new and reference rendering after expanding an autotext.
The first screenshot shows a case where the anchor paragraph of a floating table had some autotext (e.g. "dt", which stands for dummy text), and pressing the relevant shortcut (F3) expands that autotext with the actual content. This includes changing the anchor position of the floating table, which lead to overlapping text. (A multi-page floating table has multiple anchors, we have to make sure we don't set all of them to the new value as-is.)
Old, new and reference rendering of tables with the overlap=never markup.
The next screenshot shows a case where two tables are positioned in a way that they would overlap. Word has a flag that asks the layout to still re-position the second table so the overlap doesn't happen, and now Writer supports this as well.
Old, new and reference rendering of duplicated anchor text.
This screenshot shows a bug where the anchor text on the first page was also duplicated on the second page. Now we properly start the anchor text on the last page of the floating table, like Word does.
Old, new and reference rendering of a multi-page floating table with borders.
What you can see is a floating table that has 2 pages, but simply a split of the table would result in no bottom border on the first page and no top border for the second, like perhaps you would expect it, matching Word. This is now fixed, the layout infers the border style in those cases correctly.
Old, new and reference rendering of a footnote in a floating table.
The last screenshot shows a mini-feature: it was possible to float tables and to have footnotes in tables, but not both at the same time. The screenshot shows a case where a floating table is needed, so a specific paragraph is above the table. But we couldn't float the table, because it had a footnote and that would be lost as-is. Now you can have a correct position for that paragraph …
Without enough space, one may face data corruption, which is really a terrible thing that can possibly happen for someones important data. In order to avoid falling into such a situation, it is good idea to give warning to the users in advance.
To implement such a feature in LibreOffice, first place to look is this file sfx2/source/doc/sfxbasemodel.cxx
.
The method to query the free space method should be added to the sal/osl
folder in LibreOffice core source code. To add OS specific code, one may use unx
and w32
folders inside it.
Please note that LibreOffice needs to know the disk space on different devices, so passing a vector containing path and free disk space is a good suggestion here.
You should know that guessing the required disk space to save the file is not easy. So, the idea is to have several megabytes free to avoid facing problems. That is in cases the file is not actually very huge. It is possible to add that limit as an option, placed in Tools > Options
. These days, even 100-200 megabyte is not that much when comparing it to the very fast disk consumption by different applications like browsers and other similar huge software that people use regularly.
Another nice feature to implement is a handler that runs with low priority every several seconds and checks the available temporary space. That will help avoiding problems with saving images in that specifc temp directory.
One needs to create a test environment to actually test the patch in action. Using a small RAM drive, it is possible to do that. These commands are useful to create a 20 MB partition for testing:
mkdir /tmp/small sudo /bin/mount -t tmpfs -o size=20m,mode=0700,uid=$USER,gid=$GROUP /dev/shm /tmp/small
After invoking the above instructions and filling the disk space, you can invoke LibreOffice with the below command to use temp drive. As a result, you will get the below error message:
No disk space error
But, no warning message is shown when you have some small disk space which is < 1 MB.
$ instdir/program/soffice -env:SAL_USE_VCLPLUGIN=gen -env:UserInstallation=file:///tmp/small /tmp/small/1.pptx
While having < 1 MB disk space, you will get this warning in the terminal, but not when the space is between 1 and 2 MBs.
warn:configmgr:57868:58063:configmgr/source/components.cxx:190: error writing modifications com.sun.star.uno.RuntimeException message: "cannot write to file:///tmp/small/user/nnePqE at ~/Projects/libreoffice/core/configmgr/source/writemodfile.cxx:109"
Please note that both the profile and the opened file were inside /tmp/small
.
The above issue is tdf#60909. If you like it, just follow the Bugzilla link to see more information.
To implement this feature, first you have to build LibreOffice from the sources. If you have not …
LibreOffice Base is part of LibreOffice productivity suite that makes it possible to work with databases. It is an alternative to MS Access. One of the proposed enhancement for Base is to add a “Find and replace” dialog. Right now, a “Find” dialog is available, but it is not possible to do the replacement with the LibreOffice Base dialogs. This issue is filed as tdf#32506.
This was requested for a long time ago, but until now no developer has put time to make it a reality. This feature request has is a difficutlyIntersting EasyHack, which means it is among the EasyHacks that need more work compared to the difficutlyBeginner and difficutlyMedium ones.
I will describe the details of the task, and if you find it interesting, you can start working on it. Solving difficutlyIntersting EasyHacks is among the criterias for selecting GSoC candidates, so it worth trying if you want to be among next year GSoC candidates.
It is worth mentioning that MS Office provide a comparable functionality in “Find and replace” dialog for MS Access. Thus, it would be helpful for the people migrating from Access to Base.
Enrique, which proposed this enhancement, also provided a design for the “Search and replace” dialog.
Proposed design for LibreOffice Base Find and Replace dialog
As described, this enhancement will be extending the search functionality of Base with the ability to do replacement, which is not currently available from dialogs. It is however possible to use SQL queries to do the replacement. Then, the task would be extending the search dialog, and then adding the required methods that use SQL to do search and replacement.
Lionel, a LibreOffice Base developer, has suggested this path, which I have updated:
The discussed dialog is instantiated in this C++ file
dbaccess/source/ui/browser/brwctrlr.cxx:1798
:
pDialog = pFact->CreateFmSearchDialog(getFrameWeld(), sInitialText, aContextNames, 0, LINK(this, SbaXDataBrowserController, OnSearchContextRequest)); pDialog->SetActiveField( sActiveField ); pDialog->SetFoundHandler( LINK( this, SbaXDataBrowserController, OnFoundData ) ); pDialog->SetCanceledNotFoundHdl( LINK( this, SbaXDataBrowserController, OnCanceledNotFound ) ); pDialog->Execute(); pDialog.disposeAndClear();
As the SetFoundHandler()
uses OnFoundData
, we search the same file for "OnFoundData"
, and find it in the line 2347:
IMPL_LINK(SbaXDataBrowserController, OnFoundData, FmFoundRecordInformation&, rInfo, void) { ... }
This function is called, when a match is found.
The comment above the function SetFoundHandler()
describes the idea of “found handler”s:
/** The found-handler gets in the 'found'-case a pointer on a FmFoundRecordInformation-structure (which is only valid in the handler; so if one needs to memorize the data, don't copy the pointer but the structure). This handler MUST be set. Furthermore, it should be considered, that during the handler the search-dialog is still modal. */ void SetFoundHandler(const Link<FmFoundRecordInformation&, void>& lnk) { ... }
In the above mentioned file, brwctlr.cxx
, this is the start of handler function:
Reference< css::sdbcx::XRowLocate > xCursor(getRowSet(), UNO_QUERY);
This "xCursor"
is the form object. The brwctlr.cxx
is only for grid (table) controls. For other controls, one should look into …
But it came up with a change (complete with comment) that was:1. Avoid Unnecessary Dynamic Memory Allocation:
Not ideal. I was hoping for some clever idea around something new VPCONFLICTD or better some shifts and VPCMPD or somesuch to perhaps make performance better. At least it gave some good factual lookup answers like a prettier technical search engine.- uint32_t scratch[width]; + uint32_t *scratch = new uint32_t[width]; // Allocate on the stack
The past four months working on LibreOffice for Google Summer of Code 2023 have been an amazing learning experience. With the help of mentors Thorsten, Heiko, and Hossein, I implemented features to improve the user experience around digital signing and encryption like remembering recipients, better recipient selection UI, fast searching/filtering of keys, and documentation. My 12 patches were merged and it was incredible contributing to open source with the friendly LibreOffice community. I look forward to more FOSS contributions in the future!
Imprint Privacy Policy | |
The Document Foundation is not responsible for the content on planet.documentfoundation.org. However - if you have any concerns about content please contact act Uwe Altmann for moderation. Copyright information: Unless otherwise specified in the author's blog, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the "Mozilla Public License v2.0". "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy. |
![]() |
this site runs a modified version of planet.opensuse (https://github.com/openSUSE/planet.opensuse.org) © 2010 Pascal Bleser and the openSUSE Community. |