Rusty Quickemu and more CI #1322
Replies: 1 comment 3 replies
-
This is an abandoned project. It essentially consisted of me trying to rewrite quickget bash verbatim, and therefore was very poorly written. It also only attempted to generate configurations for bash quickemu. The logic for windows downloads was moved from that project to the aforementioned rido library a few months ago, which also got a major refactor a couple days ago. The quickemu-rs project also contains a primitive quickget implementation which creates configurations for quickemu-rs. There's a lot that needs to be done for it to be feature complete.
A useful resource for this may be the UTM project.
Implementing this is quite a bit harder than it seems. Firmware on different ARM (and other RISC architectures) boards is often quite different, so a distro specifically needs to support the board type being emulated. Therefore, it's likely that a machine type option will have to be added, where quickemu would be able to emulate various SBCs and other relevant devices. Hopefully, this point will become less relevant as other architectures become more prevalent within desktop computing.
I think it's probably still the best idea to have GUIs wrap some variant of quickget, since some operating systems (notably those from Apple and Microsoft) may be impossible to prepare in CI. The GUI shouldn't have to be updated alongside quickget whenever one of these downloads breaks. The only exception I can see is a potential future rust-based GUI, especially one using the GTK toolkit (as @TuxVinyards has mentioned a couple times), since windows/macOS downloading logic will be in rust libraries regardless, and GTK apps are predominantly packaged via containerized formats, especially Flatpak.
I certainly am prepared for quickemu-rs and related projects (quickget_configs) to be incorporated into the quickemu project, but the license of the project is GPLv3 and I'm not sure exactly how you feel about that, given that you clearly prefer licensing your software under permissive licenses. Quickgetc is being written to eventually be a drop-in replacement for bash quickget; I don't view it as a new project, rather just an extension of bash quickemu. Of course, it does depend on a project which currently is separate, long term it would be unwise to merge quickgetc while the source for the JSON data is outside of the project. |
Beta Was this translation helpful? Give feedback.
-
This topic continues #925, in which we discussed porting Quickemu to Rust and making better use of CI to generate download configurations for Quickget and Quickgui.
quickemu-rs
.Objectives
Here is my first stab at some high-level short to midterm objectives for Quickemu and Quickgui:
quickemu
; this is the overriding goalI'd like to add Apple Silicon and multi-architecture support to Quickemu Bash so that I can figure out the VM integrations and use that as a reference for
quickemu-rs
.I've picked up some of the Quickgui development and can make sure we maintain compatible interfaces between
quickemu-rs
and Quickgui.@lj3954, are you prepared to incorporate
quickemu-rs
andquickgetc
as projects under the Quickemu Project organisation? If you're on board with this idea, you'd be extended elevated project permissions.Beta Was this translation helpful? Give feedback.
All reactions