Home KXStudio > News

KXStudio : News

> Changes in KXStudio repositories
On 2022-04-24 by falkTX

For the impatient ones, the too-long-didn't-read short summary is:

  • Minimum required version to use the KXStudio repositories is now 20.04 / Focal or Debian 11 / Bullseye
  • i386 / 32bit systems are no longer supported
  • "Extras" repository has been marked as deprecated and should no longer be used

Updating base version to 20.04 / focal

As Ubuntu 22.04 was just announced, I began to do work on the KXStudio repositories once again.
They were using Ubuntu 18.04 as base for all builds, which is getting old now and only has 1 more year of support.
That last part is important - when 18.04 goes end-of-line, no new Launchpad PPA builds are possible.
And since the KXStudio project relies on those for its packages, I need to update the base version from time to time in order to be able to keep building things.

If you need to ask why using PPAs and not something else, there just isn't another service that can do all that is required (that I know of).
OpenSUSE's Open Build System is similar, but it cannot handle the inter-dependency of the different sub-repositories.
For example, a "toolchain" repo is used on all builds but not exported to the user, so it is safe to update things like cmake and meson only for the repository builds without breaking the user's system/packages.

The extreme alternative would be to move to ArchLinux and their new Unofficial Pro-Audio Package Repository, and while tempting, I think a lot of users would be disappointed and sad with that call.
And hosting the entire build setup myself is not going to happen, I do not have the capacity or funds for such a thing.

But back to the topic at hand, moving up on the base version for KXStudio package builds means the user-facing minimum version also goes up.

So as of today the minimum required version to use the KXStudio repositories is 20.04 / Focal or Debian 11 / Bullseye.
Newly installed systems can no longer use the old variant of the KXStudio repositories.
The old 18.04-base packages are not going to be updated anymore.

Issues with i386 builds

On 20.04 onwards, Ubuntu has disabled i386 PPA builds for all packages except those that are part of 20.04 release.
The move to 20.04 as repository base is already taking place and I did quite a few tests to try and workaround the build limitation, but from what I can tell it is just not possible.
This means the KXStudio repositories will no longer provide i386 packages.

Everything else will keep working, including armhf and arm64 packages.
Hopefully there are ways to still build a few 32bit things like wineasio and carla wine bridges, but those will be 64bit packages just with 32bit libraries.
I did not actually test for this yet, more news on it soon.

Deprecated repositories

The lack of i386 package builds makes it impossible to build system libraries as was the case for the "Extras" repository.
Without such packages it becomes pointless, so the "Extras" repository has been marked as deprecated and should no longer be used.

Somewhat related, the KXStudio "Music" sub-repository served no real use in the end.
And since now seems to be the time for cleanup and breakage, this one was marked as deprecated too.

Such deprecations make apt very unhappy, and it will begin complaining something like this:

E: Repository 'http://ppa.launchpad.net/kxstudio-debian/music/ubuntu bionic InRelease' changed its 'Label' value from 'Music' to 'Deprecated'
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.

Just cleanup the apt list cache and the errors go away, like this:

 sudo rm -f /var/lib/apt/lists/*

If you were using the "Extras" repository and now have issues because JACK can not be installed or updated, you will need to revert it to the version from your official distribution repositories.
Run this to fix it, replacing "focal" by the linux distribution version label that applies to your case:

 sudo apt-get update
 sudo apt-get install libjack-jackd2-0/focal libjack-jackd2-0:i386/focal jackd2/focal

Final notes

I realize this will make a few people sad, if the i386 builds were something you were relying on.
It pains me too, as this kinda encourages throwing away old usable hardware that cannot do 64bit.
Moving away from Debian base is not something I want to do at this point, but keeping 18.04 as base is not sustainable, as builds for it will soon stop working.
And doing full custom repositories is a massive endeavour, something I don't have the time and resources (or patience) for.
In the end, I am grateful to still be able to push new builds.

Speaking of new builds, those will still take a bit to appear, as I have decided to do things a bit better this time.
Using Ubuntu 20.04 as base allows to update the "debian format" to 13 which simplifies the builds, all packages are being converted one by one.
Also, I am uploading all debian source details on a public git repo, as a backup/precaution measure and also to more easily allow others to see how packages in the KXStudio repositories are done.
I do not really expect contributions that way, but more transparency is always nice.

Based on previous work done for continous-testing in Carla and DPF, I want to setup similar runtime tests for all plugins before they get pushed into the repositories.
Compared to just a few years ago, testing plugins is now much easier, with Carla having a dedicated command-line test mode, LV2 validation tools becoming better and even lv2lint that performs runtime tests.

I still want to finalize a few things in Cardinal before going full-force on the repositories, but that side is almost done now, so very soon my attention can go back to packaging.
Good times ahead!