Welcome to Planet openSUSE

This is a feed aggregator that collects what openSUSE contributors are writing in their respective blogs.

To have your blog added to this aggregator, please read the instructions.


Monday
17 February, 2020


face

Do you like checking the status of your OBS account on the way to work? While sitting on the sofa? On a flight? You are not alone :raised_hands:. Many of the OBS users like that, but the OBS web interface is often a pain in the neck, especially on small screen sizes. We want to change this. And with the new UI technology we introduced last year, we have the chance to do so! :clap:...


Saturday
15 February, 2020


face

oSLO is short for openSUSE + LibreOffice.

The two projects are celebrating their 15ᵗʰ and 10ᵗʰ anniversary respectively in 2020. To mark the occasion, openSUSE and LibreOffice projects are organizing a joint conference from 13ᵗʰ to 16ᵗʰ October 2020 in Nuremberg, Germany. The conference will take place at Z-bau (Frankenstraße 200). It is the same location where last year's openSUSE Conference was held.

openSUSE and LibreOffice conferences are meant to bring like minded people together to discuss about topics relative to the projects. People can learn, teach and share their passion about the projects.

Last September, openSUSE announced a logo design competition for this co-conference with LibreOffice. Early this month the winner of the competition was announced. Kukuh Syafaat from Indonesia won the hearts of the co-conference organizing team.

Logo design by Kukuh Syafaat for oSLO Conference, Nuremberg.

The conference is free to attend. Mark you calendar & join the fun!

Call for Papers

The organizing team is currently accepting proposals for sessions. The deadline for submission is 21 July 2020.


Friday
14 February, 2020


face

Dear Tumbleweed users and hackers,

At SUSE we had so-called hackweek. Meaning everybody could do something out of their regular tasks and work for a week on something else they wish to invest time on. I used the time to finally get the ‘osc collab’ server back in shape (Migrated from SLE11SP4 to Leap 15.1) – And in turn handed ‘The Tumbleweed Release Manager hat’ over to Oliver Kurz, who expressed an interest in learning about the release Process for Tumbleweed. I think it was an interesting experiment for both of us: for him, to get something different done and for me to get some interesting questions as to why things are the way they are. Obviously, a fresh look from the outside gives some interesting questions and a few things translated in code changes on the tools in use (nothing major, but I’m sure discussions will go on)

As I stepped mostly back this week and handed RM tasks over to Oliver, that also means he will be posting the ‘Review of the week’ to the opensuse­factory mailing list. For my fellow blog users, I will include it here directly for your reference.

What was happening this week and included in the published snapshots:

* KDE Applications 19.12.2
* KDE Plasma 5.18
* Linux Kernel 5.5.1 (which as some times in before posed a problem for owners 
of NVIDIA cards running proprietary drivers when Tumbleweed is too fast and 
drivers are not yet provided by NVIDIA in time for the new kernel version)²

What is still ongoing or in the process in stagings:

* Python 3.8 (salt, still brewing but progressing)
* Removal of python 2 (in multiple packages)
* glibc 2.31 (good progress but not done)
* GNU make 4.3
* libcap 2.30: breaks fakeroot and drpm
* RPM: change of the database format to ndb
* MicroOS Desktop³

Have fun,
Oliver


face

Planning for the openSUSE + LibreOffice Conference has begun and members of the open-source communities can now register for the conference. The Call for Papers is open and people can submit their talks until July 21.

The following tracks can be selected when submitting talks related to openSUSE:

  1. a) openSUSE
  2. b) Open Source
  3. c) Cloud and Containers
  4. d) Embedded.

The following tracks can be selected when submitting talks related to LibreOffice:

  1. a) Development, APIs, Extensions, Future Technology
  2. b) Quality Assurance
  3. c) Localization, Documentation and Native Language Projects
  4. d) Appealing Libreoffice: Ease of Use, Design and Accessibility
  5. e) Open Document Format, Document Liberation and Interoperability
  6. f) Advocating, Promoting, Marketing LibreOffice

Talks can range from easy to difficult and there are 15 minute, 30 minute and 45 minute slots available. Workshops and workgroup sessions are also available and are planned to take place on the first day of the conference.

Both openSUSE and LibreOffice are combining their conferences (openSUSE Conference and LibOcon) in 2020 to celebrate LibreOffice’s 10-year anniversary and openSUSE’s 15-year anniversary. The conference will take place in Nuremberg, Germany, at the Z-Bau from Oct. 13 to 16.

How to submit a proposal

Please submit your proposal to the following website: https://events.opensuse.org/conferences/oSLO

Guide to write your proposal

Please write your proposal so that it is related to one or more topics. For example, if your talk is on security or desktop, it is better that it contains how to install that applications or demo on openSUSE. Please clarify what the participants will learn from your talk.

  •     The introduction of main technology or software in your talk
  •     The main topic of your talk

Only workshop: please write how to use your time and what you need.

  •     We recommend writing a simple timetable on your proposal
  •     Please write the necessary equipment (laptops, internet access) to the Requirement field

Travel Support

The speakers are eligible to receive sponsorship from either the openSUSE Travel Support Program (TSP) or the LibreOffice’s Travel Policy process. Those who wish to use travel support should request the support well in advance. The last possible date to submit a request from openSUSE’s TSP is Sept. 1.

  • Please refer to the following URL for how to apply for travel

Thursday
13 February, 2020


face

Dear syslog-ng users,

This is the 78th issue of syslog-ng Insider, a monthly newsletter that brings you syslog-ng-related news.

NEWS

Keeping syslog-ng portable

I define syslog-ng as an “Enhanced logging daemon with a focus on portability and high-performance central log collection”. One of the original goals of syslog-ng was portability: running the same application on a wide variety of architectures and operating systems. After one of my talks mentioning syslog-ng, I was asked how we ensure that syslog-ng stays portable when all the CI infrastructure focus on 64bit x86 architecture and Linux. You can learn my answer from:

https://www.syslog-ng.com/community/b/blog/posts/keeping-syslog-ng-portable

Why choose syslog-ng over rsyslog

A question I often receive is ‘what are the differences between rsyslog and syslog-ng?’ It’s a little tricky to answer. First, because my experience is mostly with syslog-ng, and because there are many similarities between the two projects. This is where the syslog-ng users help me. They can clearly explain from firsthand experience why they chose syslog-ng. The following blog post includes some of the most common reasons why they choose syslog-ng.

https://www.syslog-ng.com/community/b/blog/posts/why-chose-syslog-ng-over-rsyslog-1421994805

Secure logging with syslog-ng

In his presentation at FOSDEM, Stephan Marwedel mentioned a new syslog-ng feature he is working on, namely “(...) the design, implementation, and configuration of the secure logging service. Its aim is to provide tamper evident logging, i.e., to adequately protect log records of an information system against tampering and to provide a sensor indicating attack attempts.” (Marwedel, S. Secure logging with syslog-ng. (n.d.). Retrieved from https://fosdem.org/2020/schedule/event/security_secure_logging_with_syslog_ng/)Learn more about the presentation, and access the slides at https://fosdem.org/2020/schedule/event/security_secure_logging_with_syslog_ng/ A pull request implementing this feature was already sent to syslog-ng on GitHub. You can follow its progress at https://github.com/syslog-ng/syslog-ng/pull/3121

State of syslog-ng on Mac

Mac support is a returning question among syslog-ng users, especially when I talk to users in the US. For recent releases, each commit is automatically tested on macOS. However, there is not much information available on Mac support. Recently, I bought a MacBook to be able to test and document syslog-ng on Mac. Here are my first experiences and some future plans.

https://www.syslog-ng.com/community/b/blog/posts/state-of-syslog-ng-on-mac

Installing the latest syslog-ng on openSUSE, RHEL and other RPM distributions

The syslog-ng application is included in all major Linux distributions, and you can usually install syslog-ng from the official repositories. If the core functionality of syslog-ng meets your needs, use the package in your distribution repository (yum install syslog-ng), and you can stop reading here. However, if you want to use the features of newer syslog-ng versions, for example, sending log messages to Elasticsearch or Apache Kafka, you have to either compile syslog-ng from source, or install it from unofficial repositories. This post explains how to do that.

https://www.syslog-ng.com/community/b/blog/posts/installing-latest-syslog-ng-on-rhel-and-other-rpm-distributions

NEW WHITE


face

Can you tell us a bit about yourself?

I live on an island in the middle of the Indian Ocean (20°2′ S, 57°6′ E), called Mauritius. I work for a company that supports me in contributing to the openSUSE Project. That being said, we also heavily use openSUSE at the workplace.

Tell us about your early interaction with computers ? How your journey with Linux got started?

My early interaction with computers only started in the late years of college and I picked up Linux after a few students who were attending the computer classes back then whispered the term “Linux” as a super complicated thing. It caught my attention and I got hooked ever since. I had a few years of distro hopping until in 2009 I settled down with openSUSE.

Can you tell us more about your participation in openSUSE and why it started?

I joined the “Ambassador” program in 2009, which later was renamed to openSUSE Advocate, and finally the program was dropped. In 2013, I joined the openSUSE Local Coordinators to help coordinating activities in the region. It was my way of contributing back. During those years, I would also test openSUSE RCs and report bugs, organize local meetups about Linux in general (some times openSUSE in particular) and blog about those activities. Then, in 2018 after an inspiring conversation with Richard Brown, while he was the openSUSE Chairman, I stepped up and joined the openSUSE Elections Committee, to volunteer in election tasks. It was a nice and enriching learning experience along with my fellow election officials back then, Gerry Makaro and Edwin Zakaria. I attended my first openSUSE Conference in May 2019 in Nuremberg. I did a presentation on how we’re using Podman in production in my workplace. I was extremely nervous to give this first talk in front of the openSUSE community but I met folks who cheered me up. I can’t forget the encouragement from Richard, Gertjan, Harris, Doug, Marina and the countless friends I made at the conference. Later during the conference, I was back on the stage, during the Lightning Talks, and I spoke while holding the openSUSE beer in one hand and the microphone in the other. Nervousness was all gone thanks to the magic of the community.

Edwin and Ary told me about their activities in Indonesia, particularly about the openSUSE Asia Summit. When the CfP for oSAS 2019 was opened, I did not hesitate to submit a talk, which was accepted, and months later I stood among some awesome openSUSE contributors in Bali, Indonesia. It was a great Summit where I discovered more of the openSUSE community. I met Gerald Pfeifer, the new chairman of openSUSE, and we talked about yoga, surrounded by all of the geeko fun, talks and workshops happening.

Back to your question, to answer the second part about “why openSUSE”, I can safely, gladly and proudly say that openSUSE was (and still is) the most welcoming community and easiest project to


Wednesday
12 February, 2020


Benjamin Weber: Do you CI?

16:58 UTCmember

face

When I ask ask people about their approach to continuous integration, I often hear a response like

“yes of course, we have CI, we use…”.

When I ask people about doing continuous integration I often hear “that wouldn’t work for us…”

It seems the practice of continuous integration is still quite extreme. It’s hard, takes time, requires skill, discipline and humility.

What is CI?

Continuous integration is often confused with build tooling & automation. CI is not something you have, it’s something you do.

Continuous integration is about continually integrating. Regularly (several times a day) integrating your changes (in small & safe chunks) with the changes being made by everyone else working on the same system.

Teams often think they are doing continuous integration, but are using feature branches that live for hours or even days to weeks.

Code branches that live for much more than an hour are an indication you’re not continually integrating. You’re using branches to maintain some degree of isolation from the work done by the rest of the team.

I like the current Wikipedia definition: “continuous integration (CI) is the practice of merging all developer working copies to a shared mainline several times a day.”

I like this description. It’s worth calling out a few bits.

CI is a practice. Something you do, not something you have. You might have “CI Tooling”. Automated build/test running tooling that helps check all changes.

Such tooling is good and helpful, but having it doesn’t mean you’re continually integrating.

Often the same tooling is even used to make it easier to develop code in isolation from others. The opposite of continuous integration.

I don’t mean to imply that developing in isolation and using the tooling this way is bad. It may be the best option in context. Long lived branches and asynchronous tooling has enabled collaboration amongst large groups of people across distributed geographies and timezones.

CI is a different way of working. Automated build and test tooling may be a near universal good. (even a hygiene factor). The practice of Continuous Integration is very helpful in some contexts, even if less universally beneficial.

…all developer working copies…

All developers on the team integrating their code. Not just small changes. If bigger features are worked on in isolation for days or until they’re complete you’re not integrating continuously.

…to a shared mainline…

Code is integrated into the same branch. Often “master” in git parlance. It’s not just about everyone pushing their code to be checked by a central service. It’s about knowing it works when combined with everyone else’s work in progress, and visible to the rest of the team.

…several times a day

This is perhaps the most extreme part. The part that highlights just how unusual a practice continuous integration really is. Despite everyone talking about it.

Imagine you’re in a team of five developers, working independently, practising CI. Aiming to integrate your


Monday
10 February, 2020


face

Why I No Longer Use openSUSE Leap -

For those who don’t already know, openSUSE is a Linux Distribution Project with two Linux distributions, Tumbleweed and Leap.

  • Tumbleweed is what is known as a Rolling Release, in that the distribution is constantly updating. Unlike Operating Systems with specific versions (e.g.. Windows 7, Windows 10, iOS 13, etc..) there is just ‘openSUSE Tumbleweed’ and anyone downloading it fresh or updating it today gets all the latest software.
  • Leap is what is known as a a Regular Release, in that it does have specific versions (e.g.. 15.0, 15.1, 15.2) released in a regular cadence. In Leap’s case, this is annually. Leap is a variation of the Regular Release known as an LTS Release because each of those ‘minor versions’ (X.1, .2, .3) are intended to include only minor changes, with a major new version (e.g.. 16.0) expected only every few years.

It’s a long documented fact that I am a big proponent of Rolling Releases and use them as my main operating system for Work & Play on my Desktops/Laptops.
However in the 4 years since writing that last blog post I always had a number of Leap machines in my life, mostly running as servers.

As of today, my last Leap machine is no more, and I do not foresee ever going back to Leap or any Linux distribution like it.

This post seeks to answer why I have fallen out of love with the Regular Release approach to developing & using Operating Systems and provide an introduction to how you too could rely on Rolling Releases (specifically Tumbleweed & MicroOS) for everything.

Disclaimer

First, a few disclaimers apply to this post. I fully realise that I am expressing a somewhat controversial point and am utterly expecting some people to disagree and be dismissive of my point of view. That’s fine, we’re all entitled to our opinions, this post is mine.

I am also distinctly aware that, my views expressed run counter to the business decisions of the customers of my employer, who do a very good job of selling a very commercially successful Enterprise Regular Release distribution.
The views expressed here are my own and not those of my employer.

And I have no problem that my employer is doing a very good job making a lot of money from customers who are currently making decisions I feel are ‘wrong’.
If my opinion is correct then I hope I can help my employer make even more money when customers start making decisions I feel are more ‘right’.

Regular & LTS Releases Mean Well

Regular & LTS Releases (hereafter referred to as just Regular Releases) have all of the best intentions. The Open Source world is made up of thousands if not millions of discreet Free Software & Open Source Projects, and Linux distributions exist to take all of that often chaotic, ever-evolving software and condensing it into a consumable format that is then


face

We are happy to pre-announce a new service entering the openSUSE world:

https://debuginfod.opensuse.org

debuginfod is an HTTP file server that serves debugging resources to debugger-like tools.

Instead of using the old way to install the needed debugging packages one by one as root like:

zypper install $package-debuginfo

the new debuginfod service lets you debug anywhere, anytime.

Right now the service serves only openSUSE Tumbleweed packages for the x86_64 architecture and runs in an experimental mode.

The simple solution to use the debuginfod for openSUSE Tumbleweed is:

export DEBUGINFOD_URLS="https://debuginfod.opensuse.org/"
gdb ...

For every lookup, the client will send a query to the debuginfod server and get's back the requested information, allowing to just download the debugging binaries you really need.

More information is available at the start page https://debuginfod.opensuse.org - feel free to contact the initiator marxin directly for more information or error reports.


face

While we monitor basic functionality of our MariaDB (running as Galera-Cluster) and PostgreSQL databases since years, we missed a way to get an easy overview of what's really happening within our databases in production. Especially peaks, that slow down the response times, are not so easy to detect.

That's why we set up our own Grafana instance. The dashboard is public and allows everyone to have a look at:

  • The PostgreSQL cluster behind download.opensuse.org. Around 230 average and up to 500 queries per second are not that bad...
  • The Galera cluster behind the opensuse.org wikis and other MariaDB driven applications like Matomo or Etherpad. One interesting detail here is - for example - the archiving job of Matomo, triggering some peaks every hour.
  • The Elasticsearch cluster behind the wiki search. Here we have a relatively high JVM memory foodprint. Something to look at...

Both: the Grafana dashboard and the databases are driving big parts of the openSUSE infrastructure. And while everything is still up and running, we would love to hear from experts how we could improve. If you are an expert or know someone, feel free to contact us via Email or in our IRC channel.


Saturday
08 February, 2020


face

Busy days in geewallet world! I just released version 0.4.2.198 which brings some interesting fixes, but I wanted to talk about the internal work that had to be done for each of them, in case you're interested.

  • In Linux(GTK), cold storage mode when pairing was broken, because the absence of internet connection was not being detected properly. The bug was in a 3rd-party nuget library we were using: Xam.Plugin.Connectivity. But we couldn't migrate to Xamarin.Essentials for this feature because Xamarin.Essentials lacks support for some platforms that we already supported (not officially, but we know geewallet worked on them even if we haven't released binaries/packages for all of them yet). The solution? We forked Xamarin.Essentials to include support for these platforms (macOS and Linux), fixed the bug in our fork, and published our fork in nuget under the name `DotNetEssentials`. Whenever Xamarin.Essentials starts supporting these platforms, we will stop using our fork.
  • The clipboard functionality in geewallet depended on another 3rd-party nuget library: Xamarin.Plugins.Clipboard. The GTK bits of this were actually contributed by me to their github repository as a Pull Request some time ago, so we just packaged the same code to include it in our new DotNetEssentials fork. One dependency less to care about!
  • Xamarin.Forms had a strange bug that caused some buttons sometimes to not be re-enabled. This bug has been fixed by one of our developers and its fix was included in the new pre-release of Xamarin.Forms 4.5, so we have upgraded geewallet to use this new version instead of v4.3.
Last but not least, I wanted to mention something not strictly related to this new release. We got accepted in GNOME's gitlab, so now the canonical place to find our repository is here:


Technically speaking, this will allow us to drop GithubActions for our non-Linux CI lanes (we were already happy with our gitlab-ci recipes before we had to use GH! only limitation was that GitLab.com's free tier CI minutes for agents was Linux-only).

But in general we're just happy to be hosted by infrastructure from one of the most important opensource projects in the world. Special thanks go to Carlos Soriano and Andrea Veri for helping us with the migration.

PS: Apologies if the previous blogpost to this one shows up in planets again, as it might be a side-effect of updating its links to point to the new git repo!


face
Version 0.4.2.187 of geewallet has just been published to the snap store! You can install it by looking for its name in the store or by installing it from the command line with `snap install geewallet`. It features a very simplistic and minimalistic UI/UX. Nothing very fancy, especially because it has a single codebase that targets many (potential) platforms, e.g. you can also find it in the Android App Store.

What was my motivation to create geewallet in the first place, around 2 years ago? Well, I was very excited about the “global computing platform” that Ethereum was promising. At the time, I thought it would be like the best replacement of Namecoin: decentralised naming system, but not just focusing on this aspect, but just bringing Turing-completeness so that you can build whatever you want on top of it, not just a key-value store. So then, I got ahold of some ethers to play with the platform. But by then, I didn’t find any wallet that I liked, especially when considering security. Most people were copy+pasting their private keys into a website (!) called MyEtherWallet. Not only this idea was terrifying (since you had to trust not just the security skills of the sysadmin who was in charge of the domain&server, but also that the developers of the software don’t turn rogue…), it was even worse than that, it was worse than using a normal hot wallet. And what I wanted was actually a cold wallet, a wallet that could run in an offline device, to make sure hacking it would be impossible (not faraday-cage-impossible, but reasonably impossible).

So there I did it, I created my own wallet.

After some weeks, I added bitcoin support on it thanks to the library NBitcoin (good work Nicholas!). After some months, I added a cross-platform UI besides the first archaic command-line frontend. These days it looks like this:



What was my motivation to make geewallet a brain wallet? Well, at the time (and maybe nowadays too, before I unveil this project at least), the only decent brain wallet out there that seemed sufficiently secure (against brute force attacks) was WarpWallet, from the Keybase company. If you don’t believe in their approach, they even have placed a bounty in a decently small passphrase (so if you ever think that this kind of wallet would be hacked, you would be certainly safe to think that any cracker would target this bounty first, before thinking of you). The worst of it, again, was that to be able to use it you had again to use a web interface, so you had the double-trust problem again. Now geewallet brings the same WarpWallet seed generation algorithm (backed by unit tests of course) but on a desktop/mobile approach, so that you can own the hardware where the seed is generated. No need to write anymore long seeds of random words in pieces of paper: your mind is the limit

face


I started my career writing web applications. I had struggles with PHP web-frameworks, javascript libraries, and rendering differences (CSS and non-CSS glitches) across browsers. After leaving that world, I started focusing more on the backend side of things, fleeing from the frontend camp (mainly actually just scared of that abomination that was javascript; because, in my spare time, I still did things with frontends: I hacked on a GTK media player called Banshee and a GTK chat app called Smuxi).

So there you had me: a backend dev by day, desktop dev by night. But in the GTK world I had similar struggles as the ones I had as a frontend dev when the browsers wouldn’t behave in the same way. I’m talking about GTK bugs in other non-Linux OSs, i.e. Mac and Windows.

See, I wanted to bring a desktop app to the masses, but these problems (and others of different kinds) prevented me to do it. And while all this was happening, another major shift was happening as well: desktop environments were fading while mobile (and not so mobile: tablets!) platforms were rising in usage. This meant yet more platforms that I wished GTK supported. As I’m not a C language expert (nor I wanted to be), I kept googling for the terms “gtk” and “android” or “gtk” and “iOS”, to see if some hacker put something together that I could use. But that day never happened.

Plus, I started noticing a trend: big companies with important mobile apps started to stop using HTML5 within their apps in favour of native apps, mainly chasing the “native look & feel”. This meant, clearly, that even if someone cooked a hack that made gtk+ run in Android, it would still feel foreign, and nobody would dare to use it.

So I started to become a fan of abstraction layers that were a common denominator of different native toolkits and kept their native look&feel. For example, XWT, the widget toolkit that Mono uses in MonoDevelop to target all 3 toolkits depending on the platform: Cocoa (on macOS), Gtk (on Linux) and WPF (on Windows). Pretty cool hack if you ask me. But using this would contradict my desires of using a toolkit that would already support Android!

And there it was Xamarin.Forms, an abstraction layer between iOS, Android and WindowsPhone, but that didn’t support desktops. Plus, at the time, Xamarin was proprietary (and I didn’t want to get out of my open source world). It was a big dilemma.

But then, some years passed, and many events happened around Xamarin.Forms:
  • Xamarin (the company) was bought by Microsoft and, at the same time, Xamarin (the product) was open sourced.
  • Xamarin.Forms is opensource now (TBH not sure if it was proprietary before, or it was always opensource).
  • Xamarin.Forms started supporting macOS and Windows UWP.
  • Xamarin.Forms 3.0 included support for GTK and WPF.

So that was the last straw that made me


Friday
07 February, 2020


face
Nextcloud at FOSDEM
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.

Stathis at Delirium Cafe

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 at FOSDEM 2019
openSUSE booth

Next stop GNOME booth. This year is special for me because GUADEC will be held at my city.

GNOME booth at FOSDEM 2019
GNOME booth

And finally Nextcloud booth where it was the place I talked to many people about the project.

Nextcloud booth at FOSDEM 2019
Nextcloud booth

I had the chance to take a picture with an elephant. Relax, the PostgreSQL one.

PostgreSQL at FOSDEM 2019

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.

face

Lately, the YaST team has been quite busy fixing bugs and finishing some features for the upcoming (open)SUSE releases. Although we did quite some things, in this report we will have a closer look at just a few topics:

  • A feature to search for packages across all SLE modules has arrived to YaST.
  • Improved support for S390 systems in the network module.
  • YaST command-line interface now returns a proper exit-code.
  • Added progress feedback to the Expert Partitioner.
  • Partial support for Bitlocker and, as a lesson learned from that, a new warning about resizing empty partitions.

The Online Search Feature Comes to YaST

As you already know, starting in version 15, SUSE Linux follows a modular approach. Apart from the base products, the packages are spread through a set of different modules that the user can enable if needed (Basesystem module, Desktop Applications Module, Server Applications Module, Development Tools Module, you name it).

In this situation, you may want to install a package, but you do not know which module contains such a package. As YaST only knows the data of those packages included in your registered modules, you will have to do a manual search.

Fortunately, zypper introduced a new search-packages command some time ago that allows to find out where a given package is. And now it is time to bring this feature to YaST.

For technical reasons, this online search feature cannot be implemented within the package manager, so it is available via the Extra menu.

Search Online Menu Option

YaST offers a simple way to search for the package you want across all available modules and extensions, no matter whether they are registered or not. And, if you find the package you want, it will ask you about activating the needed module/extension right away so you can finally install the package.

Online Search: Enable Containers Module

If you want to see this feature in action, check out the demonstration video. Like any other new YaST feature, we are looking forward to your feedback.

Fixing and Improving Network Support for S390 Systems

We have mentioned a lot of times that we recently refactored the Network module, fixing some long-standing bugs and preparing the code for the future. However, as a result, we introduced a few new bugs too. One of those bugs was dropping, by accident, the network devices activation dialog for S390 systems. Thus, during this sprint, we re-introduced the dialog and, what is more, we did a few improvements as the old one was pretty tricky. Let’s have a look at them.

The first obvious change is that the overview shows only one line per each s390 group device, instead of using one row per each channel as the old did.

New YaST Network Overview for S390 Systems

Moreover, the overview will be updated after the activation, displaying the Linux device that corresponds to the just activated device.

YaST2 Network Overview After Activation

Last but not least, we have improved the error reporting too. Now, when the activation fails, YaST will give more details in order to help the user to solve the problem


face

Dear Tumbleweed users and hackers,

This week I canceled more snapshots than I released – only 2 snapshots have been sent out (0201 and 0205). Feels quite bad, but on the other hand, I’m glad we have openQA protecting you, the openSUSE Tumbleweed users, from those issues. As the -factory mailing list shows this week, despite all the testing, we can’t ever predict all the special cases found on our users’ machines.

So, what was happening this week:

  • Qt 5.14.1
  • SQLite 3.31.1
  • Virtualbox 6.1.2
  • Mesa 19.3.3
  • chkconfig moved from aaa_base to insserv-compat (if you have some legacy init scripts around from a package that does not specify this dependency, please file a bug)
  • netcfg – the topic on the mailing list: /etc/services, /etc/protocols and /etc/ethers moved to /usr/etc. Two major sources for errors on user machines have been identified:
    • users ignoring *.rpmnew files and nor merging the config changes from packages into their own config (in this specific case for /etc/nsswitch.conf)
    • Some people seem to have removed even patterns-base-minimal_base, which resulted in those users not having libnss_usrfiles2 being pulled in. As a result, even if the config file was maintained/corrected, the services file could not be found.
    • Both issues are being attempted to be resolved: libnss_usrfiles2 is not only required by the pattern, but also by netcfg (netcfg sets the default config, so we thought this is the best point) and aaa_base tries to correct /etc/nsswitch.conf (but that results in ursfiles being added again, even if the user would have explicitly removed it)

I hope we could help everybody recover their system in a proper way by now, and that the future goal – having as few as possible files in /etc config from the distribution – is something you can follow as a rationale. Besides that, the stagings are still filled with these things:

  • KDE Applications 19.12.2
  • KDE Plasma 5.18
  • Linux Kernel 5.5.1
  • Python 3.8 (salt, hopefully going to be unblocking soon)
  • Removal of python 2
  • glibc 2.31
  • GNU make 4.3
  • libcap 2.30: breaks fakeroot and drpm
  • RPM: change of the database format to ndb
  • elfutils: adding support for debuginfod


Tuesday
04 February, 2020


face

Not only in development environments it’s very handy to have a quick turnaround time, which can include reboots. Especially for transactional systems where changes to the system only take effect after booting into the new state, this can have a significant impact.

So let’s see what can be done. Remember: “The difference between screwing around and science is writing it down”!

Starting point

Starting point for this experiment is a VM (KVM), 4GiB RAM, 2 CPU cores, no EFI. Tumbleweed was installed as Server (textmode) with just defaults.

# systemd-analyze
Startup finished in 1.913s (kernel) + 2.041s (initrd) + 22.104s (userspace) = 25.958s

Almost 26 seconds just to get to the login prompt of a pretty minimal system, that’s not great. What can we do?

Low-hanging fruit

systemd-analyze blame tells us what the worst offenders are:

# systemd-analyze blame --no-pager
18.769s btrfsmaintenance-refresh.service    
17.027s wicked.service                      
 3.170s plymouth-quit.service               
 3.170s plymouth-quit-wait.service          
 1.078s postfix.service                     
 1.023s apparmor.service                    
  839ms systemd-udev-settle.service         
  601ms systemd-logind.service              
  532ms firewalld.service

btrfsmaintenance-refresh.service is a bit special: It calls systemctl during execution to enable/disable and start/stop the btrfs-*.timer units. Those depend on time-sync.target, which itself needs network.service through chronyd.service. wicked.service is the next item on the list. Before the unit is considered active, it tries to fully configure and setup all configured interfaces, which includes DHCPv4 and v6 by default. This is directly used as state for network.service and thus network.target. There is no distinction between network.service and network-online.target by wicked. To make the bootup quicker, switching to NetworkManager is an option, which interprets network.service in a more async way and thus is much quicker to reach the active state. Note that with DHCP, switching between wicked and NM might result in a different IP address!

# zypper install NetworkManager
# systemctl disable wicked
Removed /etc/systemd/system/multi-user.target.wants/wicked.service.
Removed /etc/systemd/system/network.service.
Removed /etc/systemd/system/network-online.target.wants/wicked.service.
Removed /etc/systemd/system/dbus-org.opensuse.Network.Nanny.service.
Removed /etc/systemd/system/dbus-org.opensuse.Network.AUTO4.service.
Removed /etc/systemd/system/dbus-org.opensuse.Network.DHCP4.service.
Removed /etc/systemd/system/dbus-org.opensuse.Network.DHCP6.service.
# systemctl enable NetworkManager
Created symlink /etc/systemd/system/network.service → /usr/lib/systemd/system/NetworkManager.service.

Let’s also remove plymouth - except for eyecandy it does not provide any useful features.

# zypper rm -u plymouth
Reading installed packages...
Resolving package dependencies...

The following 23 packages are going to be REMOVED:
  gnu-unifont-bitmap-fonts libdatrie1 libdrm2 libfribidi0 libgraphite2-3 libharfbuzz0 libpango-1_0-0 libply5 libply-boot-client5 libply-splash-core5 libply-splash-graphics5 libthai0 libthai-data libXft2 plymouth plymouth-branding-openSUSE
  plymouth-dracut plymouth-plugin-label plymouth-plugin-label-ft plymouth-plugin-two-step plymouth-scripts plymouth-theme-bgrt plymouth-theme-spinner

23 packages to remove.
After the operation, 4.8 MiB will be freed.
Continue? [y/n/v/...? shows all options] (y):
...

Plymouth is still started in the initrd, but as it’s not part of the root filesystem anymore it’s not stopped by plymouth-quit.service. This combination would


Monday
03 February, 2020


face

During the maintenance window this Thursday (2020-02-06) we will move the IPv4 and IPv6 address of build.opensuse.org. The new addresses are:

  • 195.135.221.162
  • 2001:67c:2178:8::162

People using this Open Build Service instance should normally not notice – but if you were crazy enough to add the old IP addresses to some firewall rules or configuration files, please make sure that you update your configuration accordingly.

Please note that this affects also the following CNAME (alias) entries:


face
Last week, we introduced Tilix and started exploring its basics, let’s now familiarize ourselves with the advanced features of Tilix, namely:
  • Management of bookmarks, local or remote;
  • Personalized links (clickable links based on regular expressions);
  • Automatic profile switching depending on location (local or remote (SSH));
  • Password management;
  • Launch of internal actions.

Bookmark management

Tilix allows you to save and manage a list of “bookmarks”, that is to say local or remote locations. Just open the Preferences and define some folder or remote servers to connect to, then open this list, select the desired bookmark and go immediately to the folder or open the SSH session to a remote host.

Note: the bookmarks are saved in $HOME/.config/tilix/bookmarks.json We recommend that you create this file by hand beforehand if you notice that your bookmarks are not saved correctly after leaving Tilix.

Create a bookmark folder

Tilix allows you to organize your bookmarks by creating a simple folder in which you can create them, so that they are well organized. This is useful for, for example, grouping SSH connections to the same group of machines:

Tilix

Click on the folder then on the + to add bookmarks.

Local bookmarks

To add bookmarks, open Tilix preferences, then go to the Bookmarks section to click on the +”.

Here we will add a bookmark to the local copy of a project on the Open Build Service.

Tilix

Remote bookmarks

The procedure is the same, but choose Remote then enter the bookmark parameters:

  • Name: the reference of your bookmark;
  • Protocol: choice: SSH, SFTP, TELNET, FTP;
  • Host: the host name of the target followed by the port number;
  • User: the user of the connection;
  • Settings: SSH options for example;
  • Command: if it is an SSH connection, the command to launch on the remote host.

Tilix

Commands

Same procedure as the others, but here we simply enter a command to launch. The bookmark is therefore here a simple alias.

Tilix

My order to update the local copy of my OBS repository.

Use bookmarks

You can access your bookmarks via “Ctrl + Shift + B”, you just have to select it and the corresponding command is launched:

Tilix

Tilix allows you to define a list of links (URI to a web page or a local or remote file:// location) that will be made clickable based on a regular expression or a simple word. To do this, open the Preferences then the Advanced section. For the example, we will add a link to the Open Build Service with the key work obs;

Tilix

The regular expression has become clickable, either by “Ctrl + click”, or by a right-click.

Automatic profile change

We arrive there in a functionality of Tilix, which is particularly useful and must care to avoid to make severe mistake by typing a command in the bad directory or in a remote connection: the automatic change of profile. Tilix, like many modern terminal emulators, allows you to create several profiles (colors, shell used, font etc …) but in addition, it allows to automatically


Sunday
02 February, 2020


face

The openSUSE Board election 2019-2020 reached an end on the night of 31 January 23h59 CET after running for about two weeks.

Four candidates ran in this election and the result is as follows:

Simon is re-elected and gets to serve for another term while Sarah replaces outgoing board member Gertjan Lettink.

281 out of 500 eligible members voted in this election.


Saturday
01 February, 2020


face

The universe is full of captivating, compelling and exquisite things. The internet, the most complete representation of humanity, is no different in that regard. Both are vast, seemingly endless and full of places you should know about. Let me share content that has moved me, in some way, in the last month. January is packed with sustainable open source, management stuff, too many tools and a bunch of awesome talks from 36c3. Go explore!

Open source licenses: 2019 year in review a post by Luis Villa

Luis, the co-founder of tidelift, wrote a nice rundown of all the Free Software license developments of the last 12 months. From pushing worker solidarity (996.ICU) over the ethical source movement and the hippocratic license to the rough time the OSI and the FSF have to respond to these new ideas. In 2019 the question that is currently dividing so many people on this planet has arrived (again) in Free Software. What is more important: Safety or Privilege?

XS:CODE a company.

While we are on the topic of licensing. I came across XS:CODE, the third player (I know of) in the realm of subscription based open source. Tidelift and Lizense Zero are the other two. This is still a bit too much gig-economy for me personally, but for sure a nice alternative to producing Free Software as a byproduct of the next big closed source SAAS app. I keep wondering, if something like this would have existed in my (hacker) youth, what would I have done? Probably stayed away from hacking because of choice fatigue…

Building a First Team Mindset a post by Jason Wong

This one hit close to home. As someone who grew out of the world of Free Software into the world of people/project management I'm often amazed on how anti-collaboration this field is. Most managers care a great deal about the team they lead and give a flying fuck about the managers they serve with. All this clan mentality, self-absorption and bickering about resources. Jason proposed to adopt a different approach to this.

A First Team mindset is the idea that leaders prioritize supporting their fellow leaders over supporting their direct reports

Amen Jason!

Hemmingway an app by Adam & Ben Long

Adam and his brother Ben Long have created the Hemingway App to fight the awful prose on the internet. Kind of like... my prose. I have the dreadful habbit to write super long, riddled with subordinate clauses, and superfluous complicated sentences. There, you see? I've been using the app more and more, especially while writing for a broader audience. Like job descriptions, commit messages and blog posts. It's a form of accessibility, the peepz from a list apart agree and 24a11y agree.

Face of Open Source: New Faces added in 2019 portraits by Peter Adams

Free Software moves me most, if it mixes with other art forms. Be it design, music, performance or like in this case: photography.

Portraits of Revolutionaries

Faces of Open Source


Friday
31 January, 2020


face

Dear Tumbleweed users and hackers,

I have the feeling this year is moving a bit faster than me. Not sure why. But Tumbleweed is keeping up with the fast pace and we have seen five full snapshots released during the week 2020/05 (0123, 0124, 0125, 0127 and 0128).

Those snapshots brought you those major changes:

  • Libvirt 6.0.0
  • SQLite 3.30.1
  • Mozilla Firefox 72.0.2
  • Shadow 4.8
  • Linux kernel 5.4.14
  • PostgreSQL 12
  • gettext 0.20.1

Some of the big topics from last week are still held up in stagings. Seems are progressing, but more help is appreciated. Things currently being worked on:

  • Qt 5.14.1 (Snapshot 0130+)
  • Python 3.8
  • Removal of python 2
  • libcap 2.30: breaks fakeroot and drpm
  • GNU make 4.3: has some major incompatibilities. Observe fallouts at in Staging:O.
  • KDE Plasma 5.18 (currently beta being tested)
  • Linux kernel 5.5
  • netcfg moves a few files from /etc to /usr/etc (services,. protocols): currently, AppArmor is blocking access to those files, so we need some changes there (Snapshot 0130 and later)
  • RPM: Change of the database format from bdb to ndb
  • Initial work is being done for GCC10

Wednesday
29 January, 2020


face

Software wird ein immer wichtigerer Teil unserer Welt. Sie ist kein Luxus mehr, an dem man bewusst teilnehmen oder dem man sich entziehen kann. Vielmehr ist Software mehr und mehr das Rückgrat unserer modernen Gesellschaft.

Daher wird auch in der öffentlichen Verwaltung viel Steuergeld für Software ausgegeben. Steuergeld sollte aber für Leistungen ausgegeben werden, die dauerhaft der Allgemeinheit zur Verfügung steht und nützt.

Genau das hat in der Vergangenheit in Zusammenhang mit Software immer wieder nicht funktioniert, da nicht sichergestellt werden konnte, dass die Software verwendbar bleibt, wenn die Firma dahinter erlischt oder sich vom Projekt zurückzieht. Das entspricht einer Verschwendung von Steuergeld.

Open Source Software kann diese Situation deutlich verbessern.

Dass der Code dabei jederzeit verfügbar bleibt, ist nur ein, wenn auch sehr positiver Aspekt. Ein weiterer ist, dass der Entwicklungsprozess von open Source Software üblicherweise so präzise, standardisiert und modern ist, dass es einfacher möglich ist, sie weiterzuführen, indem damit ein anderer Dienstleister beauftragt wird. Ausserdem ergibt sich durch offene Lizensierung, dass niemand den anderen übervorteilen kann, so dass gemeinsame Entwicklung risikoloser ist. All das kommt der Allgemeinheit zugute.

Konsequent gedacht führt das zu der Forderung, dass öffentliche Gelder nur für open Source Software ausgegeben werden sollte, denn sie steht der Öffentlichkeit sicher dauerhaft zur Verfügung.

Genau dafür setzt sich die Kampagne Public Money for Public Code der Free Software Foundation Europe (FSFE) ein.

Auf ihrer Webseite werden Argumente zusammengefasst und umfassende Informationen gegeben. Es gibt die Möglichkeit, Abgeordneten einen offenen Brief zu senden, um politischen Druck aufzubauen.


face

On my machines I run openSUSE Leap (download), a stable distribution that follows the SUSE Linux Enterprise service packs. But frequently my task is to reproduce or fix a bug in openSUSE Tumbleweed (download), the hottest rolling distribution.

In the past, I would take an ISO image of the installation DVD and install a virtual machine from scratch. (To say nothing about burning a CD, copying a boot floppy, and reinstalling a physical machine. I've been doing this for too long.)

Fortunately, things got easier with ready-made disk images for containers (Docker/Podman) and virtual machines (Vagrant).

With Docker

Get the latest Tumbleweed image from the Docker hub:

$ docker pull opensuse/tumbleweed

Run it:

$ docker run -it opensuse/tumbleweed bash
8484d09e2380:/ # grep VERSION_ID /etc/os-release
VERSION_ID="20200118"
8484d09e2380:/ # ...
...
8484d09e2380:/ # exit

Clean up, removing the container or even the Tumbleweed image:

$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8484d09e2380 opensuse/tumbleweed "bash" 58 minutes ago Exited (127) 9 seconds ago hungry_northcutt
$ docker rm 8484d09e2380
8484d09e2380
$ docker rmi opensuse/tumbleweed:latest

With Vagrant

Vagrant virtual machines work with a context directory and a config file, so let's create them:

$ mkdir vagrant-tw-test; cd $_
$ vagrant init opensuse/Tumbleweed.x86_64
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` [...]

The up step downloads the base image ("box") that we declared previously, and brings up our VM instance. The ssh step connects there.

$ vagrant up
[...]
$ vagrant ssh
> grep VERSION_ID /etc/os-release
VERSION_ID="20200114"
> ...
...
> exit

Clean up:

$ vagrant halt     # stop the VM
$ vagrant destroy # remove its disk image
$ vagrant prune # remove the box (base image)

See details in Meike Chabowski's article Vagrant Boxes with openSUSE Tumbleweed.


face

A total of five openSUSE Tumbleweed snapshots have been releases since last week for the rolling release users.

The Libvirt 6.0 package came earlier in the week.

LibreOffice, Firefox, PHP and FFmpeg were amongst the most notable packages to update this week.

The 1.4 version of kdeconnect-kde was updated in the most recent 20200127 snapshot. The version offers a new “KDE Connect” desktop app to control the phone from the PC and SMS app that can read and write SMS texts. The newer version also offers compatibility with Xfce‘s file manager Thunar. The third release candidate for LibreOffice requires java 1.8 or newer with the libreoffice 6.4.0.3 package. Some core and curl bugs were fixed with php7 7.4.2, which included an Exif fix, and a handful of rubygem packages had minor version bumps. The snapshot is currently trending at a stable rating of 99, according to the Tumbleweed snapshot reviewer.

Snapshot, 20200125 had a half dozen packages updated. GNU’s Utilities tool package for multi-lingual messaging, gettext-runtime 0.20.1, removed dynamic linker ldconfig and script builder autoreconf. GNU Multiple Precision Arithmetic Library has a new C++ function in the gmp 6.2.0 update and the new version provides better assembly code and greater speed for AMD Ryzen, Power9 and ARM 64-bit CPUs. An updated to the authentication-related tool shadow 4.8 synced password field descriptions in man pages and migrated to ITS Tool for translations. The snapshot is currently trending at a stable rating of 99.

The largest snapshot of the week came in 20200124. Mozilla Firefox 72.0.2 had a fix for a web compatibility issue with CSS Shadow Parts that was introduced in version 72 and made various stability fixes. FFmpeg 4.2.2 alo made some stability fixes mostly for the codecs and formats. Portugueses Brazilian translations were made for libstorage-ng, which bumped the version to 4.2.57. Multi-purpose desktop calculator qalculate 3.7.0 provided a few new functions added support for complex numbers in the exponential integral, Logarithmic integral function, Trigonometric integral and a few more integral functions. WebKit rendering engine webkit2gtk3 2.26.3 had a fix for playing a video on NextCloud and had a fix for a web process crash when displaying a KaTeX formula; the new version also addressed three Common Vulnerabilities and Exposers. YaST had many packages updated including the yast2 4.2.59 version, which added an option to enable the online search in the package. The snapshot is currently trending at a stable rating of 98.

ImageMagick 7.0.9.17 was updated in snapshot 20200123. The image editing vector suite allows for a larger negative interline spacing and support Jzazbz colorspace. Logging package audit 2.8.5 updated lookup tables and fixed the segfault on the shutdown. Ethtool 5.4 fixed a compiler warning with the new GNU Compiler Collection. The major release of libvirt 6.0.0 removed support for python2


Tuesday
28 January, 2020


Jason Evans: Advice for Newbies

10:29 UTCmember

face

I originally wrote this as a reply to a Reddit post but as I saved it, comments were blocked.

2867374530_5feabdfbce_bGive yourself little tasks and projects to do. Think of it as being like model kit building. You start with the easy kits like a plane with just a few pieces and as you get better you pick up new things like painting, sanding, and eventually making bigger better kits.
So, start with small things. For example, write a small program with a for-loop and get to know what all if the commands are really doing. This is your basic kit. Add in some variables. Add in user input, and keep going trying new things. Eventually, challenge yourself by learning how to work with a GUI. Sometimes your program will break. This isn’t a bad thing. It teaches you how to debug. What’s important is to take your time and experiment.
The same goes for aspiring system engineers. Learn how to create a virtual machine and install Linux in it. Then learn how to create a web server and then how to get PHP and MySQL working, etc.
A computer course can teach you how to write good code or what all of the system services do that you need but what’s most important is that you don’t give up and never lose your curiosity.

face

FerenOS undoubtedly focuses on visual aesthetics, user interface and user experience. The last time I looked at FerenOS, it was built on the Cinnamon Desktop Environment. At the time, the Plasma version was called “Feren Next” and and initially I was disappointed I didn’t use the Plasma version, but now I am very glad I did as I can compare this experience with my last FerenOS experience.

This is my review as an openSUSE User. To say this will be completely objective would essentially be a big giant lie. This will be quite biased as I enjoy openSUSE Tumbleweed with the Plasma desktop, day in and day out on multiple machines, including my daily driver, low end laptops and more powerful workstations and servers. I am happily entrenched but that doesn’t mean I don’t like to look over the fences from time to time to see what other parts of the community are doing. Plus, you can’t go anywhere without bumping in to “FerenOS Dev” on some YouTube chat, Telegram or Discord announcing his enhancements.

Bottom Line Up Front: FerenOS (2020) is simply fantastic. The way you are greeted and guided through your setup is brilliant. I am not keen on every design decision but that matters not as I am never keen on every design decision presented in any other distribution, to include my own. FerenOS is going for a look that is uniquely its own and is not afraid to experiment, cross toolkit boundaries and stray from the normal. I appreciate the design decisions, more than any other “boutique” distribution I have seen in a long while. Do I like all of them? No. Would I choose many of these? Also, No. But I think they do look great make for an enjoyable experience, just not one I would prefer.

Installation

The installation of FerenOS is very straight forward. It uses the Calamares Installer which is known for being straight forward. When you first kick on the installer, you are presented with your language selection.

I have noticed this is common with the Ubuntu flavors but not all of them. When FerenOS boots, it looks classy as they use the “flicker free” booting in just the right way.

When the system settles you are greeted with a fantastic welcome window that immediately detects you are using a VM. Although, neither of the two options fit my situation, it is still a welcome notification.

Another very cool feature is to set your theme and accent color to your desktop. Unless my memory fails me, I think this is the first I have been presented this on start up.

I of course went for a dark with a green accent color because that is my happy place. Interestingly, you are told to log out and in again for the changes to take affect on certain applications. I wonder which applications.

I appreciate how FerenOS tells the heart of its story, it’s reason for being, right


Monday
27 January, 2020


face

It has been a while since the last AppStream-related post (or any post for that matter) on this blog, but of course development didn’t stand still all this time. Quite the opposite – it was just me writing less about it, which actually is a problem as some of the new features are much less visible. People don’t seem to re-read the specification constantly for some reason 😉. As a consequence, we have pretty good adoption of features I blogged about (like fonts support), but much of the new stuff is still not widely used. Also, I had to make a promise to several people to blog about the new changes more often, and I am definitely planning to do so. So, expect posts about AppStream stuff a bit more often now.

What actually was AppStream again? The AppStream Freedesktop Specification describes two XML metadata formats to describe software components: One for software developers to describe their software, and one for distributors and software repositories to describe (possibly curated) collections of software. The format written by upstream projects is called Metainfo and encompasses any data installed in /usr/share/metainfo/, while the distribution format is just called Collection Metadata. A reference implementation of the format and related features written in C/GLib exists as well as Qt bindings for it, so the data can be easily accessed by projects which need it.

The software metadata contains a unique ID for the respective software so it can be identified across software repositories. For example the VLC Mediaplayer is known with the ID org.videolan.vlc in every software repository, no matter whether it’s the package archives of Debian, Fedora, Ubuntu or a Flatpak repository. The metadata also contains translatable names, summaries, descriptions, release information etc. as well as a type for the software. In general, any information about a software component that is in some form relevant to displaying it in software centers is or can be present in AppStream. The newest revisions of the specification also provide a lot of technical data for systems to make the right choices on behalf of the user, e.g. Fwupd uses AppStream data to describe compatible devices for a certain firmware, or the mediatype information in AppStream metadata can be used to install applications for an unknown filetype easier. Information AppStream does not contain is data the software bundling systems are responsible for. So mechanistic data how to build a software component or how exactly to install it is out of scope.

So, now let’s finally get to the new AppStream features since last time I talked about it – which was almost two years ago, so quite a lot of stuff has accumulated!

Specification Changes/Additions

Web Application component type

(Since v0.11.7) A new component type web-application has been introduced to describe web applications. A web application can for example be GMail, YouTube, Twitter, etc. launched by the browser in a special mode with less chrome. Fundamentally though it


face

Today we present Tilix, a tiling terminal emulator, and share some tips that make this terminal an excellent tool for all users especially system administrators. As a reminder, Tilix (formerly Terminix) is a terminal emulator using libvte and written in D language with a GTK3+ interface. As such, it is therefore specially designed to integrate with GNOME.

Like Terminator, it can be split, which allows you to have many terminals in a single window:

Tilix

It can also be a replacement for Guake, as it also functions as a dropdown terminal (this feature is not available inside of a Wayland session).

Tilix

Sessions

You can have several sessions inside one Tilix window. A session is simply a group of split terminals. The sessions can be displayed as a toggleable side-bar:

Tilix

Or, in more classic way, as tabs. You can set this inside the Preferences (changing this setting requires a restart).

Tilix

Splitting the window

You can easily split the current terminal by using the buttons in the top bar. The current terminal can be split vertically or horizontally. New terminals are always created below or on the right of the active terminal.

Synchronize input

Tilix allow us to set some terminals of a session in sync. This means that all you type in a terminal is sent as well to all the other synced terminals. This is particularly useful when you are connected to several remote hosts and want to send them the same commands.

Tilix

Search for text

Via the magnifying glass icon, you can search for text inside all the text outputed in the currently active terminal.

Tilix

Protect terminals from mistakes

When working a lot with terminal emulators, with a lot of them open, it is easy to start typing in the wrong one. Tilix allows you to set a terminal in read only so that nothing you type in will have effect (no sequences will be sent).

Tilix

Advanced clipboard management

Tilix offers us interesting copy and paste options. They are to be activated in the preferences:

Tilix

Advanced paste dialog

You can configure a shortcut to display it or choose to always display it. This dialog allows for example to configure the number of spaces in the tabulations when pasting:

Tilix

Tilix has a functionality that warns you when pasting a potentially dangerous command (to be executed with sudo for example). This is useful when you follow a tutorial from the Web without thinking but only works when the command is followed by a line break, which will lead to its immediate execution:

Warning in case of dangerous paste:

Tilix

This concludes our presentation of Tilix. In next week’s article, we will go deeper and explore its advanced features. Spoiler: there is a lot of them ! Stay tuned.


Sunday
26 January, 2020


face

As a follow-up to Gerald’s questions now Ariez J Vachha took up on the candidates with another question:

I would like to know the candidates views on making it easier for those that want to participate, especially non coders, to do so, and how they propose to do it.

Thanks for raising this question as it touches one (if not the) crucial topics for openSUSE as a community in the near future.

I’d like to illustrate my view on it with a simple example:
When you visit opensuse.org there’s a menu item top right named “contribute”. Clicking it brings you to the contribution bit of the page. There you have choice between two things: Code and Hardware. Now if we’re lucky a potential contributor will click on “Code” and gets presented four slightly unmotivated lines of text and a button to “find out more”. That’s not how to be friendly and inviting. Let’s hope not too much people are turned down by that.

But what I see as a way bigger problem – and some kind of basic pattern in oS – is that behind the “find out…” button in fact there would be really good and detailed information on how to contribute. Documentation, testing, translations and so on is all there. But it’s not communicated in any reasonable way! It’s hidden in different places, buried deeply in the wiki. The wiki is a good place for extensively written explanations but not for getting a first step into the pool.

So my idea is part of a whole to-be-defined restructuring of opensuse.org. I proposed a few thoughts a while ago but got curbed due to the renaming/rebranding discussion back then. Yet I still have these things on my list to discuss and tackle. [1]

Of course the website is just one puzzle part. The whole getting fresh blood (as you called it) thing needs further pushing. Hence the initiative of the marketing team to get special t-shirts for Leap 15.2. Beta testers. [2]
This is something easily to be communicated to the outside and can be a door opener for new people. Though it is not a board member’s job there. But I think it’s good to have a board taking part in this whole communication
initiative.

Do you have further questions? Drop me a line!

[1] https://lists.opensuse.org/opensuse-project/2019-06/msg00195.html
[2] https://en.opensuse.org/openSUSE:Marketing_meeting:2020-01-08#1.3_Leap_15.2_Beta:_Promote_beta_testing

Older blog entries ->