Work On Revival Of LibreOffice Online

I worked during the last two weeks on a revival of the LibreOffice Online project. This project / branch is a version of LibreOffice which runs in a browser and supports collaborative editing.

I fetched the commits, which has been commited to a fork of the LibreOffice Online (LOOL) branch since October 2020. But there had been some renamings of file names and strings, which increases the effort. I had to adapt those commits to the original file names and strings. There were also changes in the license header of some files. I had to revert the commit, which inserted those changes.

And then I got another issue with an hardware defect and I had to migrate my environment to another hardware. And yet I got everything up and running. The first screenshot shows LibreOffice Online Writer with a text document.

LibreOffice Online Writer: Hello world test document

And the next screenshot shows the Admin console of LibreOffice Online with some statistics. It shows also that there is currently one user working with one document.

LibreOffice Online Admin Console in the Browser

LibreOffice Extension erstellen: Neue Version des HowTo

In den letzten Tagen habe ich mein kleines HowTo, wie man LibreOffice Extensions (Erweiterungen) für Inhalte erstellt, überarbeitet. Das HowTo enthält Informationen dazu, wie man mit einer Extension verschiedene Arten von zusätzlichen Inhalten, z.B. einer Gallery mit Bildern, für seine Anwender zur Verfügung stellen kann. Das HowTo enthält auch Hinweise auf entsprechende für die einzelnen Arten dieser Non-Code-Extensions für LibreOffice. Diese habe ich meinem Github-Repository erstellt. Die Links zu Ihnen werden im HowTo jeweils genannt.
Die neue Version des HowTo können Sie von meiner Webseite über folgenden Link herunterladen:

Zwischenzeitlich habe ich auch noch an einer PythonQT-Anwendung gearbeitet, über die sich die entsprechenden LibreOffice Non-Code-Extensions (Inhalte-Erweiterungen) über eine Benutzeroberfläche erstellen lassen. Diese Anwendung können Sie aus dem Python Package Index (PyPI) herunterladen bzw. mit Pip installieren (empfohlen in einer virtuellen Python3-Umgebung):

Activity Of A Project By Mails On The Project Organization List

I made a quick calculation of the emails that were sent to the project organization list of the LibreOffice germanophone project (de-discuss-list). I looked at the number of mailing addresses which were subscribed to the list and the number of postings during one year from 2015 to 2020. I started with the numbers from 2015-06-14 and my calculation endet with the numbers from 2020-06-21.

The number of mailing addresses subscribed to the list:
– June 2015: 198 addresses
– June 2016: 208 addresses
– June 2017: 204 addresses
– June 2018: 208 addresses
– June 2019: 210 addresses
– June 2020: 221 addresses

I calculated the number of mails during one year since June 2015:
– June 2015 to June 2016: 1208 new mails
– June 2016 to June 2017: 1281 new mails
– June 2017 to June 2018: 1087 new mails
– June 2018 to June 2019: 865 new mails
– June 2019 to June 2020: 699 new mails

Although the number of mail addresses subscribed to the list increased during the period (with one exception) the number of new mails declined dramatically to approximately 54 percent. Thus the communication inside the open source project went alarming down.

Update December 2020

I looked again on the numbers on the mailing list of the germanophone project to get an impression, if there is some change in the direction. But I had to state that the numbers develop in the same direction further:
– December 2019 to December 2020: 514 new mails

Although the number of inscribed mail addresses increases from 213 to 222 the communication inside the open source project went down further.

New Releases Of TDF.Templateuploadcenter and TDF.Extensionuploadcenter

I worked on some improvements of the code of the Plone add-ons tdf.templateuploadcenter and tdf.extensionuploadcenter. This add-ons were used to drive the current LibreOffice extensions and templates website.

I moved all unicode strings to ‘safe_unicode’ strings to make it more smooth to migrate the content of the current website to the current version of Plone, 5.2, and Python 3.x.

I published a new release of the add-on tdf.templateuploadcenter ( on the Cheeseshop ( during the weekend. Today I submitted a new release of the add-on tdf.extensionuploadcenter on the Cheeseshop (

The source code of both Plone add-ons is available in their Github repositories:

LibreOffice Extensions Website Repository Updated To Python 3

I worked on the complete migration of the LibreOffice extensions and templates website repository to Python 3 and Plone 5.2.x during the last days. I was able to upgrade the staging (development / single instance) buildout first. I worked on some Plone add-ons to reach this goal in my spare time during the last weeks.

But for the success of the migration to Python 3 and Plone 5.2.x is necessary a working production buildout. Thus I worked on the live.cfg buildout script for the site and created a new version of it: live2.cfg. I used this new script for the setup of a pure zeoserver with four instances. I could also add the supervisor controller to start and stop the zeoserver and its instances.

Supervisor monitor on my local Plone 5.2.x Python 3 buildout / environment

Then I worked on adding the support of Varnish to it. I used the add-on plone.recipe.varnish from the Github repository for that and changed Varnish to the a current LTS version 6.0.6. I could start varnishd with supervisor although I got an error message with supervisorctl status for it. The Varnish log stated that it could not get the socket of the port, it is configured to run on.

I looked with netstat -pln into the processes running on my PC and found varnishd running and listening. Thus Varnish had been started, but supervisor lost control over it. I was not able to stop Varnish with a supervisorctl command.

I worked further on the migration of HAProxy to the new Python 3 setup. I got a hint from a member of the Plone community that he already created a working branch of plone.recipe.haproxy for Python 3. I changed my buildout scripts to use this branch and I could build and run HAProxy too. But HAProxy didn’t get in contact with Varnish and the zeoserver instances in my setting. It stated that this instances were not running / available, although they are.

I got another hint from this community member and changed my buildout further. I changed the ‘bind’ Varnish configuration line to point to the Haproxy port of my buildout setting. The error message from Varnish disappeared. I was under control of supervisor yet.

Then I read in a blog about an issue of the HAProxy configuration, if it checks via http for the availability of Plone instances. I removed this option (httpchk) from the haproxy.conf file and everything went green. I could finish the migration to Python 3 and Plone 5.2.x.

HAProxy Monitor on my local Plone 5.2.x Python 3 buildout / environment (only 2 of 4 instances are started by supervisor)

The next step would be a test with a copy of the database and content of the current LibreOffice extensions website. I asked for this some days ago, but got no answer yet.

Time To Say Goodbye To Python 2

The Python version 2.x is soon reaching the end of it’s lifecycle. The last release of this Python version will be published Mid of April 2020 (, thus in less than three weeks. After this date Python 2 will not get any updates, not even for security reasons.

If a software is using Python 2 and not using only a Python 2 supported by a Linux distribution, it’s time to move forward to Python 3 and publish a new release for this switch. If a software project especially targeted to enduser is not able to do this switch at least to the end of April 2020 (or short after this date), the software should not delivered anymore and the user of the software should be informed accordingly. If there is an suitable alternative to the software the user should be pointed to that alternative.

Today I looked into the source code repository of a well known open source software for office worker and it seemed this software (Apache OpenOffice) is using only Python 2.7.x (see and has not been upgraded to Python 3. In contrast the other succesor of , LibreOffice, has been ported to Python 3 for some time. Thus the Python bindings of this open source software is more up-to-date and the use of LibreOffice secure and forward-looking. If the open source project Apache OpenOffice will not be able to publish a new release with Python 3 bindings at least at the beginning of May 2020, the software should not be delivered anymore and the current user should be informed accordingly with a link to the successful and vibrant successor.

Open Source Software lebt nicht von Historie sondern von Dynamik

Auch eine gute quelloffene (Open Source) und freie Software lebt nicht allein von ihrer Historie, sondern sie wird auf Dauer nur überleben, wenn sie mit der technischen Entwicklung Stand hält. Dazu ist es notwendig, dass der Quellcode modernisiert wird und sich an Neuerungen der verwendeten Programmiersprache (z.B. der Programmiersprachen C und C++) anpasst. Hierduch lassen sich dann beispielsweise neue Funktionen der Programmiersprachen einsetzen und zuvor für diese Fälle erstellte Eigenentwicklungen müssen nicht mehr mühsam selbst gepflegt werden (und damit werden Programmierer-Arbeitsstunden für andere Aufgaben, z.B. das Programmieren neuer Funktionen, frei).

Gerade das Erstellen neuer Funktionen oder die Verbesserung alter Funktionalitäten sind für die Weiterentwicklung einer Software wichtig, unabhängig davon, in welchem zeitlichen Rhythmus diese dann in neuen Releases veröffentlicht werden (und wie lange Hauptversionen des Programms mit Patches [Updates] jeweils versorgt werden).

Um den Quellcode einer quelloffenen und freien Software aktuell zu halten und ihm neue oder verbesserte Funktionen einzufügen, bedarf es einer ausreichenden Anzahl von Programmierern (bezahlt und/oder freiwillig Beitragender) und einer leistungsfähigen Infrastruktur zur Zusammenarbeit der Beteiligten.

Dies gilt umso mehr, wenn es sich um eine Software mit umfangreichem Quelltext mit Millionen von Programmierzeilen handelt, und diese Software von Büroarbeitern zur Bearbeitung von Textdokumenten, Tabellendokumenten oder Präsentationen eingesetzt wird und mit ihr auch auf Datenbanken zugegriffen wird.

Wenn man sich die Weiterentwicklung des Quellcodes und der Software der freien Bürosoftware ab dem Jahr 2010 anschaut und die persönlichen Ressourcen (Man-/Women-Power) betrachtet, die in beiden Projekten am Werke ist, stellt man sehr schnell fest, dass allein das LibreOffice-Projekt den Quellcode (der zum Teil noch aus den 1990-Jahren stammte) modernisiert und neue / verbesserte Funktionen eingefügt hat. Demgegenüber hat die Software Apache OpenOffice nach dem Ausstieg von IBM aus dessen Entwicklung keine für die Entwicklung bezahlten Programmierer mehr zur Verfügung. Eine Weiterentwicklung dieser Bürosoftware hat seitdem nicht mehr wirklich stattgefunden. Der Quellcode ist seit 2010 nicht wesentlich modernisiert worden. Apache OpenOffice ist – anders als LibreOffice – nicht in der Lage, das neue Microsoft-Dateiformat OOXML zu lesen und zu schreiben. Dies ist aber – leider – für eine Bürosoftware aktuell erforderlich, da in heterogenen Arbeitsumgebungen / Kundenbeziehungen nicht alle Beteiligten das offene Dateiformat ODF (Open Document Format) verwenden.

Es ist müßig, darüber zu streiten, wer der “wahre” Erbe von ist. Für den Anwender einer quelloffenen und freien Bürosoftware kommt es allein auf deren aktuelle Funktionalität und den gesicherten Support (z.B. für Fehlerbehebung und neue Funktionalitäten) an. Ein Open Source Projekt, das dies nicht (mehr) bieten kann, sollte seine Software nicht mehr bewerben und ihren Vertrieb solange einstellen, bis der Support wieder voll gewährleistet ist. Sofern diese notwendige Konsequenz nicht gezogen wird und die aktuellen Benutzer der Software nicht über die verfügbaren Programm-Alternativen zeitnah informiert werden, schadet eine solche Verfahrensweise letztlich der gesamten Idee von freier Software und dem zugehörigen beruflichen Umfeld.

Another Release Of TDF.Extensionuploadcenter

I added a new mail form to contact a project owner to the Plone add-on tdf.extensionuploadcenter yesterday. This new feature made it to the new release of this Plone add-on which I published on the Cheeseshop ( today:
It is published with the release number 0.49.

The source code of the add-on is available on Github:

And here some screenshots of the new feature:

The section with the link to new project owner contact form
The new project owner contact form secured by recaptcha

This Plone add-on (former release) is driving the LibreOffice extensions website The new release of this add-on could be integrated into the website by running Buildout.

TDF – True Thanks For Volunteer Work?

It’s not funny to read the blog post about the development of a new LibreOffice extensions and templates page. The post lacks of the whole picture about the development and history of the current LibreOffice extensions and templates site. It seemed as if there were no development over the years since the start of the site. But that’s not the case.

The site was first launched in summer 2011 during the first LibreOffice conference in Paris. This site (correctly two sites) was running on Plone 4 using the Plone add-on ‘Plone Software Center’ with the blobstorage addition. This site runs for some years up to the end of 2016.

In the meantime I worked on two new Plone add-ons for an update of the site. I adapted the structure of the new add-ons to the needs of the extension and template submitter from the few feedback I got over the years. I gave presentations about my work on LibreOffice conferences, but without attendance of The Document Foundation (TDF) core members (e.g. board, employees, staff). There were no real vested interest in this area of the project.

I finished my work on a first stable version of the new add-ons in 2016 and I could launch the new (renovated) LibreOffice extensions and templates with the support of a Plone service provider at the end of December 2016. The service provider created a highly scalable productive environment for the new site and migrated the content from the old site into the structure of the new one.

I worked further on the Plone add-ons for the extensions and templates site since then and made some further improvements following the few feedback I got from contributors to the site. I worked in parallel as admin of the site and content reviewer for new extensions and templates. This took a lot of my spare time.

I dropped this admin and review work in autumn 2018 because a member of TDF board criticized my work on the site in public without any preceding talk to me. This was a contempt of my volunteer work on the site and the endless spare time which I spent contributing to LibreOffice and The Document Foundation. In addition other board members didn’t support me and criticized the behavior of the board member in public. This showed me that TDF is not really connected to its Code of Conduct ( It’s more of a nice to have (written text) but not part of the TDF DNA. The project has no real supportive sustainable culture in communication style and behavior.

Although I dropped my admin and reviewer role on the LibreOffice extensions and templates site I worked on the code of the site further. I made some additions to the structure of the Plone add-ons following the feedback I got from contributors and updated the site’s buildout to Plone 5.1.

Because Python 2 got at the end of its live I worked in parallel on a migration of the Plone add-ons for the LibreOffice extensions and templates site to Python version 3. I finished this work some weeks ago and made Python 3 compatible releases of the add-ons. They were published on the Cheeseshop ( Each add-on got also it’s own user documentation which I wrote during the development process.

I did also some work for Python 3 compatibility on the LibreOffice extensions and templates site buildout in a seperate branch. This work is making good progress and should be finished during the next weeks (depends on my available spare time). The site could run on Python 3 and Plone 5.2 then.

My current work is already publicly available on Github. I published it under the General Public License v. 2 (GPL-2).

The new post on TDF blog paints a different picture, as if the site and its code hasn’t changed and developed over the years. From my point of view this is a new threat on me and my countless volunteer work on LibreOffice and for TDF. I could not take the words of thank in the TDF blog post seriously. Seemed to be (necessary) flowers of speech.