-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create a generic Arch Linux upgrade script #711
Comments
We should have a list of Arch Linux versions that we can use to reference container tags for testing upgrades via a CI/CD pipeline. https://hub.docker.com/_/archlinux/tags A list to start off with could be the winesapOS versions that used Arch Linux (probably skipping the minor releases):
https://github.com/LukeShortCloud/winesapOS/releases Alternatively, we could simply target every 1 year, 6 months, or 3 months.
|
Goals:
Non-goals:
|
Packages from https://archive.archlinux.org/ can be pre-installed into old Arch Linux containers for CI testing purposes. |
Pacman has an undocumented feature to automatically replace packages without confirmation:
|
Arch Linux maintainers recommend using https://gitlab.archlinux.org/pacman/pacman/-/issues/102 |
If using a pre- and post-hooks approach with |
We should come up with a list of Arch Linux based distributions we would want to support. Obviously winesapOS but I have heard that folks from ChimeraOS are interested (for their users who insist on turning off the read-only frzr file system). There is also ArcoLinux, Batocera, EndeavourOS, Garuda Linux, etc. |
@Thijzer @soredake @wallentx @ohaiibuzzle @Sebazzz @lucid-cloud-dreams @Frostswing @Equ1no0x @Haarolean @maxiride @DKRacingFan @Rapou7 @99powerbreaker @QushyQushy @rkr87 @AHandheldFan @A-mak88 @FabioLolix @mjkl-gh @liberodark @massatt212 @Penguin766 @KaiH-0 Are any of you interested in helping to make an If I tagged you, that means you have helped contribute to winesapOS in a meaningful way and I am very grateful for that! In winesapOS, we have an upgrade script that fully automates Arch Linux upgrades. Instead of keeping this for winesapOS only, I want to take the experiences/learnings from that and create a new project that will work across a wider range of Arch Linux based distributions. With a fresh start and fresh new perspectives from the community, we can design this better and can create a better experience for end-users. Why is this needed? Upgrading Arch Linux usually requires manual intervention and it is not always intuitive on how to solve it. Especially for new Linux users. I found a lot of people use Discover from KDE Plasma to do system upgrades. This upgrades one package a time. If the upgrade fails for some reason, it is left in a half broken state. I have also seen other users wait 1-2 years before upgrading which leads to various issues. Dealing with GPG keyrings is especially a big problem on older systems. KDE Plasma 5 to 6 upgrades were also horrible to deal with. This new upgrade script/program would handle everything automatically with no user interaction required. Some questions we should answer:
I wrote down various ideas earlier in this thread related to a few of those questions that we can talk about more. Where would we discuss this? April 20th Saturday at 4:00 P.M. (16:00) UTC Thanks for your time! I hope to see ya'll online! |
You should use Manjaro KDE since it's simple to install, and it will replicate SteamDeck os closer, could always make a repository that have your custom kernel and mesa drivers, or U can make your own arch installer with a script to install steamos, cause one of the problems I hers is sddm and gdm switching back and fort from game mode to desktop. |
@massatt212 We have started work on that idea already. :-) Users who insist on having an installer can use Manjaro and then our conversion script. It is very basic right now and does not cover Gamescope session yet but we are looking into expanding it. We can include our repository, tweaks, system packages, etc. https://github.com/LukeShortCloud/winesapOS/tree/4.0.0?tab=readme-ov-file#convert-to-winesapos |
In its simplest form, For example: |
Hi @LukeShortCloud, I'm definitely willing to help. Although I kinda shifted to ublue atomic images for most of my machines, I still like those arch based image builds as a base as you have more control of how you package.. |
I had a couple of ideas reading this. Noting the best one I thought of down so I won't forget it later. Might be absurd, or might very well be viable |
@ohaiibuzzle Nice PDF! That really helps to clarify your vision and seems doable. winesapOS 5.0.0 may include an optional read-only image and I will definitely need your help with that! We will still offer "legacy" images with the traditional writable file system for users who want and expect that. Short-term, my friends at ChimeraOS have made frzr to address this problem by shipping Btrfs volume updates. Long-term, bootc is the future by allowing us to use a Dockerfile to build the operating system file system. Directories such as
|
I completely agree with your comment @LukeShortCloud. I was thinking of picking up the work of chimera os built-tools and working out a foundation of good image building and easy image deployment. Also the layering of the cake like ublue images is what I would want in these tools. I'll read up on bootc and see if it aligns. Thanks! |
Yeah, I would much prefer, for an Arch system anyway, for them to upgrade in an imaging-based manner rather than doing traditional package upgrade if we can. It would be much more predictable than trying to deal with potentially dicey package upgrades, since winesap is expected to just be used with Flatpaks and not having users managing packages themselves. I could think of a few ideas to achieve package-based upgrades, I'll see which one could work and make a similar writeup if I do |
@Thijzer Do you have a Discord? You can add me @LukeShortCloud and I will send you an invite to the Discord server. We will be meeting April 20th Saturday at 4:00 P.M. (16:00) UTC. We will be focused on the |
@LukeShortCloud I feel really honored to be invited to this project :) |
@lucid-cloud-dreams Your system administrator experience would be great to help provide feedback on how we tackle upgrades! Reach out to me on Discord @LukeShortCloud and I will get you an invite to our Discord server. You can join us in the #misc-utils channel in an hour when the meeting starts. |
@ohaiibuzzle Thanks for sharing your idea about a potential YAML layout (pasted below)! You mentioned this was inspired by Debian. This would be great for helping define upgrade recipes for winesapOS, ChimeraOS, etc.
|
I'll make a writeup similar to the other, imaging-based upgrading strategy when I get back to my desktop later, expanding on the idea, would be more detailed since we have a direction to go now |
I intended to reply to this, but I just started a new job a few weeks ago, and my focus was pulled away. I'm sorry I missed the boat! |
Hey @wallentx , I know you already read through everything on Discord but I'll give a quick update for everyone. There are two goals we are targeting with
With the conversion feature, distros can use For the programming language, most folks are leaning towards Rust but other proposed languages include Go and Bash. @ohaiibuzzle Could you upload the latest PDF of your outline here on this GitHub Issue? That showcases the goals and non-goals plus the YAML configuration we are thinking about using. |
Here is my notes on how I see it could be implemented, the "specification" refers to the file that contains what's explained by Luke as the "profile". "Implementation" here is the actual |
Our existing winesapOS upgrade script is basically an Arch Linux upgrade script that addresses issues brought up on archlinux.org . It has some extra logic to handle winesapOS configurations and packages. I would like to refactor our upgrade script into a new project simply called
arch-linux-upgrade
(orarchupgrade
to mirror the archinstall project name that exists) to handle automated and unattended upgrades. Then winesapOS can re-use that script and add on our own logic for things very specific to our project.The text was updated successfully, but these errors were encountered: