On 2/3/23 14:36, Simon Lees wrote:
This hackweek a group of us have been looking at using the ALP binaries provided by SUSE to create a functional successor to openSUSE Leap.
For reference this is all now documented on the wiki at https://en.opensuse.org/openSUSE:ALP/Workgroups/GrassyKnoll
**Goals:** * Creating and maintaining it should be manageable by a small number of community volunteer maintainers, but at the same time should be scalable to grow with additional contributors. * It should be possible for community members to easily contribute additions in their preferred form whether rpm, container or something else. * Use ALP Sources wherever possible (In some cases this may require building them in a different format). * Make it possible to support smaller desktops including supporting X11, Wayland and xwayland. * Support upgrading systems from Leap 15.5 in most cases. This will likely mean alongside supporting transactional updates so that SUSE:ALP -> openSUSE:ALP is possible, it also needs to be possible to still support traditional RW filesystems with zypper up and dup. * Support running ALP containerised workloads but aim to avoid using containers in core operating system components. * Provide a lightweight environment for embedded usecases including Raspberry Pi's.
To test that these goals are realistic, our main goal for this hackweek was to get Xfce running on a combination of ALP and backports packages. It seemed like a good choice as the package set is small enough to be handled by a couple of people and it's popular in the openSUSE community. We have made good progress and have achieved a lot, but more on that later.
**Design:** The basic concept is to follow what we have done with Leap and create a "Backports" repository containing community packages from Tumbleweed to fill the gaps, one of the differences here is SUSE's repos for SLE contain around 10,000 packages while ALP contains around 2,000, despite this, we only had to add around another 350 packages to reach our initial goals. This includes yast and many gnome build dependencies that hopefully we will be able to take from ALP Sources once they are there. But even at this number it is probably manageable for a small team especially while the packages are present in Tumbleweed.
Once we had the packages we needed, we could use our existing tooling such as kiwi to create images for testing including livecds. The biggest benefit to SUSE's Factory first policy is with the right packages everything that works in Tumbleweed also works here. Hopefully once we know how SUSE plans to build their container images, we will also be able to use the same approach partnered with the backports repo to build openSUSE community images if people are interested in maintaining them. We didn't investigate that this hackweek though.
Lubos also spent a significant portion of his hackweek working with d-installer to see if it is currently suitable for working with the additional features that we require.
**Design Limitations:** While it is possible to work around many of ALP's restrictions via simply building images differently, some other design decisions are hard to avoid due to the fact ALP binaries are built without certain features such as AppArmor and NIS.
**Results:** Firstly we have a backports repository here containing all the additional packages we required so far, we also have a wiki page documenting why many of these packages are required . Secondly we built several KVM Images available for downloading and testing , that include Xfce, Enlightenment and a generic console environment. These are very limited images - really only designed as a proof of concept, so beyond very basic functionalities and basic desktop options, don't expect too much. Third we built live cds also for testing and available to download . Initially we worked on Xfce and Enlightenment due to my personal interest but at that point Valentin discovered that we were only about 30 packages away from a usable Gnome system and decided to give it a shot. However, what Gnome ends up looking like in the future will depend a fair bit on what SUSE does with it for their ALP products. We also have a D-Installer image availiable as a proof of concept for installation.
**Unanswered Questions:** * Desktop apps - SUSE's ALP will likely use Flatpaks, if these are built on OBS, it may be possible to build rpm versions from the same source. It is also likely that some openSUSE contributors will prefer to ship their applications as rpms. So Ideally we want to support both. * Maintenance / Release schedule - Ideally during the year at scheduled periods, we will bundle up changes from SUSE's ALP and the community and bundle them into some form of point release. I.e. it seems likely that SUSE will release the python3.11 stack at a point when the python3.10 stack is still supported so it would be ideal to pick one point to do regular migrations rather then them happening at random times. Currently we still don't have enough detail in this area to really assess what will be possible though. * There is a chance that SUSE will use less repositories than in the past and we may need to add repository- based filtering to zypper / yast so that they only show still supported packages for install. But again we are very much waiting for more detail here.
**What Next:** We now know that this concept A works and B would be maintainable, so if there is broad community interest in this concept, the next step would be probably after the Leap 15.5 release, creating a backports package repo similar to the way the Leap ones have existed with bots etc. Then getting maintainers to contribute any other packages they wish to maintain. At the same time, setting up image building and openqa tests. In the meantime the packages in the backports repo under my namespace are mostly linked from Factory (i'll fix the rest) so i'll keep an eye on them and check they stay building. If you maintain a package and are interested in the list of dependencies, you'd also need to maintain to get it working, let me know and I can link it in from Factory. However, be aware that significant parts of the perl, python and ruby language stacks etc aren't packaged yet. Also in the spirit of lighter desktops i'd like to get sway packaged as well as it will give a good indication of whats needed for the other smaller wayland desktops.
The name is something else to consider, should we just use Leap for the open source builds of SUSEs ALP products, should we do something else entirely? Given that SUSE is using names of alps as release code names I chose to do something similar but different, This project is meant to be less extreme then a trip up into the alps, more like a relaxing picnic or stroll through the hills so this prototypes codename is Grassy Knoll because it sounds cool and maybe I've been playing too much dwarf fortress. Either way, it may not be the best name for the project long term.
**FAQ:** * Why didn't we look at KDE? - KDE has a much larger packet set, Also part of my initial goal was to create something small enough that if I needed to maintain it with a couple of people mostly for our own personal usecases we'd be able to. KDE doesn't fit within that scope, however from the testing we have done this week if someone wanted to maintain KDE, it shouldn't require too many changes from the packages in Tumbleweed and may provide a good way to do KDE going forward with ALP but i'll leave that decision with the KDE Maintainers
Finally a massive thanks to the other members of this hackweek team: Maurizio Galli, Lubos Kocman and Valentin Lefebvre. They took a concept I had in my head and helped transform it into a functioning prototype. Also a big thanks to Fabian Vogt for answering all my "why won't kiwi build this"-questions.
If you have questions thoughts or suggestions feel free to reach out to us via email or in the openSUSE-ALP channels on Discord / IRC / Matrix. we will also work on getting this information into the wiki.
https://build.opensuse.org/project/show/home:simotek:GrassyKnoll:Backports 2. https://en.opensuse.org/User:Simotek:GrassyKnoll 3. https://mirrorcache-au.opensuse.org/repositories/home:/simotek:/GrassyKnoll:... 4. https://mirrorcache-au.opensuse.org/repositories/home:/simotek:/GrassyKnoll:...