geewallet 0.4.300.0 released!
10th of my 21-day quarantine*! And to celebrate, I'm going to release a new version of geewallet. It's not that I blog about geewallet releases often (or blog at all, lately), but this one is a special one for me. We decided to call it 0.4.300.0
The highlights:
- We fixed the GTK theme for our snap package. (Long version of the story: ever since we upgraded our snap generation process to take place in Ubuntu 20.04 instead of Ubuntu 18.04, the theme stopped working so the app was not showing anymore with the default theme of the system, but with the default Gtk theme, which is very plain. Even if you might consider this issue important, we haven't had time to look at it because we've been very busy finishing Lightning support. Sorry.)
- The chart rendering doesn't use SkiaSharp anymore, but good-old Cairo. This fixes some UI glitches that we had in the GTK frontend. (Long version: for this, we didn't just draw the chart using Cairo in our Gtk frontend, we actually wrote an implementation of the Shapes API for the Xamarin.Forms' GTK backend, and we contributed the work upstream: https://github.com/xamarin/Xamarin.Forms/pull/14235 . Hopefully they merge it soon so that we don't need to use our own forked repo/nuget anymore.)
- Fixed a crash when pairing with a cold-storage wallet. (Long version: user might not know that pairing is only allowed against another geewallet instance; low-hanging fruit bugfix which I shouldn't have neglected for so long, I know.)
- Fixed a crash when scanning some QR-codes that contained unknown parameters in the bitcoin URI. (Long version: I was actually in El Salvador and when trying to use a BTM, I found this bug! Apparently some BTMs here add an extraneous "chivo" param in the URI's querystring, in case the wallet being used is the one from the government; not sure why. In this case, geewallet was failing fast instead of ignoring the unexpected intruder.)
- Our CI now checks that our Android, macOS, and iOS frontends don't break. Previously the only frontends that we built in CI were the Gtk one (Linux) and the Console one (cross-platform, it's just terminal-based).
- We do snap package generation in GitLab now instead of GitHub. This is good because Microsoft keeps changing the Linux VMs being used in the GitHubActions service so we cannot keep up fixing things that just break out of the blue (so, they break independently from what we change in our commits, which is very confusing!). (Long version: we had to use GitHubActions because GitLabCI uses docker under the hood; so given that snapcraft uses systemd, it conflicts with it; now we use a "docker in docker" approach to be able to run in GitLabCI; which also allows us to publish the snap package as an artifact in the GitLabCI pipeline, not just publishing it to the Snap Store; this way, in case you somehow need a previous version in the future you can grab it from there, something that you couldn't just via snap AFAIU).
- Even though this wallet supports two ETH currencies (ETH itself, and DAI), we don't recommend their use at the moment because of the high fees and long confirmation waits these days. This is because the wallet waits for an ETH transaction to be mined (to make sure it didn't run out of gas, and if it did, report the problem to the user), but these days this wait is longer than the time-out. The short-term fix for this is either a) assume it will never ran out of gas, since our address is not a contract anyway (so I guess it can never run out of gas, right? feel free to prove me wrong, my ETH knowledge is not top-notch), or b) have some UI indicating that a transaction has been sent but not accepted by the network yet. The long-term fix is to have off-chain (Layer2) technology supported by the wallet, but we don't know which technology we will choose for this, and of course we're giving priority to the first Layer2 technology: Lightning (which is only compatible with BTC and LTC). All this aside, the wallet works well with ETC (an Ethereum-compatible technology). Anyway, this doesn't worry me too much because... what is the ETH blockchain used for these days, mainly? NFTs and DeFi pyramid schemes. In case you didn't get the memo, most of the former (if not all) are scams, and the latter are all of them mainly based on dubious centralized stablecoins (which could suffer fractional reserve and therefore cause bank runs, as Elizabeth Warren has already warned about).
- Despite this wallet being implemented with .NET (F#), our Windows compatibility story is very poor :'-( We ran into limitations of the Microsoft's AOT technology being used for UWP apps (required by the official process required to publish it in the WindowsStore) in the past. Nowadays apparently you can publish apps in the WindowsStore without these limitations, but we haven't tried again. Maybe by the next time we give it another go, we might have moved to MAUI already (which means WinUI instead of UWP under the hood). As always, if this is your cup of tea, we accept MRs!
PHP 8 Horde (Maintaina)
Over the next few days, all Horde libraries and apps in the maintaina-com organization will be whitelisted for PHP 8x. in their FRAMEWORK_6_0 branch development versions. One next step will be a flavour of the OpenSUSE based containers and deployments which runs off PHP 8.0. While some few libraries have been enabled for PHP 8, it is almost certain that horde as a whole will not run correctly. Main culprits are the horde/rpc and horde/form packages and their user code, but there are some other ugly places that need attention.
Development Baseline at 7.4
Code in the maintaina-com repo will stay compatible with PHP 7.4 – at least for the time being. Decisions at Horde LLC may override that at some point or time may just march on. PHP 7.4 has been released two years ago, has ended active support 20 days ago and will be EOLed for upstream security support on November 28th 2022 – roughly 11 months to go. Linux distributions have a tradition to follow their own schedules and backport security fixes. OpenSUSE LEAP 15.3 ships with PHP 7.4 while openSUSE Tumbleweed has switched to PHP 8.0.13 – with PHP 8.1 versions becoming available from official repos soon.
This is a tough decision as PHP 8 and 8.1 have some really interesting features which would allow us to develop more elegant, more readable and more efficient code. For software that is not intended for this audience, I will immediately allow using 8.x-only features as soon as we are confident with Horde’s compatibility. This is going to be a major theme of January and possibly February.
No need to switch right now
If you are running Horde as of horde.org master branches or maintaina-com FRAMEWORK_6_0 branches off PHP 7.4, you should NOT switch right now. We will announce once we think any leftover issues are minor enough for an acceptable early adopter experience.
No particular love for 8.0.x
There is no guarantee our runtime will stay fixed at 8.0. PHP 8.1 offers a lot of new features and a considerable performance boost for some relevant scenarios. While making Maintaina Horde work with 8.x on a 7.4 feature baseline is the first step, the logical next step is upgrading feature baseline to 8.1 or higher. This will be much less of a problem if we get an official Horde 6 release in the meantime and users can choose between a properly conservative release version and a more adventurous Maintaina version. This is not something I have under control though. Horde LLC do as they find appropriate and sustainable and for many users, there is little reason to choose Maintaina over the official releases once we have a Horde 6 version that properly runs on recent PHP and supports Composer out of the box. I am perfectly fine with that and looking forward to it. I will always assist with a migration path as far as I can afford to.
Time is Money, Money buys Time
If you have an urgent commercial interest in a PHP 8-ready Horde version, you really do not want to rely on Maintaina’s timelines and priorities which may be subject to change. You will need to spend money. Approach somebody to do it for you, either Horde LLC or the company I work for, B1 Systems GmbH – both are formidable places to look for Horde-experienced development resources.
Update 2021-12-18 21:00 CET
I just ran the update to the metadata as a mass operation for everything which contains a .horde.yml file – the rest will have to wait until I stumble across it. I leveraged an edited version of horde/git-tools, some bash magic, some mass editing in vscode using their regex tool and some manual fixing.
- All packages now formally require “php”: “^7.4 || ^8”
- If horde-installer-plugin is required, I now go for “^2 || dev-FRAMEWORK_6_0” – however in maintaina-com/Core, I have a job that rebuilds composer.json on commit and this job showed me that the components tool needs an update in this aspect.
- SPDX license code warnings for LGPL and GPL versions have been remedied to LGPL-2.0-only, LGPL-3.0-only, GPL-3.0-only each
- Added the CI workflow where missing. Mostly it will fail until further editing. This is intentional.
- I did NOT unify all versions of CI workflow as some deviations are intentional. I did however unify PHP versions for the unit tests to “7.4”, “8.0” and “latest” and I did unify phpunit versions to “9.5” and “latest”.
- Unified/added the phpdoc workflow and the update-satis workflow as we had multiple versions for no good reason. I have settled for a version of the phpdoc job that will scan lib/, src/ and app/ if they exist
- Cleaned up a lot of metadata mess in the Kolab related packages.
- Removed some version: tags from composer.json files
- Removed the optional pear dependency of imp for the ASN1 implementation from phpseclib – need to look for a proper composer-ready and less outdated replacement.
While the mass changes themselves seem to have gone right, the resulting avalanche of CI jobs showed some issues:
- phpdoc job and update-satis job fail if they run in parallel and the satis repo content has changed since checkout. Either give the push commands in the loop a minute to wait each time or make the job smarter about handling these clashes. Still, failing is better than silently overwriting content
- Having so many versions of the CI job is not maintainable. Need to factor out the boilerplate into an action, make version requirements a config variable with a builtin default and have some mechanism for there rare cases where extra software is needed for meaningful QA, i.e. database and storage related items.
- After getting this migration done, upgrading the git-tools utility may be an interesting exercise in PHP 8 and PHPStan.
- I may have created unnecessary conflicts with some open pull requests. Sorry, contributors. I will improve.
The syslog-ng insider 2021-12: Humio; Log Management; Panther;
The December syslog-ng newsletter is now on-line:
- Sending logs to Panther using syslog-ng
- Reducing the complexity of log management
- Sending logs to Humio using the elasticsearch-http() destination of syslog-ng
It is available at https://www.syslog-ng.com/community/b/blog/posts/the-syslog-ng-insider-2021-12-humio-log-management-panther

syslog-ng logo
Notifications Feature Release for All Users
Frameworks, Gear, Pipewire Update in Tumbleweed
There was no slowing down of snapshots this week as new software continues to flow with daily openSUSE Tumbleweed releases. Tumbleweed went seven for seven this week!
Just two updates were in the 20211214 snapshot. The remote accessing package remmina 1.4.22 provided fixes for freerdp3 compatibility, and remmina also had a fix for a crash if the main window is closed. The libcap-ng 0.7.11 package, which analyzes a system for apps with too many privileges, removed unneeded rules.
Among the many packages that arrive in snapshot 20211213 were KDE’s Gear 21.12.0 and Frameworks 5.89.0 versions. Gear 21.12.0 had some Dolphin file manager enhancements like a Ctrl + i filter feature that brings up a box under the main panel, which added a new Detailed View feature through a right click on an empty space; select the View Mode > Details from the pop up menu. The screenshot application Spectacle gives KDE users a cleaner look of images they drag and drop from Spectacle’s preview panel to Dolphin or to an online image storage site for sharing. The Kdenlive video editor from Gear improved the motion tracking tools; Just use the box in the monitor to cover the area to track, click Analyse in the effects panel, and have fun! The video editor also has a new audio effect that removes background noises from recordings; the Noise Suppressor allows for a voice grab in the audio effects tab to be dropped onto an audio track for clean up. Frameworks 5.89.0 had a considerable amount of bug fixes for the Breeze Icons, which included the addition of a missing kmail breeze icon. The KContacts fixed address formatting for country-only addresses and deprecated countryToISO/ISOToCountry in favor of KCountry. Both KIO and Kirigami had some changes; the latter package lets the escape key close and push the dialog layers. The application library exo updated to version 4.16.3 and fixed compilation warnings; the package that is targeted at application development for Xfce also added typecheck verification to prevent a GTK bug warning. The mpg123 1.29.3 package fixed typos and added a note about equalizer frequency bands in the man page. The updated 370 version of xterm improved performance over slow connections and suppressed the loading of italic font in a few places when the colorITmode is enabled. Other packages to update were yast2-bootloader 4.4.10 and yast2-storage-ng 4.4.23, which added support for mount options use with libstorage-ng to determine whether a efibootmgr is available.
The second update of the week for the Advanced Linux Sound Architecture package arrived in snapshot 20211212. The alsa 1.2.6.1 version fixed the configuration for device parsing. Several alsa changes were made in the kernel-source 5.15.7 update. The kernel also had several KVM fixes to include a shadow nested paging that does not have Protection Keys for Userspace. Since there is now a require dependency, wireplumber became the session manager for pipewire 0.3.40 in the snapshot; “when in doubt, the suggested package is selected,” according to the changelog. The python-cryptography package updated from version 3.4.8 to 36.0.0, which went through a version number change in September. The new Python Package Index has the entire X.509 layer written in Rust; this allows alternate asymmetric key implementations that can support cloud key management services or hardware security modules provided they implement the necessary interface. About 10 more updates arrived in the snapshot.
Quite a few GNOME packages received a version bump in snapshot 20211211. While there were translation updates for gnome-maps 41.2, gnome-software 41.2 fixed a crash when processing age ratings and reloaded application details only when the items were not installing/removing the application. The gupnp 1.4.1 package fixed a regression in the async deprecated Application Programming Interfaces. Mozilla Firefox 95.0 updated in the snapshot, and fixed some Common Vulnerabilities and Exposures. The release appears to be a nod at Windows 95 now that the browser is available in the Microsoft Store. A fix in the use of the default log writer with journald namespaces was made in the glib2 2.70.2 update. Other packages to update in the snapshot were hwdata 0.354, FireEye’s hxtools 20211204, LibreOffice 7.2.4.1, Node.js, 16.13.1, vte 0.66.2, yast2-installation 4.4.28 and more.
Three packages were updated in snapshot 20211210. An added method to disconnect proxy signals was made in the gnome-remote-desktop 41.2 update; the package, which can also be used for screencasting, made warning messages a little bit more explicit. The Linux laptop battery Optimizing package tlp 1.4.0 renamed “Battery Features” to “Battery Care” and introduced plugins to support Battery Care for non-ThinkPads; ASUS, Huawei, LG, Lenovo and Samsung are the first to benefit from the plugins. The kernel headers were updated in the linux-glibc-devel 5.15 release.
Most of the updates in snapshot 20211209 were PyPi updates with the exception of the libffi 3.4.2 and nvme-cli 1.16 updates. Snapshot 20211208 provided the first asla 1.2.6 update, which improved the support of multiple formats in the Pulse-code modulation. The sudo 1.9.8p2 package fixed a few minor memory leaks and sudo_logsrvd now only sends a log ID for the first command of a session, so there is no need to send the log ID for each sub-command. Several other packages were updated in the snapshot like screen reader orca 41.1, soundtouch 2.3.1 and yast2-journal 4.4.1, which is preparing code for Ruby3 along with many other YaST packages.
Celebrate the first openSUSE BAR anniversary!
Almost a year ago, on the 19th of December 2020, openSUSE Members knurpht and m4u had the following conversation:
Gertjan™ - Knurpht™, [19.12.20 00:05]
Dude, have a drink on meet.opensuse.org/beer?
Gertjan™ - Knurpht™, [19.12.20 01:11]
Yo, we( Neal and me are waiting for you to show up
Maurizio G., [19.12.20 05:36]
let’s see how i feel after coffee
Maurizio G., [19.12.20 05:38]
are you and neal still in the BAR?
Gertjan™ - Knurpht™, [19.12.20 05:39]
Nope
We were in the beer btw 😃
Maurizio G., [19.12.20 05:41]
yea i saw your message
Maurizio G., [19.12.20 05:41]
i’m just waking up. maybe in a bit
Gertjan™ - Knurpht™, [19.12.20 05:42]
Now in meet.opensuse.org/BAR
This was the birth of our beloved openSUSE BAR! Since then, the BAR has been a place for contributions, for fixing things together and just hanging out.
The BAR evolved into an important part of our community that helps people get to know each other in the project. It has on-boarded new contributors, strengthened old friendships, brought fixes for various issues on the way and was the place for historical events, such as probably the oldest openSUSE User (89 y.o.) meeting the youngest openSUSE Member (16 y.o.).
During the online openSUSE Leap 15.3 release party, which was aimed to last for 24 hours, the bar passed the marks of a 50+ guests and a 100-hour-BAR session on June 6, 2021, which was followed by reaching a mark of a 200-hour-BAR session on June 10, 2021.
To celebrate the first-year anniversary of the BAR, the second largest BAR event is going to begin on Dec. 18 starting 16:00 UTC at meet.opensuse.org/bar!! Let’s see how long we can keep the party going this time!
We definitely look forward to seeing you all there!! New faces, old friends, those that visit the BAR regularly, and those who have never logged on before. Cheers!
NOTE: Please don’t be discouraged if it takes you a couple of tries to connect! Just keep trying!! Just keep trying and mash the F5 key to refresh, you won’t regret it!!
The openSUSE BAR Crowd
Fedora, CentOS and me
Let me share my Fedora story with you. Hopefully, it helps you to understand, why I am also promoting AlmaLinux and Rocky Linux, even if I am an active Fedora and CentOS community member and contributor.
Before the beginnings
Someone suggested me to try Red Hat Linux in 1995 and replace Slackware Linux with it on my university server. I installed it, but I did not become a fan. And when I found the print out of the password file of my server on the wall of the Russian students' computer lab (see: https://peter.czanik.hu/posts/russian_students_logging/), I quickly switched to Jurix, which already featured shadow passwords. And as Jurix became the base for SUSE Linux, I became a SUSE Linux and later an openSUSE user.
The beginnings
When I started to work at Balabit (now part of One Identity) almost twelve years ago, one of my first tasks was to ensure that the latest version of syslog-ng is available in Linux distributions and FreeBSD. I reached out to package maintainers and helped them to update the syslog-ng package. It went quite well in most cases, but I was stuck with Fedora and EPEL updates. I tried to reach out to developers through official and unofficial channels without luck.

syslog-ng logo
While talking to syslog-ng users, I tried to figure out what OS they use. It turned out that even if syslog-ng was the default syslog implementation in openSUSE and SLES, our most active users were running syslog-ng on RHEL and CentOS. So, I became even more active trying to resolve the syslog-ng package situation, still without luck.
The turn of events arrived almost a year later at FOSDEM. What could not be solved with tickets and e-mails was resolved within five minutes at the Fedora booth in person at FOSDEM. I met a Hungarian Fedora ambassador there who connected me with the right people, and syslog-ng was soon updated to the latest version.
Friends
Freedom, friends, features, first, are the four core values of Fedora. From those “Friends” became very important to me. Even if my operating systems of choice are openSUSE (https://peter.czanik.hu/posts/opensuse_memories_1/) and FreeBSD, I do not have many friends in those communities. However, soon after that initial meeting at the Fedora booth at FOSDEM I got many friends in the Fedora community, both here in Hungary and abroad. I helped in organizing some local gatherings and soon I was asked to become a Fedora ambassador. I gave Fedora talks at various events and helped maintaining the Fedora booth around Europe.
syslog-ng packaging
At first I helped syslog-ng package maintainers with upstream information. Soon I was asked to become a co-maintainer for the syslog-ng package in Fedora and EPEL. I did minor version updates, new syslog-ng features, while the original maintainers did larger changes, like enabling systemd support, new EPEL versions, and so on.
For the past couple of years I maintain syslog-ng mostly alone, both in Fedora and EPEL. I also have my unofficial packages in Copr. This is necessary, as the EPEL policy does not allow version upgrades, while users want to use the latest syslog-ng features.
CentOS Stream and the new RHEL clones
When the end of the traditional CentOS Linux was announced, many syslog-ng users cried out loud. Based on my estimates, about 80% of syslog-ng users run CentOS or RHEL, so I’m monitoring the situation as much as I can. I had a couple of Twitter polls, e-mails on the syslog-ng mailing list and direct discussions with some of our power users.
Only very few organizations seem to be enthusiastic about CentOS Stream. They tend to have their own OS team in house, which does its own OS release based on CentOS. In their case the Stream model made their life easier. The rest of users still seem to prefer the traditional release model.
Based on user feedback it seems, that most of our users will stay on RHEL and compatible operating systems. Some already made the switch: small companies changed from CentOS Linux to RHEL. But many larger installations running thousands of hosts are switching from CentOS to AlmaLinux. While others are switching to Rocky Linux and even Oracle Linux. And some to my favorite non-Linux OS: FreeBSD.
Friends vs. OS
While I have many friends in the Fedora and CentOS developer and user communities, these operating systems are just part of my syslog-ng work. To me it does not matter at all which OS people use to run syslog-ng. If suddenly all syslog-ng users started to use Slackware, I could easily drop my Fedora-related activities and focus on Slackware. Luckily, from the syslog-ng standpoint, support for RHEL, Alma, Rocky and Oracle is the same. I keep using the same tools, same workflows, and in bug reports I only see that people use packages from the Copr repository I maintain. No idea about the OS vendor.
TL;DR: The OS I support for syslog-ng and friendships are two completely separate things. Fedora made me many friends, and I’m grateful for that.
Installing syslog-ng on CentOS Stream 9
CentOS Stream 9 has been around for a while, but it was officially announced just a few days ago. I already tested some earlier snapshots and they had some rough edges. The current version installed without random crashes, has networking and runs smoothly. EPEL – the semi-official repository by Fedora maintainers – is already there, but practically empty, syslog-ng or it’s dependencies are not yet there. As someone asked about syslog-ng support, I had a first try at building it.
I built syslog-ng for CentOS Stream 9 in the Copr build service. Many of the syslog-ng dependencies are not yet available, so I had to compile them myself. EPEL 9 is expected to have the latest Fedora versions, so I used those. I could not get MongoDB client libraries compiled, but the rest of the dependencies are there.
Reat the rest of my blog at https://www.syslog-ng.com/community/b/blog/posts/installing-syslog-ng-on-centos-stream-9

syslog-ng logo
Working and warming up cats
I’m using an external keyboard (1) and mouse (2), but the laptop lid is usually still open for better cooling. That means the internal keyboard (3) and touchpad (4) – made of comfortable materials – are open to be used by a cat searching for warmth (7), in the obvious “every time” case that a normal non-heated nest (6) is not enough.

The problem is, everything goes chaotic at that point in the default configuration. The solution is to have quick shortcuts in my Dash to Dock (8) to both disable (10) and enable (9) keyboard and touchpad at a very rapid pace.
It is to be noted that I’m not disabling the touch screen (5) by default, because most of the time the cat is not leaning on it – there is also the added benefit that if one forgets about the internal keyboard and touchpad disabling and detaches the laptop from the USB-C monitor (11), there’s the possibility of using the touch screen and on-screen keyboard to type in the password and tap on the keyboard/touchpad enabling shortcut button again. If also touch screen was disabled, the only way would be to go back to an external keyboard or reboot.
So here are the scripts. First, the disabling script (pardon my copy-paste use of certain string manipulation tools):
dconf write /org/gnome/desktop/peripherals/touchpad/send-events "'disabled'"
sudo killall evtest
sudo evtest --grab $(sudo libinput list-devices | grep -A 1 "AT Translated Set 2 keyboard" | tail -n 1 | sed 's/.*\/dev/\/dev/') &
sudo evtest --grab $(sudo libinput list-devices | grep -A 1 "Dell WMI" | tail -n 1 | sed 's/.*\/dev/\/dev/') &
sudo evtest --grab $(sudo libinput list-devices | grep -A 1 "Power" | grep Kernel | tail -n 1 | sed 's/.*\/dev/\/dev/') &
sudo evtest --grab $(sudo libinput list-devices | grep -A 1 "Power" | grep Kernel | head -n 1 | sed 's/.*\/dev/\/dev/') &
sudo evtest --grab $(sudo libinput list-devices | grep -A 1 "Sleep" | grep Kernel | tail -n 1 | sed 's/.*\/dev/\/dev/') &
sudo evtest --grab $(sudo libinput list-devices | grep -A 1 "HID" | grep Kernel | head -n 1 | sed 's/.*\/dev/\/dev/') &
sudo evtest --grab $(sudo libinput list-devices | grep -A 1 "HID" | tail -n 1 | sed 's/.*\/dev/\/dev/') &
#sudo evtest --grab $(sudo libinput list-devices | grep -A 1 "ELAN" | tail -n 1 | sed 's/.*\/dev/\/dev/') # Touch screen
And the associated ~/.local/share/applications/disable-internal-input.desktop:
[Desktop Entry]
Version=1.0
Name=Disable internal input
GenericName=Disable internal input
Exec=/bin/bash -c /home/timo/Asiakirjat/helpers/disable-internal-input.sh
Icon=yast-keyboard
Type=Application
Terminal=false
Categories=Utility;Development;
Here’s the enabling script:
dconf write /org/gnome/desktop/peripherals/touchpad/send-events "'enabled'"
sudo killall evtest
and the desktop file:
[Desktop Entry]
Version=1.0
Name=Enable internal input
GenericName=Enable internal input
Exec=/bin/bash -c /home/timo/Asiakirjat/helpers/enable-internal-input.sh
Icon=/home/timo/.local/share/icons/hicolor/scalable/apps/yast-keyboard-enable.png
Type=Application
Terminal=false
Categories=Utility;Development;
With these, if I sense a cat or am just proactive enough, I press Super+9. If I’m about to detach my laptop from the monitor, I press Super+8. If I forget the latter (usually this is the case) and haven’t yet locked the screen, I just tap the enabling icon on the touch screen.
Extract SCHEDULE from an openQA job
Then using openqa-clone-job (and derivates) one can use the SCHEDULE variable to clone a test run with a custom set of test modules. This is particular useful, when developing a new test case and you need a verification run with e.g. an additional test module or to exclude some failing ones.
However it is sometimes cumbersome to type out a large list of tests into a custom SCHEDULE variable, if the amount of test modules exceeds 5 or more tests (e.g. extra_tests_textmode - good luck!).
