zypper-upgraderepo 1.2 is out
Fixes and updates applied with this second minor version improved and extended the main functions, let’s see what’s new.
If you are new to the zypper-upgraderepo plugin, give a look to the previous article to better understand the mission and the basic usage.
Repository check
The first important change is inherent the way to check a valid repository:
- the HTTP request sent is HEAD instead of GET in order to have a more lightweight answer from the server, being the HTML page not included in the packet;
- the request point directly to the repodata.xml file instead of the folder, that because some server security setting could hide the directory listing and send back a 404 error although the repository works properly.
Check just a few repos
Most of the times we want to check the whole repository’s list at once, but sometimes we want to check few of them to see whether or not they are finally available or ready to be upgraded without looping through the whole list again and again. That’s where the –only-repo switch followed by a list of comma-separated numbers comes in help.
All repo by default
The disabled repositories now are shown by default and a new column highlights which of them are enabled or not, keeping their number in sync with the zypper lr output. To see only the enabled ones just use the switch –only-enabled.
Report view
Beside the table view, the switch –report introduce a new pleasant view using just two columns and spanning the right cell to more rows in order to improve the number of info and the reading quality.
Other changes
The procedure which tries to discover an alternative URL now dives back and forth the directory list in order to explore the whole tree of folders wherever the access is allowed by the server itself. The side effect is a general improvement also in repo downgrade.
The output in upgrade mode is now verbose and shows a table similar to the checking one, giving details about the changed URLs in the details column.
The server timeout error is now handled through the switch –timeout which allows tweaking the time before to consider an error any late answer from the server itself.
Final thoughts and what’s next
This plugin is practically completed, achieving all the goals needed for its main purpose no other relevant changes are scheduled, so I started thinking of other projects to work in my spare time.
Among them, there is one I am interested in: bring the power of openSUSE software search page to the command line.
However, there are some problems:
- This website doesn’t implement any web API so will be a lot of scraping job;
- There are missing packages while switching from the global research (selecting All distribution) to the specific distribution;
- Packages from Packman are not included.
I have already got some ideas to solve them and did lay down several lines of code, so let’s see what happens!
KDE Plasma 5.15.0 on openSUSE Tumbleweed
Certified danger
Konferensi LibreOffice Asia yang Pertama Kali
Merujuk pada pemberitaan di https://blog.documentfoundation.org/blog/2019/02/19/first-libreoffice-asia-conference/ tentang acara Konferensi LibreOffice Asia yang pertama kali, berikut terjemahan dari media rilis tersebut:
Konferensi LibreOffice Asia yang pertama kali akan diadakan pada 25-26 Mei 2019 di Nihonbashi, Tokyo, Jepang
Ini adalah konferensi LibreOffice yang pertama menjangkau Asia, area yang memiliki pertumbuhan perangkat lunak berbasis FOSS yang sangat pesat.
Berlin, 18 Februari 2019 – Setelah kesuksesan besar Konferensi LibreOffice Indonesia pada tahun 2018, para anggota dari komunitas Asia memutuskan untuk mengangkat isu ini di 2019 dengan Konferensi LibreOffice Asia yang pertama kali di Nihonbashi – pusat kota Tokyo, Jepang – pada 25-26 Mei 2019.
Sebagai salah satu penyelenggara, Naruhiko Ogasawara, anggota dari komunitas LibreOffice Jepang dan The Document Foundation, tidak bisa menyembunyikan kegembiraannya. “Saat kami mengadakan LibreOffice Mini Conference Japan 2013 sebagai acara lokal, kami hanya sedikit mengetahui tentang komunitas-komunitas di belahan lain Asia,” ucap Naruhiko. “Kemudian tahun ini kami menghadiri LibreOffice Conference dan acara di Asia lainnya seperti openSUSE Asia, COSUP, dan lain sebagainya. Kami menyadari bahwa banyak rekan-rekan kami yang aktif dan bahwa komunitas kami harus belajar banyak dari mereka. Kami bangga dapat mengadakan Konferensi Asia yang pertama dengan rekan-rekan kami untuk lebih memperkuat kemitraan tersebut.
“Ini lompatan takdir yang nyata,” ucap Franklin Weng, salah seorang anggota dari Asia di Dewan Direksi The Document Foundation. “Asia adalah daerah yang perkembangannya sangat pesat dalam mengadopsi ODF dan LibreOffice, tetapi ekosistem kami untuk LibreOffice dan FOSS belum cukup baik. Dalam konferensi ini kami tidak hanya mencoba membuat ekosistem FOSS di Asia lebih baik, tetapi juga untuk mendorong anggota komunitas Asia menunjukkan potensi mereka.”
Beberapa anggota inti dari The Document Foundation akan menghadiri konferensi ini, termasuk Italo Vignoli, pimpinan tim pemasaran dan hubungan masyarakat dan wakil ketua Komite Sertifikasi LibreOffice, dan Lothar Becker, juga wakil ketua Komite Sertifikasi. Selain itu, akan ada anggota komunitas dari Indonesia, Korea Selatan, Taiwan, Jepang dan mungkin China yang hadir.
Poin dari konferensi ini meliputi:
-
Workshop bisnis – yang akan dipandu oleh Lothar Becker dan Italo Vignoli, ketua dan wakil ketua Komite Sertifikasi LibreOffice dari The Document Foundation. Lothar dan Italo akan membahas tentang layanan bisnis – apa yang mendasar dari layanan bisnis LibreOffice, status bisnis LibreOffice saat ini di Eropa, Asia dan wilayah geografis lainnya, dan bagaimana kita dapat saling mendukung, dan lain sebagainya.
-
CJK Hackfest – yang akan dipimpin oleh Mark Hung, seorang Pengembang LibreOffice Tersertifikasi di Taiwan, untuk membahas dan meretas masalah CJK di LibreOffice.
-
Wawancara Sertifikasi – Wawancara Sertifikasi LibreOffice kedua di Asia akan diadakan selama LibreOffice Asia Conference, yang dipandu oleh Italo Vignoli dan Lothar Becker, ketua dan wakil ketua Komite Sertifikasi LibreOffice saat ini. Sejauh ini total 4 atau 5 kandidat akan diwawancarai untuk Profesional Migrasi Bersertifikat LibreOffice dan Pelatih Bersertifikat LibreOffice.
-
Sertifikasi Lokal Asia untuk LibreOffice – yang akan dipandu oleh Franklin Weng dan Eric Sun, dua anggota TDF dari Taiwan, yang akan memperkenalkan ide-ide agar memiliki keterampilan LibreOffice dan sertifikasi pelatih di Asia.
Call for proposal akan segera diluncurkan pada bulan Februari. Selain topik di atas, topik terkait LibreOffice dan ODF lainnya juga diterima.
Makulu Linux 15 | Review from an openSUSE User
FOSDEM 2019 aftermath
![]() |
| Nextcloud group |
One more year visiting Brussels to visit the ultimate FOSS conference, FOSDEM 2019. This is my second year.
My trip was easy. A stop in Rome and then Charleroi. Bought tickets online for a shuttle bus to Brussels (I write this for the people who read this for the first time and they want to attend to FOSDEM). In Rome, I met two friends from my Nextcloud presentations in Greece. It was their first time visiting FOSDEM conference.
The first time it was all new and unknown. This time, I tried to attend as many talks as possible, but I failed. Well, the first day I had to cover Nextcloud booth and the second day (usually is calmer), after I left Nextcloud booth to walk around the campus and check if there's a talk for me, I missed the notification on signal about the group picture. So that's why I'm not in the group picture.
FOSDEM supposed to be all about the talks but usually is all about meeting new people and have a conversation outside of the talks. Also as far as I know, if I want to see a specific talk, I have to sit in the room early in the morning because rooms are crowded for the whole day. Also, there's a plus, that you can watch all the talks from your computer at home wearing slippers and pajamas.
FOSDEM usually starts on Friday at Delirium Cafe (map) with the beer event. The place is awesome and it has plenty of beers but you better go little early. It'll be crowded and you might have to wait 30 mins to get your beer.
The first conference day is all about finding the buildings, rooms, etc and also the booths of my fav projects.
One of my favs is openSUSE booth. Beer is always the no1 item that people are interested (obviously). Free stickers and Linux magazine. GNU Health was also there.
![]() |
| openSUSE booth |
Next stop GNOME booth. This year is special for me because GUADEC will be held at my city.
![]() |
| GNOME booth |
And finally Nextcloud booth where it was the place I talked to many people about the project.
![]() |
| Nextcloud booth |
I had the chance to take a picture with an elephant. Relax, the PostgreSQL one.
During those 2 days, I met many Greek friends from FOSS communities. I also met some friends who moved to Belgium due to Greek's financial issues.
Here is a video:
If you would like to see more video from me, press the button to subscribe:
To end this post, I would like to thank Nextcloud, that sponsored my trip.
Performance benchmark on mdds R-tree
I’d like to share the results of the quick benchmark tests I’ve done to measure the performance of the R-tree implementation included in the mdds library since 1.4.0.
Brief overview on R-tree
R-tree is a data structure designed for optimal query performance on spatial data. It is especially well suited when you need to store a large number of spatial objects in a single store and need to perform point- or range-based queries. The version of R-tree implemented in mdds is a variant known as R*-tree, which differs from the original R-tree in that it occasionally forces re-insertion of stored objects when inserting a new object would cause the target node to exceed its capacity. The original R-tree would simply split the node unconditionally in such cases. The reason behind R*-tree’s choice of re-insertion is that re-insertion would result in the tree being more balanced than simply splitting the node without re-insertion. The downside of such re-insertion is that it would severely affect the worst case performance of object insertion; however, it is claimed that in most real world use cases, the worst case performance would rarely be hit.
That being said, the insertion performance of R-tree is still not very optimal especially when you need to insert a large number of objects up-front, and unfortunately this is a very common scenario in many applications. To mitigate this, the mdds implementation includes a bulk loader that is suitable for mass-insertion of objects at tree initialization time.
What is measured in this benchmark
What I measured in this benchmark are the following:
- bulk-loading of objects at tree initialization,
- the size() method call, and
- the average query performance.
I have written a specially-crafted benchmark program to measure these three categories, and you can find its source code here. The size() method is included here because in a way it represents the worst case query scenario since what it does is visit every single leaf node in the entire tree and count the number of stored objects.
The mdds implementation of R-tree supports arbitrary dimension sizes, but in this test, the dimension size was set to 2, for storing 2-dimensional objects.
Benchmark test design
Here is how I designed my benchmark tests.
First, I decided to use map data which I obtained from OpenStreetMap (OSM) for regions large enough to contain the number of objects in the millions. Since OSM does not allow you to specify a very large export region from its web interface, I went to the Geofabrik download server to download the region data. For this benchmark test, I used the region data for North Carolina, California, and Japan’s Chubu region. The latitude and longitude were used as the dimensions for the objects.
All data were in the OSM XML format, and I used the XML parser from the orcus project to parse the input data and build the input objects.
Since the map objects are not necessarily of rectangular shape, and not necessarily perfectly aligned with the latitude and longitude axes, the test program would compute the bounding box for each map object that is aligned with both axes before inserting it into R-tree.
To prevent the XML parsing portion of the test to affect the measurement of the bulk loading performance, the map object data gathered from the input XML file were first stored in a temporary store, and then bulk-loaded into R-tree afterward.
To measure the query performance, the region was evenly split into 40 x 40 sub-regions, and a point query was performed at each point of intersection that neighbors 4 sub-regions. Put it another way, a total of 1521 queries were performed at equally-spaced intervals throughout the region, and the average query time was calculated.
Note that what I refer to as a point query here is a type of query that retrieves all stored objects that intersects with a specified point. R-tree also allows you to perform area queries where you specify a 2D area and retrieve all objects that overlap with the area. But in this benchmark testing, only point queries were performed.
For each region data, I ran the tests five times and calculated the average value for each test category.
It is worth mentioning that the machine I used to run the benchmark tests is a 7-year old desktop machine with Intel Xeon E5630, with 4 cores and 8 native threads running Ubuntu LTS 1804. It is definitely not the fastest machine by today’s standard. You may want to keep this in mind when reviewing the benchmark results.
Benchmark results
Without further ado, these are the actual numbers from my benchmark tests.

The Shapes column shows the numbers of map objects included in the source region data. When comparing the number of shapes against the bulk-loading times, you can see that the bulk-loading time scales almost linearly with the number of shapes:

You can also see a similar trend in the size query time against the number of shapes:

The point query search performance, on the other hand, does not appear to show any correlation with the number of shapes in the tree:

This makes sense since the structure of R-tree allows you to only search in the area of interest regardless of how many shapes are stored in the entire tree. I’m also pleasantly surprised with the speed of the query; each query only takes 5-6 microseconds on this outdated machine!
Conclusion
I must say that I am overall very pleased with the performance of R-tree. I can already envision various use cases where R-tree will be immensely useful. One area I’m particularly interested in is spreadsheet application’s formula dependency tracking mechanism which involves tracing through chained dependency targets to broadcast cell value changes. Since the spreadsheet organizes its data in terms of row and column positions which is 2-dimensional, and many queries it performs can be considered spatial in nature, R-tree can potentially be useful for speeding things up in many areas of the application.
Who wrote librsvg?
Authors by lines of code, each year:

Authors by percentage of lines of code, each year:

Which lines of code remain each year?

The shitty thing about a gradual rewrite is that a few people end up "owning" all the lines of source code. Hopefully this post is a little acknowledgment of the people that made librsvg possible.
The charts are made with the incredible tool git-of-theseus — thanks to @norwin@mastodon.art for digging it up! Its README also points to a Hercules plotter with awesome graphs. You know, for if you needed something to keep your computer busy during the weekend.
Right-to-Left Script in LibreOffice using KDE Plasma on openSUSE
Kleopatra: El administrador de claves para KDE
Para instalar Kleopatra en openSUSE, lo podemos hacer con la tecnología 1 Click Install
https://software.opensuse.org/package/kleopatra
Have a lot of fun!










