Skip to content

Commit

Permalink
feat: add initial support for delta updates (#308)
Browse files Browse the repository at this point in the history
* pyproject: add optional dependencies

* requirements: add optional dependencies

* feat: add rust library

- Will currently be used for the security part of the delta update system.

* Makefile: add build target for rust module

* umu_util: add function to create anon files

* umu_consts: add new install path

- Private directory for compatibility tools that are not runtime related, which will be supported for delta updates

* umu_run: remove UMU-Latest link if exists

* umu_run: support new codenames

* feat: add delta patcher

* umu_proton: delete function remove old builds

* umu_proton: don't create UMU-Latest link

* umu_proton: add function to fetch patch

* umu_proton: support finding delta builds

* umu_proton: remove redundant install_proton

* umu_proton: refactor install for delta builds

* umu_proton: refactor pre-install steps for delta builds

* umu_proton: add functionality to apply delta updates

* umu_test: update tests

* umu_test: add initial delta update tests

* deb: update deb package

* rpm: add optional dependencies

* snap: add optional dependencies

* nix: update flake

Co-authored-by: Melody <[email protected]>
Co-authored-by: beh_10257 <[email protected]>

* ci: add new dependencies to workflows

* README: update description for nix

Co-authored-by: beh_10257 <[email protected]>

* .gitignore: update ignore

* docs: update description for PROTONPATH

* pyproject: fix parsing error

* umu_proton: fix log statement

- Wrong Proton build was printed to stderr

* umu_proton: update style

* umu_proton: fetch patch from endpoint

* umu_proton: implement _fetch_patch

* umu_proton: add GE-Latest codename to set

* umu_proton: fix not waiting for future

* umu_proton: fix mypy lint

- Ignore the type. There's an open issue upstream for this, and we can refactor for readability later if desired

* umu_proton: fix mypy lint

* ci: don't use latest runner

- 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

---------

Co-authored-by: Melody <[email protected]>
Co-authored-by: beh_10257 <[email protected]>
  • Loading branch information
3 people authored Jan 5, 2025
1 parent 59a82ea commit 313c82a
Show file tree
Hide file tree
Showing 30 changed files with 1,584 additions and 265 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build-umu-fedora-40.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"

- name: Install build dependencies
run: dnf install -y rpm-build meson ninja-build cmake g++ gcc-c++ scdoc git python3-devel python3-build python3-installer python3-hatchling python python3
run: dnf install -y rpm-build meson ninja-build cmake g++ gcc-c++ scdoc git python3-devel python3-build python3-installer python3-hatchling python python3 cargo

- name: Build the project
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-umu-fedora-41.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"

- name: Install build dependencies
run: dnf install -y rpm-build meson ninja-build cmake g++ gcc-c++ scdoc git python3-devel python3-build python3-installer python3-hatchling python python3
run: dnf install -y rpm-build meson ninja-build cmake g++ gcc-c++ scdoc git python3-devel python3-build python3-installer python3-hatchling python python3 cargo

- name: Build the project
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-umu-zipapp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
run: apt update -y

- name: Install build dependencies
run: apt install -y python3-venv python3-all bash make scdoc python3-hatchling python3-installer python3-build
run: apt install -y python3-venv python3-all bash make scdoc python3-hatchling python3-installer python3-build cargo

- name: Configure
run: ./configure.sh --user-install
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@ permissions:

jobs:
build:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install dependencies
run: |
sudo apt-get install meson scdoc python3-hatchling python3-build python3-installer python3-filelock shellcheck bubblewrap
sudo apt-get install meson scdoc python3-hatchling python3-build python3-installer python3-filelock shellcheck bubblewrap cargo
python3 -m pip install --upgrade pip
pip install uv
- name: Initialize submodules
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/make.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
fetch-depth: 0
- name: Install dependencies
run: |
sudo apt-get install meson shellcheck scdoc python3-hatchling python3-build python3-installer python3-filelock
sudo apt-get install meson shellcheck scdoc python3-hatchling python3-build python3-installer python3-filelock cargo
- name: Initialize submodules
run: |
git submodule update --init --recursive
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@ umu_version.json
umu_version.json.in.tmp
Makefile
/debian
umu_delta*.so
target
Loading

0 comments on commit 313c82a

Please sign in to comment.