-
Notifications
You must be signed in to change notification settings - Fork 45
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
feat: add initial support for delta updates #308
Conversation
5b6b1cc
to
dfd85aa
Compare
Will resolve the Debian build failure in a bit and write the basic tests later. For testing, this suffices for now. |
@beh-10257 I'm interested to know if the build succeeds on NixOS. Do you mind testing how this builds on NixOS? I'd appreciate it. Also, if you're interested in testing this, I'll attach the patch file intended to upgrade GE-Proton9-20 below in a bit. To test, first install Afterwards, assuming you have the patch in your home directory, run: |
ok will do will build this branch thanks also can I send a patch that adds cbor2 as optional dependency |
It's fine right now, because cbor2 is already an optional dependency. See Line 45 in dfd85aa
|
In other words, it will not be installed by default for the system package umu-launcher. Though, we'll probably need to make it clearer in the Nix flake. Because cbor2 will be needed to activate delta updates |
In the Flake, the latest stable version of Rust will need to be added as a build dependency too. Perhaps that's called |
I mean I added cbor2 as an optional dependency I mean I can turn it off by default but why not |
as an optional or a main dependency |
0001-add-cbor2-as-an-optional-dependency-for-nixos.txt just rename .txt to .patch |
I meant Rust as a build dependency in depsBuildBuild.
|
feel free to add rustc (on a sidenote) cargo is not included so if its being used add it as well |
If you have the fd program, within GE-Proton9-20, you can run the command |
Yeah, cargo is needed. Not just rustc, and I can add that. |
after searching for pycache in my entire home steam is the only program that actually creates those folders |
Alright. Yeah, so if there's not cache go ahead and copy GE-Proton9-20 to $HOME/.local/share/umu/compatibilitytools then rename it to GE-Latest. |
ok will do (I'm waiting for you to merge that patch tbh) |
Yeah, that's what I meant. Since I know you use bwrap, unless you're not doing anything special with the proton. |
Should be good now. I applied your patch and added cargo as a build dependency. |
PROTONPATH=GE-Latest GAMEID=umu-0 UMU_DELTA=$HOME/delta.cbor umu-run "" do I need the umu_delta bit since I have ge proton 20 |
update it doesn't build since cargo access the internet is cargo only used for bzip2 |
Co-authored-by: Melody <[email protected]> Co-authored-by: beh_10257 <[email protected]>
Co-authored-by: beh_10257 <[email protected]>
- Wrong Proton build was printed to stderr
- Ignore the type. There's an open issue upstream for this, and we can refactor for readability later if desired
- For now, run the e2e tests on Ubuntu 22.04 because the tests are failing due to not using the bwrap apparmor profile: pressure-vessel-wrap[2993]: E: Child process exited with code 1: bwrap: setting up uid map: Permission denied Fix this later in a separate commit or pull request
Related to #133 (comment) and #134.
Adds optional support for delta updates for currently supported compatibility tools, resulting in significantly faster updates to the latest releases. This also puts umu-launcher up to parity with the Steam client in terms of update distribution for its tools.
For clients, this can be enabled by setting either
PROTONPATH=GE-Latest
orPROTONPATH=UMU-Latest
where each of those values represent the latest GE-Proton and UMU-Proton respectively. In this system, those builds will be placed within the private directory $XDG_DATA_HOME/umu/compatibilitytools, and like Steam's Proton Experimental, only 1 build will be maintained. For this system to work, it will be expected for clients or users to not modify the contents of those builds.Delta updates to the Steam Linux Runtime will be supported later after we start building it, and will become the default. Additionally, this feature is currently not supported for zipapps.
For this feature,
cbor2
,pyzstd
andxxhash
will be a new optional dependencies. Additionally,cargo
will be a new build dependency.TODO: