Skip to main content

the avatar of FreeAptitude

Handling multiple versions of the same application with update-alternatives

In a previous article I shown how to rollback a package installation, just in case we get a buggy application after an update and want to go back to the previous version. This time I want to show how two or more versions of the same application can be installed without conflicts, and with the help of the small CLI application update-alternatives, how easy it is to switch from a version to another.
a silhouette of a person's head and shoulders, used as a default avatar

Curtail

While the app got some spotlight on GNOME Circle, I found it super handy to my own use that I decided to write about it here as well.

ImageMagick

Even though I keep forgetting syntax for everything, one of the few bash constructs I remember is the for in loop. Mainly because that's how I repeadly convert and modify images on the command line with ImageMagick's convert or mogrify (same but dangerously operating on the same file):

for image in *jpeg; 
	do 
	out=`basename $image .jpeg`-thumb.jpeg
	convert -geometry 400 $image $out
done

Well usually on one line as:

for image in *jpeg; do out=`basename $image .jpeg`-thumb.jpeg; convert -geometry 400 $image $out; done

Curtail

Curtail's main weapon is convention. Convention trumps configurability in my book (even if there are some preferences). Rather than making you configure a behavior, before you can do anything, it provides one. You either dig it and can immediately be productive, or you don't and flame it on reddit and the orange site. Sorry I meant move on.

Curtail UI

So what's the convention? The main workflow is you drop images onto it with drag and drop and it automatically compresses the images. The only decision you have to make upfront is whether you allow it to compress it more by going lossy or not. That's it. No selecting of output directory, scaling, formats. Nothing. Just drop images and get them processed. They will end up in the same directory as the source, with a -min suffix. Everything happens immediately and you will see a summary of the conversion in the window. It is very rare to run into such an app in the FOSS world. Thank you, Hugo.

a silhouette of a person's head and shoulders, used as a default avatar

iPhone 12 mini

Ještěd

Singing praise to the most locked down device you can get is pretty dangerous for someone operating in the FOSS world. But I have to do it, as the risk of somebody angrily throwing his Purism Librem 5 at me is pretty low.

Severočeské muzeum

Like most people I don't use my phone to do calls. Apart from failing to avoid all the addictions it throws at me, I love it for what it really is. An amazing video and photo camera.

Frost on Ještěd

I've owned (and still do) a decent number of cameras. Some of them I have really fond memories of, such as the Panasonic GF1. Mostly for its 20mm pancake lens I didn't sell along with the body when the time came, but kept it until a worthy body came along. That was the beast of a video camera I use until today, the GH5. Most of my drone video b-roll is shot with it and its amazing slow motion. On my drone trips I've always been making a decision whether to take the best camera I have (gh5) or a compact one (Sony rx100m4). The latter wasn't even close to the big guy, but it was easy to fit into the bag and for the few establishing shots was good enough. Surprisingly the iphone 6 plus I had back then had better stabilisation than the RX100. But preferred the Sony for the colors and not having such oversharpened phone look.

Růžová Černá Nisa Frosty tree Maliník

One thing that really peaked my interest when Apple unrolled the iPhone 11 was the wide angle. Very unsharp on the corners and quite poor wrt capturing light, I was really hooked on the superwides being bombarded by gopro footage (and doing a lot of that bombardment myself). Even though the primary lens on the 12 is way better, the ultrawide shots have something that really appeals to me.

Bedřichov

Battery

Phones have gotten ridiculously big over the years. The iPhone 12 mini doesn't feel particularly small. It's after you hold any other current phone the size becomes apparent. I still wish it was a little smaller. I really miss the original Palm Pre form factor (and the most stylish OS ever).

People have reported poor battery performance even when the device is relatively new. We'll see how that's going to bite me when we will able to finally travel again, but so far the battery limitation hasn't been a constraint for me.

Lightning Port

Even though Apple is probably the corporation most trustworthy of keeping my photos, I'm still reluctant to have everything synchronized to someone elses computers. Thus the lighting cable and syncing over to a computer is a must. I really wish Apple bit the bullet and discontinued the dinosaur lightning connector in favor of a faster option. But sadly it looks like the successor won't be USB3, but no connector at all.

Accessing App silos with Nautilus

I assume the days of connecting the iphone to my Linux workstation and having access to app storage as well as translated media (HEVC images are provided as JPEGs by the virtual camera), but it would be nice to have some sort of local workflow even if locked to the Apple walled garden.

the avatar of Greg Kroah-Hartman

Helping Out With Lts Kernel Releases

A recent email thread about “Why isn’t the 5.10 stable kernel listed as supported for 6 years yet!” on the linux-kernel mailing list ended up generating a bunch of direct emails to me asking what could different companies and individuals due to help out. What exactly was I looking for here?

Instead of having to respond to private emails with the same information over and over, I figured it was better to just put it here so that everyone can see what exactly I am expecting with regards to support in order to be able to maintain a kernel for longer than 2 years:

the avatar of openSUSE News

Outreach, Survey Extension Addressed in Second Meetup

The second session of the openSUSE Project’s meetup regarding the End of the Year Survey Results on Jan. 30 led to some changes with regard to future surveys and contributors are looking to enhance outreach.

View Meeting Minutes

The two-hour meetup took place on openSUSE’s Jitsi instance and several community members around the globe provided input on the results and how to improve the project’s diversity as well as global use.

The group spent time discussing the projects’ weaknesses and strengths based on the survey results and commonly understood areas members hope to improve.

The previous meetup session laid some groundwork with the introduction of monthly web development sprints to address feedback provided by attendees in both sessions. One of the areas mentioned were highlighting communication entry points so new users can be welcomed to the community and introduced to the project’s distributions and tools.

Attendees also discussed how to address users switching to openSUSE from Windows or other Linux distributions like Ubuntu, Debian, CentOS, Arch, etc. The meetup also included a discussion about marketing strategies and ways to increase visibility for the projects’ projects and distributions. A marketing workgroup for the release of openSUSE Leap 15.3 was an idea brought up in the discussion and is moving forward with establishing a team.

Another topic resulted in a decision to extend future EOY surveys to be run for 30 days, which will run from mid-November to mid-December, rather than being open for two weeks like last year’s survey.

The attendees continued the discussion in the openSUSE Bar, which currently doesn’t have it’s opening hours posted.

a silhouette of a person's head and shoulders, used as a default avatar

Ele[k]tronic

Elektron Digitakt

More than 20 years ago (gee), before I dipped my toes into Free software, I was into making electronic music using the tools that were available. In my case it was a PC with what was called a mod tracker (Fast tracker 2 in particular). Later I found myself in love with a more sophisticated variant of a mod tracker, called Jeskola Buzz -- it still exists!

I had no theory behind me and never played any intrument, but I was driven by the amazing sounds the software produced and the gradual iteritative workflow it embraced. It allowed me to make things I actually enjoyed listening to, even years later. And that's perhaps the biggest value you get out of anything. If you are fortunate enough to be able to enjoy what you do, you've hit the jackpot.

And this brings us to 20 years later, where I finally picked up where I left off. I dipped my toes in a hardware tracker, which didn't quite spark the joy, but it led me to the world of a swedish music gear make, Elektron. These guys are the schoolbook example of beautiful things works better. There are common workflow patterns used throughout their gear, so through familiarity they win you over (non designer people like to call it the i-word, intuitive). The display is used really well. The knobs, pardon encoders, are multi-function, but they do a great job indicating the same filters/effects the same across the various UI pages. Everything about the physical objects they make is amazing, but then you get to the lush reverb sounds their Digitone produces and you're blown away.

I am still the amateur I was 20 years ago, but the joy of of nudging something that creates itself is still there. And I love it.

the avatar of openSUSE Mauritius

Install the latest version of VirtualBox on openSUSE

The main openSUSE repository does not feature the latest version of VirtualBox. To obtain the latest version of the software, one may use VirtualBox's own repo for openSUSE. Details are available on the virtualbox.org project website. However, I am reproducing them here for a quick reference & also to address some quirks that you might encounter if you simply add the repo & install VirtualBox.

Step 1

We add the VirtualBox repository by creating the /etc/zypp/repos.d/virtualbox.repo file with the below content.

[virtualbox]
name=VirtualBox for openSUSE 15.0 - $basearch
enabled=1
autorefresh=1
baseurl=http://download.virtualbox.org/virtualbox/rpm/opensuse/15.0/$basearch
priority=120
gpgcheck=1
gpgkey=https://www.virtualbox.org/download/oracle_vbox.asc
keeppackages=0

VirtualBox does not have a separate repository for Leap 15.1, 15.2, etc. The repo for Leap 15.0 should work just fine.

Step 2

Refresh the repositories and search for the latest version of VirtualBox.

sudo zypper ref && zypper se virtualbox

The output of the command is shown below.

S | Name                           | Summary                                          | Type
--+--------------------------------+--------------------------------------------------+-----------
  | VirtualBox-5.2                 | Oracle VM VirtualBox                             | package
  | VirtualBox-6.0                 | Oracle VM VirtualBox                             | package
  | VirtualBox-6.1                 | Oracle VM VirtualBox                             | package
  | python3-virtualbox             | Python bindings for virtualbox                   | package
  | virtualbox                     | VirtualBox is an Emulator                        | package
  | virtualbox                     | VirtualBox is an Emulator                        | srcpackage
  | virtualbox-devel               | Devel files for virtualbox                       | package
  | virtualbox-guest-desktop-icons | Icons for guest desktop files                    | package
  | virtualbox-guest-source        | Source files for virtualbox guest kernel modules | package
  | virtualbox-guest-tools         | VirtualBox guest tools                           | package
  | virtualbox-guest-x11           | VirtualBox X11 drivers for mouse and video       | package
  | virtualbox-host-source         | Source files for virtualbox host kernel modules  | package
  | virtualbox-kmp                 | Kernel modules for VirtualBox                    | srcpackage
  | virtualbox-kmp-default         | Kernel modules for VirtualBox                    | package
  | virtualbox-kmp-preempt         | Kernel modules for VirtualBox                    | package
  | virtualbox-qt                  | Qt GUI part for virtualbox                       | package
  | virtualbox-vnc                 | VNC desktop sharing                              | package
  | virtualbox-websrv              | WebService GUI part for virtualbox               | package

Step 3

We pick the latest version, in this case VirtualBox 6.1, and install it as follows:

sudo zypper in gcc kernel-default-devel VirtualBox-6.1

Notice that we installed the GCC compiler and the Kernel development files which will be required by VirtualBox to compile and install driver modules into the system kernel. Unless these driver modules are installed we won't be able to create virtual machines or we might create the virtual machines but not be able to start them.

VirtualBox 6.1 running on openSUSE Leap 15.2
VirtualBox 6.1 running on openSUSE Leap 15.2

Once all commands have completed successfully, we can run VirtualBox 6.1.

If you would like to expertiment on openSUSE using VirtualBox, you should know that you can grab the openSUSE Leap 15.2, Tumbleweed and MicroOS images for VirtualBox.

the avatar of Timo's openSUSE Posts

Getting a package from openSUSE to SLE

I was looking forward to updating a package (enchant) with a backported patch from upstream and wanted it to be included in both SLE offerings and openSUSE. I’m used to working within the community from the past, so even though I’m a SUSE employee I wanted to contribute without using anything internal.

I filed a bug and did a request to first get the patch into Tumbleweed via GNOME:Factory. That was easy, but then I looked on how to get the same patch into the stable releases. Since openSUSE and SUSE are now coming closer, I found documentationa about the Jump and mailing lists described some documents for example that there either is or is going to be a new redirector service, and suggestion was to target openSUSE:Jump:15.2 at one point.

Eventually I found out that since 15.3 is when SLE & openSUSE really closes the leap gap, Jump is already history and currently the best target is to use openSUSE:Leap:15.3. I was actually told by someone that it wouldn’t work, but… it did!

In practice my Leap request (I really submitted it to openSUSE:Leap:15.3!) was automatically detected to be about a package that openSUSE inherits from SLE, so the target was switched to SLE 15-SP2 on the fly. Secondly, after some time a person managing these kind of requests copied over my public request to be usable inside SLE process, and then an official SLE 15-SP2 update request was created automatically. It passed QA in the beginning of January, and was made available to 15-SP2 users! Luckily 15-SP3 has no deviation for this package from 15-SP2, so it’s automatically also there, and that means openSUSE Leap 15.3 is going to have the patched package automatically as well.

Finally, also without my manual intervention there was a request to get it to Leap 15.2 as well, finalizing fixing all relevant releases (15.1 is not affected by the bug).

All in all, even though it feels the documentation is a bit lacking and there could be more feedback or clearer visibility on a higher level, the functionality of the process was really good. Now that I know a bit more, I can try to improve the wiki a bit.

a silhouette of a person's head and shoulders, used as a default avatar

Spack is now available in openSUSE Tumbleweed

The configurable Python-based HPC package manager Spack is now an Official package in openSUSE Tumbleweed, which currently has the 0.16.0 version of Spack.

If you work with scientific software, you probably know about spack.

Spack is a package manager for HPC that allows to install scientific software using provided recipes. You can easily use multiple compilers and compiler versions. And different versions of the same software can coexist peacefully.

Spack is used with environment-modules or lmod to make easier for users to choose the software stack for their projects.

However, how does this work with zypper? Spack is totally independent of zypper. When you install something with the spack provided by the openSUSE package, everything is built and installed locally for the user under the directory ~/spack.

You have the option of building all the libraries required by the spack recipe or to use some of the libraries already installed on your openSUSE system.

While spack can be used directly after a git clone, it was package to give users the possibility of having it better integrated with openSUSE. After installation, spack will look for all the libraries used in your system and will create a file /etc/spack/packages.yaml

This step takes a bit of time, and you have the option of avoiding it if you create a file /etc/spack/no_rpm_trigger in your system before installing spack.

How to use spack

Installing spack is very easy, just type:

# zypper install spack

spack will pull a few packages widely used, however is a good idea to install a few more packages used by the spack recipes:

# zypper install patch pcre2-devel gcc-c++

If everything went fine, just typing spack, you’ll get a list of subcommands. You can get a list of the available spack recipes with:

$ spack list

And building and installing a package is straightforward:

$ spack install fdupes

Output will be something like this:

ana@localhost:~> spack install fdupes
==> Warning: Missing a source id for ncurses@6.1.20180317
[+] /usr (external ncurses-6.1.20180317-c4tkkuqm2rejq5ecbotrezyowmtinhtm)
==> Installing fdupes-2.1.2-erz3orzx7gedujr4nckkgtwgzqruf7cs
==> No binary for fdupes-2.1.2-erz3orzx7gedujr4nckkgtwgzqruf7cs found: installing from source
==> Using cached archive: /var/tmp/ana/spack-cache/_source-cache/archive/cd/cd5cb53b6d898cf20f19b57b81114a5b263cc1149cd0da3104578b083b2837bd.tar.gz
==> fdupes: Executing phase: 'autoreconf'
==> fdupes: Executing phase: 'configure'
==> fdupes: Executing phase: 'build'
==> fdupes: Executing phase: 'install'
[+] /home/ana/spack/packages/linux-opensuse_leap15-skylake/gcc-7.5.0/fdupes-2.1.2-erz3orzx7gedujr4nckkgtwgzqruf7cs

Spack will create and install all the files under ~/spack. There will be two directories:

  • modules containing the module files to be used with environment-modules or lmod
  • packages containing

Using the module files with lmod requires updating MODULEPATH like this:

$ export MODULEPATH=$MODULEPATH:~/spack/modules/linux-opensuse_leap15-skylake
$ module available

The second command will show the modules available and it should list all the modules produced by spack in addition to the ones already available in the system. Check the exact path after ~spack to be used in your system.

These modules can be only used by the user who created them. There is the possibility of having all the users from the system able to access and use the module files. For this, the user who builds the packages, must be able to write a global spack directory under /usr/lib/spack/. This can only be done if the user belongs to the group spack. You can add the user to this group with the following command:

# usermod -a -G spack <user_login>

then change the setting for install_tree: to the global spack directory in the configuration ~/.spack/config.yaml for this user.

Finally, an important note. Tumbleweed is a rolling release, do not be surprised if a recipe that works perfectly today doesn’t work in two weeks!

This is a first integration of spack in openSUSE. We aim to improve with your feedback and expand its usage in openSUSE in this wiki page.

a silhouette of a person's head and shoulders, used as a default avatar

New Blog. In 2021!

Bedřichov

In an effort to tone down my Facebook posts, I've looked into ways how to leverage the amazing Apostrophe app for writing simple markdown posts.

Due to github integration and general availability I've settled with, sigh, Jekyll, abandoning the even more obscure Middleman. Thanks to toolbox and rvm, the version dependency hell might be manageable, but I'm mainly hoping to just rely on github to do all the heavylifting, while I rely on Apostrophone. We'll see how it goes.

The one downside of my hacky middleman setup is that I will need to manually port those blog posts over as it's a mess. A lot of it is related to image and video links and some rb -> md. Many of the really old posts references images on long gone resources (primates.ximian.com?) and most just have broken links. I've started recovering some of the old gems), but I'm definitely only going to resurrect a few.

The main drive behind this futile attempt to post on a blog is to curate my own photos and articles myself. It is very backwards, but the ad algorithms that control all the social networks really make me mad that people, who actively try to follow someone's work or thoughts, are spoon fed with other things, but what they explicitly selected as of importance to them is sometimes totally hidden. So there, fellow RSS readers, I'm back.