diff --git a/.github/actions/setup-workspace/action.yml b/.github/actions/setup-workspace/action.yml new file mode 100644 index 0000000..9467ed0 --- /dev/null +++ b/.github/actions/setup-workspace/action.yml @@ -0,0 +1,247 @@ +# Composite action — sets up a Flutter workspace via workspace-automation. +# +# Usage from another repository: +# +# jobs: +# build: +# uses: meta-flutter/workspace_automation/ +# with: +# args: '--disable=toolchain-llvm-18' +# post-setup-cmd: './my_build_script.sh' +# +# Security note: `post-setup-cmd` is passed directly to the shell. +# Only use trusted, static strings — never interpolate untrusted user input +# into this field, as it would enable script injection. + +name: 'Setup Flutter Workspace' +description: "Sets up a workspace-automation environment for meta-flutter development." + +inputs: + ref: + description: 'Branch, tag, or SHA of `workspace-automation` to checkout' + type: string + default: 'main' + + args: + description: 'Additional arguments passed verbatim to flutter_workspace.py' + type: string + default: '' + + post-setup-cmd: + description: > + Command or script to execute after flutter_workspace.py completes. + Runs inside the workspace with setup_env.sh already sourced. + Leave empty to skip. + type: string + default: '' + + cache: + description: > + Enable caching (on by default). + Caches /.cache unless cache-whole is true. + type: boolean + default: true + + cache-whole: + description: > + When true, caches the entire workspace directory instead of only + /.cache. Produces a larger cache but preserves all + workspace state across runs. Off by default. + type: boolean + default: false + + cache-key: + description: > + (optional!) Base string used to build the cache key. + Preferably specify when running in a matrix to avoid cache key collisions + between different build configurations. + type: string + default: 'flutter-workspace' + + user: + description: > + (optional) Username of the user to run flutter_workspace.py as. + If not specified, runs as the default user in the container (often root). + type: string + default: '' + +runs: + using: 'composite' + steps: + # Check OS + - name: Check OS + id: os-check + shell: bash + run: | + OS="$(uname -s)" + if [[ "$OS" == "Darwin" ]]; then + echo "::error::This workflow does not support macOS." + exit 1 + fi + case "$OS" in + MINGW*|MSYS*|CYGWIN*|Windows_NT) + echo "::error::This workflow does not support Windows." + exit 1 + ;; + esac + if [[ ! -f /etc/os-release ]]; then + echo "::error::Cannot determine Linux distribution: /etc/os-release not found." + exit 1 + fi + # shellcheck source=/dev/null + source /etc/os-release + DISTRO="${ID,,}" + echo "Detected distribution: ${DISTRO} ${VERSION_ID:-}" + if [[ "$DISTRO" != "ubuntu" && "$DISTRO" != "fedora" ]]; then + echo "::error::Unsupported Linux distribution '${DISTRO}'. Only Ubuntu (20-24) and Fedora are supported." + exit 1 + fi + echo "distro=${DISTRO}" >> "$GITHUB_OUTPUT" + echo "version=${VERSION_ID}" >> "$GITHUB_OUTPUT" + + # Set up username + if [[ "${{ inputs.user }}" != "" ]]; then + echo "Using specified user: ${{ inputs.user }}" + echo "user=${{ inputs.user }}" >> "$GITHUB_OUTPUT" + + # Get home path for specified user + if [[ "${{ inputs.user }}" != "" ]]; then + HOME_DIR=$(eval echo "~${{ inputs.user }}") + echo "home=${HOME_DIR}" >> "$GITHUB_OUTPUT" + fi + else + echo "No user specified, running as default container user." + echo "user=$USER" >> "$GITHUB_OUTPUT" + fi + + # Checkout + - name: Checkout workspace-automation + uses: actions/checkout@v4 + with: + repository: meta-flutter/workspace_automation + ref: ${{ inputs.ref }} + + - name: Fix ownership + if: ${{ steps.os-check.outputs.user != 'root' }} + shell: bash + run: | + echo "Changing ownership of workspace to ${USER}" + sudo chown -R "${USER}:${USER}" "$GITHUB_WORKSPACE" + + # Fix git permissions + git config --global --add safe.directory "$GITHUB_WORKSPACE" + + # Compute git ref + - name: Compute workspace-automation git ref + id: compute-ref + shell: bash + run: | + # Get commit SHA for checked-out ref + COMMIT_SHA=$(git rev-parse HEAD) + echo "commit-sha=$COMMIT_SHA" >> "$GITHUB_OUTPUT" + + # Cache configuration + # Compute the cache path and key once so both restore and save steps + # reference identical values. + - name: Compute cache configuration + if: ${{ inputs.cache }} + id: cache-cfg + shell: bash + run: | + if [[ "${{ inputs.cache-whole }}" == "true" ]]; then + echo "path=${{ github.workspace }}" >> "$GITHUB_OUTPUT" + else + echo "path=${{ github.workspace }}/.cache" >> "$GITHUB_OUTPUT" + fi + + BASE_KEY="${{ runner.os }}-${{ runner.arch }}-${{ inputs.cache-key }}" + # hash flutter_workspace.py + all files under configs/ for the cache key + CONTENT_HASH=$(cat flutter_workspace.py $(find configs/ -type f | sort) 2>/dev/null | sha256sum | cut -d' ' -f1) + FULL_KEY="${BASE_KEY}-${CONTENT_HASH}" + echo "key=${FULL_KEY}" >> "$GITHUB_OUTPUT" + echo "restore-keys=${BASE_KEY}-" >> "$GITHUB_OUTPUT" + + - name: Cache status + if: ${{ inputs.cache }} + shell: bash + run: | + echo "Cache enabled: ${{ inputs.cache }}" + echo "Cache whole workspace: ${{ inputs.cache-whole }}" + + if [[ "${{ inputs.cache }}" == "true" || "${{ inputs.cache-whole }}" == "true" ]]; then + echo "Cache path: ${{ steps.cache-cfg.outputs.path }}" + echo "Cache key: ${{ steps.cache-cfg.outputs.key }}" + echo "Cache hit: ${{ steps.cache-restore.outputs.cache-hit }}" + fi + + # Cache restore + - name: Restore workspace cache + if: ${{ inputs.cache }} + id: cache-restore + uses: actions/cache/restore@v4 + with: + path: ${{ steps.cache-cfg.outputs.path }} + key: ${{ steps.cache-cfg.outputs.key }} + + - name: Fix cache permissions + if: ${{ inputs.cache && steps.cache-restore.outputs.cache-hit == 'true' }} + shell: bash + run: | + echo "Changing ownership of cache to ${USER}" + mkdir -p "${{ steps.cache-cfg.outputs.path }}" + sudo chown -R "${USER}:${USER}" "${{ steps.cache-cfg.outputs.path }}" + + # Workspace setup + - name: Run flutter_workspace.py + id: flutter-workspace + shell: bash + env: + CI: 'true' + GITHUB_ACTIONS: 'true' + FLUTTER_WORKSPACE: ${{ github.workspace }} + USER: ${{ steps.os-check.outputs.user }} + HOME: ${{ steps.os-check.outputs.home }} + PIP_CACHE_DIR: ${{ github.workspace }}/.cache/pip + run: | + echo "Environment variables for flutter_workspace.py:" + env + + cd "$GITHUB_WORKSPACE" + pwd; ls -la + + # Word-splitting of args is intentional here so + # that callers can pass multiple flags as a single string input. + # shellcheck disable=SC2086 + sudo -E -u "$USER" bash -c " \ + cd $GITHUB_WORKSPACE && \ + python3 -m pip install --user -r requirements.txt && \ + ./flutter_workspace.py ${{ inputs.args }} \ + " + + # Post-setup command + - name: Run post-setup command + if: ${{ inputs.post-setup-cmd != '' }} + shell: bash + env: + CI: 'true' + GITHUB_ACTIONS: 'true' + FLUTTER_WORKSPACE: ${{ github.workspace }} + USER: ${{ steps.os-check.outputs.user }} + HOME: ${{ steps.os-check.outputs.home }} + PIP_CACHE_DIR: ${{ github.workspace }}/.cache/pip + run: | + sudo -E -u "$USER" bash -c " \ + cd $GITHUB_WORKSPACE && \ + source ./setup_env.sh && ${{ inputs.post-setup-cmd }} \ + " + + # Cache save + # Always save the cache so that partial artefacts benefit the next run, + # even when post-setup-cmd fails. Skipped only when caching is + # disabled or the key was already an exact hit (nothing new to store). + - name: Save workspace cache + if: ${{ inputs.cache }} + uses: actions/cache/save@v4 + with: + path: ${{ steps.cache-cfg.outputs.path }} + key: ${{ steps.cache-cfg.outputs.key }} diff --git a/.github/workflows/fedora.yml b/.github/workflows/fedora.yml index 4875a96..ababcc0 100644 --- a/.github/workflows/fedora.yml +++ b/.github/workflows/fedora.yml @@ -55,13 +55,12 @@ jobs: env - name: Set up tools + shell: bash run: | - dnf install -y python3 python3-pip python3-pyyaml which cmake util-linux - python3 -m pip install --upgrade pip + dnf install -y \ + python3 python3-pip which util-linux git sudo - - name: Create non-root user - run: | - dnf install -y sudo + # Create non-root user groupadd -g 1000 user useradd -m -u 1000 -g user -G wheel -s /bin/bash user echo "user ALL=(ALL) NOPASSWD: ALL" | tee /etc/sudoers.d/user @@ -69,26 +68,35 @@ jobs: - uses: actions/checkout@v4 - name: Create workspace - shell: bash - # Run as non-root user in the container - run: | - cd $GITHUB_WORKSPACE - pwd; ls -la - chown -R user:user . - su - user -c "cd $GITHUB_WORKSPACE && pwd && ls -la && export CI=true && export GITHUB_ACTIONS=true && PREFER_LLVM=${{ matrix.llvm }} ./flutter_workspace.py --stdin-file=/dev/null" - cat ./setup_env.sh + uses: ./.github/actions/setup-workspace + with: + ref: ${{ github.event.pull_request.head.sha || github.sha }} + cache: true + cache-key: ${{ matrix.os }}-llvm${{ matrix.llvm }} + user: user - name: Test workspace shell: bash + env: + CI: true + GITHUB_ACTIONS: true run: | - cd $GITHUB_WORKSPACE - pwd; ls -la - su - user -c "cd $GITHUB_WORKSPACE && pwd && ls -la && export CI=true && export GITHUB_ACTIONS=true && . ./setup_env.sh && dart --version" + sudo -E -u user bash -c " \ + cd $GITHUB_WORKSPACE && \ + pwd && ls -la && \ + source ./setup_env.sh && \ + dart --version \ + " - name: Test AOT creation - working-directory: ${{ github.workspace }} shell: bash + env: + CI: true + GITHUB_ACTIONS: true run: | - cd $GITHUB_WORKSPACE - pwd; ls -la - su - user -c "cd $GITHUB_WORKSPACE && pwd && ls -la && export CI=true && export GITHUB_ACTIONS=true && . ./setup_env.sh && ./flutter_workspace.py --create-aot --app-path=./app/tcna-packages/packages/flatpak/example/" + sudo -E -u user bash -c " \ + cd $GITHUB_WORKSPACE && \ + pwd && ls -la && \ + source ./setup_env.sh && \ + ./flutter_workspace.py --create-aot --app-path=./app/tcna-packages/packages/flatpak/example/ \ + " diff --git a/.github/workflows/ubuntu-legacy.yml b/.github/workflows/ubuntu-legacy.yml index 6dcbeaf..53b9319 100644 --- a/.github/workflows/ubuntu-legacy.yml +++ b/.github/workflows/ubuntu-legacy.yml @@ -46,6 +46,11 @@ jobs: container: image: ${{ matrix.os }} + env: + # Set DEBIAN_FRONTEND to noninteractive to avoid prompts during package installation + DEBIAN_FRONTEND: noninteractive + NONINTERACTIVE: 'true' + steps: - name: Check Environment run: | @@ -55,51 +60,50 @@ jobs: echo "Environment variables:" env + # OS-specific tool installation - name: Set up tools + shell: bash run: | - apt-get update -y - DEBIAN_FRONTEND=noninteractive apt-get install -yq python3 python3-pip bash cmake sudo - python3 -m pip install --upgrade pip - apt install python3.8-venv -yq + apt-get update -yq + apt-get install -yq \ + bash sudo git apt-utils \ + python3 python3-pip python3.8-venv \ + libssl-dev libcurl4-openssl-dev - - name: Create non-root user - run: | + # Set non-interactive shell + echo "debconf debconf/frontend select Noninteractive" | debconf-set-selections + + # Create non-root user groupadd -g 1000 user - useradd -m -u 1000 -g user -s /bin/bash user + useradd -m -d /home/user -u 1000 -g user -s /bin/bash user echo "user ALL=(ALL) NOPASSWD: ALL" | tee /etc/sudoers.d/user - uses: actions/checkout@v4 - - name: Fix workspace permissions - shell: bash - run: | - cd $GITHUB_WORKSPACE - sudo chown -R user:user . - - - name: Create workspace - shell: bash - # Run as non-root user in the container - run: | - env - cd $GITHUB_WORKSPACE - pwd; ls -la - export DEBIAN_FRONTEND=noninteractive; echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections - sudo -u user bash -c "./flutter_workspace.py" - cat ./setup_env.sh - + - name: Setup workspace + uses: ./.github/actions/setup-workspace + with: + ref: ${{ github.event.pull_request.head.sha || github.sha }} + cache: true + cache-key: ${{ matrix.os }}-llvm${{ matrix.llvm }} + user: user - name: Test workspace shell: bash run: | - env - cd $GITHUB_WORKSPACE - pwd; ls -la - sudo -u user bash -c ". ./setup_env.sh && dart --version" + sudo -E -u user bash -c " \ + cd $GITHUB_WORKSPACE && \ + pwd && ls -la && \ + source ./setup_env.sh && \ + dart --version \ + " - - name: Create AOT Tests + - name: Test AOT creation shell: bash run: | env cd $GITHUB_WORKSPACE pwd; ls -la - sudo -u user bash -c ". ./setup_env.sh && \ - ./flutter_workspace.py --create-aot --app-path=./app/tcna-packages/packages/flatpak/example/" + sudo -E -u user bash -c " \ + source ./setup_env.sh && \ + ./flutter_workspace.py --create-aot --app-path=./app/tcna-packages/packages/flatpak/example/ \ + " diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index 69cb2be..8b3cd80 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -52,6 +52,8 @@ jobs: steps: - name: Check Environment + id: check_environment + shell: bash run: | echo "Running on Ubuntu version: $(lsb_release -d | cut -f2)" echo "Running on architecture: $(uname -m)" @@ -59,25 +61,18 @@ jobs: echo "Environment variables:" env + # Get username + echo "user=$(whoami)" >> "$GITHUB_OUTPUT" + - uses: actions/checkout@v4 - name: Create workspace - shell: bash - env: - CI: true - GITHUB_ACTIONS: true - # If llvm != 18, do --disable=toolchain-llvm-18 - run: | - cd $GITHUB_WORKSPACE - pwd; ls -la - PREFER_LLVM=${{ matrix.llvm }} ./flutter_workspace.py - echo "Checking LLVM config..." - cat setup_env.sh; echo "" - FOUND_LLVM_VER=$(grep -oP 'export PREFER_LLVM=\K[0-9]+' setup_env.sh) - if [ "$FOUND_LLVM_VER" != ${{ matrix.llvm }} ]; then - echo "Expected LLVM version ${{ matrix.llvm }} but found ${FOUND_LLVM_VER} in setup_env.sh" - exit 1 - fi + uses: ./.github/actions/setup-workspace + with: + ref: ${{ github.event.pull_request.head.sha || github.sha }} + cache: true + cache-key: ${{ matrix.os }}-llvm${{ matrix.llvm }} + user: ${{ steps.check_environment.outputs.user }} - name: Test workspace shell: bash @@ -85,13 +80,12 @@ jobs: CI: true GITHUB_ACTIONS: true run: | - cd $GITHUB_WORKSPACE pwd; ls -la - . ./setup_env.sh + source ./setup_env.sh ls -la $FLUTTER_WORKSPACE dart --version - - name: Create AOT Tests + - name: Test AOT if: ${{ !contains(matrix.os, 'arm') }} shell: bash env: @@ -100,5 +94,5 @@ jobs: run: | cd $GITHUB_WORKSPACE pwd; ls -la - . ./setup_env.sh + source ./setup_env.sh ./flutter_workspace.py --create-aot --app-path=./app/tcna-packages/packages/flatpak/example/ diff --git a/.gitignore b/.gitignore index 8d96e2a..6434c83 100644 --- a/.gitignore +++ b/.gitignore @@ -157,5 +157,8 @@ AGL amdgpu imxgpu -.docker-cache -.cache \ No newline at end of file +# Cache +.cache/ +.tmp/ +.docker-cache/ +docker-cache/ \ No newline at end of file diff --git a/bin/sudo-apt-workspace b/bin/sudo-apt-workspace new file mode 100755 index 0000000..d2c0d96 --- /dev/null +++ b/bin/sudo-apt-workspace @@ -0,0 +1,10 @@ +#!/bin/sh +# Runs apt-get under sudo, caching .deb archives in the workspace cache. +# Invoke without a leading sudo — sudo is called internally so PATH is preserved. +if [ -n "$FLUTTER_WORKSPACE" ]; then + cache_dir="$FLUTTER_WORKSPACE/.cache/apt" + mkdir -p "$cache_dir" + exec sudo apt-get -o "Dir::Cache::archives=$cache_dir/" "$@" +else + exec sudo apt-get "$@" +fi diff --git a/bin/sudo-dnf-workspace b/bin/sudo-dnf-workspace new file mode 100755 index 0000000..ddd9a92 --- /dev/null +++ b/bin/sudo-dnf-workspace @@ -0,0 +1,10 @@ +#!/bin/sh +# Runs dnf under sudo, caching packages/metadata in the workspace cache. +# Invoke without a leading sudo — sudo is called internally so PATH is preserved. +if [ -n "$FLUTTER_WORKSPACE" ]; then + cache_dir="$FLUTTER_WORKSPACE/.cache/dnf" + mkdir -p "$cache_dir" + exec sudo dnf --setopt="cachedir=$cache_dir" --setopt=keepcache=1 "$@" +else + exec sudo dnf "$@" +fi diff --git a/configs/agl-compsitor.json b/configs/agl-compsitor.json index 18ad67d..853e984 100644 --- a/configs/agl-compsitor.json +++ b/configs/agl-compsitor.json @@ -10,8 +10,8 @@ ], "type": "dependency", "env": { - "PATH": "${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-ninja:${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-cmake/bin:$PATH", - "LD_LIBRARY_PATH": "${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-cmake/lib", + "PATH": "${FLUTTER_WORKSPACE}/.tmp/toolchain-common-ninja:${FLUTTER_WORKSPACE}/.tmp/toolchain-common-cmake/bin:$PATH", + "LD_LIBRARY_PATH": "${FLUTTER_WORKSPACE}/.tmp/toolchain-common-cmake/lib", "INSTALL_PREFIX": "${FLUTTER_WORKSPACE}/AGL/", "SEATD_SRC_DIR": "${FLUTTER_WORKSPACE}/app/seatd", "SEATD_BUILD_DIR": "${FLUTTER_WORKSPACE}/app/seatd/buildDir", @@ -68,16 +68,16 @@ "fedora": { "cmds": [ "pip3 install meson", - "sudo dnf -y install libffi-devel libxml2-devel dot2tex doxygen xsltproc xmlto libXfont2-devel libwebp-devel rst2pdf libpciaccess-devel libudev-devel byacc flex libXfixes-devel libglvnd-devel libxkbcommon-devel libinput-devel libjpeg-devel libwebp-devel dbus-devel hwdata libva-devel freerdp-devel libseat-devel systemd-devel pango-devel pixman-devel cairo-devel bison-devel pipewire-devel pam-devel wayland-devel lcms-devel colord-devel" + "sudo-dnf-workspace -y install libffi-devel libxml2-devel dot2tex doxygen xsltproc xmlto libXfont2-devel libwebp-devel rst2pdf libpciaccess-devel libudev-devel byacc flex libXfixes-devel libglvnd-devel libxkbcommon-devel libinput-devel libjpeg-devel libwebp-devel dbus-devel hwdata libva-devel freerdp-devel libseat-devel systemd-devel pango-devel pixman-devel cairo-devel bison-devel pipewire-devel pam-devel wayland-devel lcms-devel colord-devel" ], "40": { "cmds": [ - "sudo dnf -y install ffmpeg-free-devel" + "sudo-dnf-workspace -y install ffmpeg-free-devel" ] }, "41": { "cmds": [ - "sudo dnf -y install ffmpeg-devel" + "sudo-dnf-workspace -y install ffmpeg-devel" ] } }, @@ -87,12 +87,12 @@ ], "20.0.4": { "cmds": [ - "sudo apt-get install -yq graphviz libffi-dev libxml2-dev dot2tex doxygen xsltproc xmlto ninja-build libpixman-1-dev libxfont2 libxfont-dev libwebp-dev libcairo2-dev valgrind systemd-coredump rst2pdf libcunit1-dev libpciaccess-dev libwayland-dev libudev-dev libelf-dev libbison-dev byacc flex libxfixes-dev libxcb-glx0-dev libx11-xcb-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-present-dev libxshmfence-dev libxxf86vm-dev libxrandr-dev glslang-tools libglvnd-dev libxkbcommon-dev libinput-dev libpango1.0-dev libpangocairo-1.0-0 libjpeg-dev libwebp-dev libsystemd-dev libdbus-1-dev hwdata liblcms2-dev libva-dev freerdp2-dev libxcursor-dev libcolord-dev libegl-mesa0 libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev libseat-dev libpam0g-dev libsdl-pango-dev ffmpeg" + "sudo-apt-workspace install -yq graphviz libffi-dev libxml2-dev dot2tex doxygen xsltproc xmlto ninja-build libpixman-1-dev libxfont2 libxfont-dev libwebp-dev libcairo2-dev valgrind systemd-coredump rst2pdf libcunit1-dev libpciaccess-dev libwayland-dev libudev-dev libelf-dev libbison-dev byacc flex libxfixes-dev libxcb-glx0-dev libx11-xcb-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-present-dev libxshmfence-dev libxxf86vm-dev libxrandr-dev glslang-tools libglvnd-dev libxkbcommon-dev libinput-dev libpango1.0-dev libpangocairo-1.0-0 libjpeg-dev libwebp-dev libsystemd-dev libdbus-1-dev hwdata liblcms2-dev libva-dev freerdp2-dev libxcursor-dev libcolord-dev libegl-mesa0 libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev libseat-dev libpam0g-dev libsdl-pango-dev ffmpeg" ] }, "22.0.4": { "cmds": [ - "sudo apt-get install -yq graphviz libffi-dev libxml2-dev dot2tex doxygen xsltproc xmlto ninja-build libpixman-1-dev libxfont2 libxfont-dev libwebp-dev libcairo2-dev valgrind systemd-coredump rst2pdf libcunit1-dev libpciaccess-dev libwayland-dev libudev-dev libelf-dev libbison-dev byacc flex libxfixes-dev libxcb-glx0-dev libx11-xcb-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-present-dev libxshmfence-dev libxxf86vm-dev libxrandr-dev glslang-tools libglvnd-dev libxkbcommon-dev libinput-dev libpango1.0-dev libpangocairo-1.0-0 libjpeg-dev libwebp-dev libsystemd-dev libdbus-1-dev hwdata liblcms2-dev libva-dev freerdp2-dev libxcursor-dev libcolord-dev libegl-mesa0 libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev libseat-dev libpam0g-dev libsdl-pango-dev ffmpeg" + "sudo-apt-workspace install -yq graphviz libffi-dev libxml2-dev dot2tex doxygen xsltproc xmlto ninja-build libpixman-1-dev libxfont2 libxfont-dev libwebp-dev libcairo2-dev valgrind systemd-coredump rst2pdf libcunit1-dev libpciaccess-dev libwayland-dev libudev-dev libelf-dev libbison-dev byacc flex libxfixes-dev libxcb-glx0-dev libx11-xcb-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-present-dev libxshmfence-dev libxxf86vm-dev libxrandr-dev glslang-tools libglvnd-dev libxkbcommon-dev libinput-dev libpango1.0-dev libpangocairo-1.0-0 libjpeg-dev libwebp-dev libsystemd-dev libdbus-1-dev hwdata liblcms2-dev libva-dev freerdp2-dev libxcursor-dev libcolord-dev libegl-mesa0 libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev libseat-dev libpam0g-dev libsdl-pango-dev ffmpeg" ] } } diff --git a/configs/amd-acs.json b/configs/amd-acs.json index 9bf7ece..fd49cf5 100644 --- a/configs/amd-acs.json +++ b/configs/amd-acs.json @@ -10,8 +10,8 @@ ], "type": "dependency", "env": { - "PATH": "${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-ninja:${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-cmake/bin:$PATH", - "LD_LIBRARY_PATH": "${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-cmake/lib", + "PATH": "${FLUTTER_WORKSPACE}/.tmp/toolchain-common-ninja:${FLUTTER_WORKSPACE}/.tmp/toolchain-common-cmake/bin:$PATH", + "LD_LIBRARY_PATH": "${FLUTTER_WORKSPACE}/.tmp/toolchain-common-cmake/lib", "INSTALL_PREFIX": "${FLUTTER_WORKSPACE}/amdgpu/", "AMD_ACS_WAYLAND_SRC_DIR": "${FLUTTER_WORKSPACE}/app/wayland", "AMD_ACS_WAYLAND_BUILD_DIR": "${FLUTTER_WORKSPACE}/app/wayland/buildDir", @@ -43,16 +43,16 @@ "fedora": { "cmds": [ "pip3 install meson", - "sudo dnf -y install libffi-devel libxml2-devel dot2tex doxygen xsltproc xmlto libXfont2-devel libwebp-devel rst2pdf libpciaccess-devel libudev-devel byacc flex libXfixes-devel libglvnd-devel libxkbcommon-devel libinput-devel libjpeg-devel libwebp-devel dbus-devel hwdata libva-devel freerdp-devel libseat-devel systemd-devel pango-devel pixman-devel cairo-devel bison-devel pipewire-devel pam-devel wayland-devel lcms-devel colord-devel" + "sudo-dnf-workspace -y install libffi-devel libxml2-devel dot2tex doxygen xsltproc xmlto libXfont2-devel libwebp-devel rst2pdf libpciaccess-devel libudev-devel byacc flex libXfixes-devel libglvnd-devel libxkbcommon-devel libinput-devel libjpeg-devel libwebp-devel dbus-devel hwdata libva-devel freerdp-devel libseat-devel systemd-devel pango-devel pixman-devel cairo-devel bison-devel pipewire-devel pam-devel wayland-devel lcms-devel colord-devel" ], "40": { "cmds": [ - "sudo dnf -y install ffmpeg-free-devel" + "sudo-dnf-workspace -y install ffmpeg-free-devel" ] }, "41": { "cmds": [ - "sudo dnf -y install ffmpeg-devel" + "sudo-dnf-workspace -y install ffmpeg-devel" ] } }, @@ -62,12 +62,12 @@ ], "20.0.4": { "cmds": [ - "sudo apt-get install -yq graphviz libffi-dev libxml2-dev dot2tex doxygen xsltproc xmlto ninja-build libpixman-1-dev libxfont2 libxfont-dev libwebp-dev libcairo2-dev valgrind systemd-coredump rst2pdf libcunit1-dev libpciaccess-dev libwayland-dev libudev-dev libelf-dev libbison-dev byacc flex libxfixes-dev libxcb-glx0-dev libx11-xcb-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-present-dev libxshmfence-dev libxxf86vm-dev libxrandr-dev glslang-tools libglvnd-dev libxkbcommon-dev libinput-dev libpango1.0-dev libpangocairo-1.0-0 libjpeg-dev libwebp-dev libsystemd-dev libdbus-1-dev hwdata liblcms2-dev libva-dev freerdp2-dev libxcursor-dev libcolord-dev libegl-mesa0 libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev libseat-dev libpam0g-dev libsdl-pango-dev ffmpeg" + "sudo-apt-workspace install -yq graphviz libffi-dev libxml2-dev dot2tex doxygen xsltproc xmlto ninja-build libpixman-1-dev libxfont2 libxfont-dev libwebp-dev libcairo2-dev valgrind systemd-coredump rst2pdf libcunit1-dev libpciaccess-dev libwayland-dev libudev-dev libelf-dev libbison-dev byacc flex libxfixes-dev libxcb-glx0-dev libx11-xcb-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-present-dev libxshmfence-dev libxxf86vm-dev libxrandr-dev glslang-tools libglvnd-dev libxkbcommon-dev libinput-dev libpango1.0-dev libpangocairo-1.0-0 libjpeg-dev libwebp-dev libsystemd-dev libdbus-1-dev hwdata liblcms2-dev libva-dev freerdp2-dev libxcursor-dev libcolord-dev libegl-mesa0 libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev libseat-dev libpam0g-dev libsdl-pango-dev ffmpeg" ] }, "22.0.4": { "cmds": [ - "sudo apt-get install -yq graphviz libffi-dev libxml2-dev dot2tex doxygen xsltproc xmlto ninja-build libpixman-1-dev libxfont2 libxfont-dev libwebp-dev libcairo2-dev valgrind systemd-coredump rst2pdf libcunit1-dev libpciaccess-dev libwayland-dev libudev-dev libelf-dev libbison-dev byacc flex libxfixes-dev libxcb-glx0-dev libx11-xcb-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-present-dev libxshmfence-dev libxxf86vm-dev libxrandr-dev glslang-tools libglvnd-dev libxkbcommon-dev libinput-dev libpango1.0-dev libpangocairo-1.0-0 libjpeg-dev libwebp-dev libsystemd-dev libdbus-1-dev hwdata liblcms2-dev libva-dev freerdp2-dev libxcursor-dev libcolord-dev libegl-mesa0 libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev libseat-dev libpam0g-dev libsdl-pango-dev ffmpeg" + "sudo-apt-workspace install -yq graphviz libffi-dev libxml2-dev dot2tex doxygen xsltproc xmlto ninja-build libpixman-1-dev libxfont2 libxfont-dev libwebp-dev libcairo2-dev valgrind systemd-coredump rst2pdf libcunit1-dev libpciaccess-dev libwayland-dev libudev-dev libelf-dev libbison-dev byacc flex libxfixes-dev libxcb-glx0-dev libx11-xcb-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-present-dev libxshmfence-dev libxxf86vm-dev libxrandr-dev glslang-tools libglvnd-dev libxkbcommon-dev libinput-dev libpango1.0-dev libpangocairo-1.0-0 libjpeg-dev libwebp-dev libsystemd-dev libdbus-1-dev hwdata liblcms2-dev libva-dev freerdp2-dev libxcursor-dev libcolord-dev libegl-mesa0 libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev libseat-dev libpam0g-dev libsdl-pango-dev ffmpeg" ] } } diff --git a/configs/cef-prebuilt.json b/configs/cef-prebuilt.json index 27dca62..8a1a102 100644 --- a/configs/cef-prebuilt.json +++ b/configs/cef-prebuilt.json @@ -46,7 +46,7 @@ "cwd": "${THIRD_PARTY_ROOT}", "cmds": [ "rm -rf ${CEF_ROOT} |true", - "tar xjf ${PLATFORM_ID_DIR}/artifacts/${ARCHIVE_FILE}.tar.bz2 -C ." + "tar xjf ${ARTIFACTS_DIR}/${ARCHIVE_FILE}.tar.bz2 -C ." ] }, { diff --git a/configs/desktop-homescreen.json b/configs/desktop-homescreen.json index 98f769c..ec599da 100644 --- a/configs/desktop-homescreen.json +++ b/configs/desktop-homescreen.json @@ -14,8 +14,8 @@ "env": { "CC": "${LLVM_BINDIR}/clang", "CXX": "${LLVM_BINDIR}/clang++", - "PATH": "${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-ninja:${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-cmake/bin:$PATH", - "LD_LIBRARY_PATH": "${LLVM_LIBDIR}:${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-cmake/lib", + "PATH": "${FLUTTER_WORKSPACE}/.tmp/toolchain-common-ninja:${FLUTTER_WORKSPACE}/.tmp/toolchain-common-cmake/bin:$PATH", + "LD_LIBRARY_PATH": "${LLVM_LIBDIR}:${FLUTTER_WORKSPACE}/.tmp/toolchain-common-cmake/lib", "HOMESCREEN_SRC_DIR": "${FLUTTER_WORKSPACE}/app/ivi-homescreen", "HOMESCREEN_BUILD_DIR": "${FLUTTER_WORKSPACE}/app/ivi-homescreen/build", "PLUGINS_DIR": "${FLUTTER_WORKSPACE}/app/ivi-homescreen-plugins/plugins", @@ -94,29 +94,30 @@ "ubuntu": { "shell": true, "cmds": [ - "sudo apt-get update -y", - "if [ -n \"$GITHUB_ACTIONS\" ]; then sudo apt-get install -yq libsystemd-dev flatpak libflatpak-dev gnome-software-plugin-flatpak; fi", + "sudo-apt-workspace update -y", + "sudo-apt-workspace install -yq --no-install-recommends libsystemd-dev", + "if [ -n \"$GITHUB_ACTIONS\" ]; then sudo-apt-workspace install -yq flatpak libflatpak-dev gnome-software-plugin-flatpak; fi", "if [ -n \"$GITHUB_ACTIONS\" ]; then sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo; fi", "if [ -n \"$GITHUB_ACTIONS\" ]; then flatpak remotes; fi" ], "20.04": { "cmds": [ "echo \"Ubuntu 20.04\"", - "sudo apt-get install -yq --no-install-recommends libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-gl", + "sudo-apt-workspace install -yq --no-install-recommends libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-gl", "pkg-config --modversion gstreamer-1.0 gstreamer-audio-1.0" ] }, "22.04": { "cmds": [ "echo \"Ubuntu 22.04\"", - "sudo apt-get install -yq --no-install-recommends libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-gl", + "sudo-apt-workspace install -yq --no-install-recommends libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-gl", "pkg-config --modversion gstreamer-1.0 gstreamer-audio-1.0" ] }, "24.04": { "cmds": [ "echo \"Ubuntu 24.04\"", - "sudo apt-get install -yq --no-install-recommends libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-gl", + "sudo-apt-workspace install -yq --no-install-recommends libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-gl", "pkg-config --modversion gstreamer-1.0 gstreamer-audio-1.0" ] } @@ -126,30 +127,30 @@ "ubuntu": { "shell": true, "cmds": [ - "sudo apt-get update -y", - "sudo apt-get install -yq --no-install-recommends libsystemd-dev", - "if [ -n \"$GITHUB_ACTIONS\" ]; then sudo apt-get install -yq flatpak libflatpak-dev gnome-software-plugin-flatpak; fi", + "sudo-apt-workspace update -y", + "sudo-apt-workspace install -yq --no-install-recommends libsystemd-dev", + "if [ -n \"$GITHUB_ACTIONS\" ]; then sudo-apt-workspace install -yq flatpak libflatpak-dev gnome-software-plugin-flatpak; fi", "if [ -n \"$GITHUB_ACTIONS\" ]; then sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo; fi", "if [ -n \"$GITHUB_ACTIONS\" ]; then flatpak remotes; fi" ], "20.04": { "cmds": [ "echo \"Ubuntu 20.04\"", - "sudo apt-get install -yq --no-install-recommends libgstreamer1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-gl", + "sudo-apt-workspace install -yq --no-install-recommends libgstreamer1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-gl", "pkg-config --modversion gstreamer-1.0 gstreamer-audio-1.0" ] }, "22.04": { "cmds": [ "echo \"Ubuntu 22.04\"", - "sudo apt-get install -yq --no-install-recommends libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-gl", + "sudo-apt-workspace install -yq --no-install-recommends libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-gl", "pkg-config --modversion gstreamer-1.0 gstreamer-audio-1.0" ] }, "24.04": { "cmds": [ "echo \"Ubuntu 24.04\"", - "sudo apt-get install -yq --no-install-recommends libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-gl", + "sudo-apt-workspace install -yq --no-install-recommends libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-gl", "pkg-config --modversion gstreamer-1.0 gstreamer-audio-1.0" ] } @@ -157,10 +158,10 @@ "fedora": { "shell": true, "cmds": [ - "sudo dnf update -y", - "sudo dnf -yq install SDL2-devel libsecret-devel zenity systemd-devel ", - "sudo dnf -yq install libunwind-devel gstreamer1-devel gstreamer1-plugins-base-devel gstreamer1-plugins-bad-free-devel gstreamer1-plugins-bad-free-extras gstreamer1-plugins-base-tools gstreamer1-plugins-good gstreamer1-plugins-good-extras gstreamer1-plugins-ugly-free", - "sudo dnf -yq install flatpak", + "sudo-dnf-workspace update -y", + "sudo-dnf-workspace -yq install SDL2-devel libsecret-devel zenity systemd-devel ", + "sudo-dnf-workspace -yq install libunwind-devel gstreamer1-devel gstreamer1-plugins-base-devel gstreamer1-plugins-bad-free-devel gstreamer1-plugins-bad-free-extras gstreamer1-plugins-base-tools gstreamer1-plugins-good gstreamer1-plugins-good-extras gstreamer1-plugins-ugly-free", + "sudo-dnf-workspace -yq install flatpak", "if command -v flatpak >/dev/null 2>&1; then flatpak remote-add --if-not-exists --user flathub https://dl.flathub.org/repo/flathub.flatpakrepo || echo 'Flatpak remote add failed, continuing...'; fi", "if command -v flatpak >/dev/null 2>&1; then flatpak update --noninteractive --user || echo 'Flatpak update failed, continuing...'; fi", "pkg-config --modversion gstreamer-1.0 gstreamer-audio-1.0" @@ -168,10 +169,10 @@ }, "rhel": { "cmds": [ - "sudo dnf update -y", - "sudo dnf -y install zenity systemd-devel", - "sudo dnf -y install libunwind-devel gstreamer1-devel gstreamer1-plugins-base-devel gstreamer1-plugins-bad-free-devel gstreamer1-plugins-base-tools gstreamer1-plugins-good gstreamer1-plugins-ugly-free", - "sudo dnf -y install flatpak", + "sudo-dnf-workspace update -y", + "sudo-dnf-workspace -y install zenity systemd-devel", + "sudo-dnf-workspace -y install libunwind-devel gstreamer1-devel gstreamer1-plugins-base-devel gstreamer1-plugins-bad-free-devel gstreamer1-plugins-base-tools gstreamer1-plugins-good gstreamer1-plugins-ugly-free", + "sudo-dnf-workspace -y install flatpak", "if command -v flatpak >/dev/null 2>&1; then flatpak remote-add --if-not-exists --user flathub https://dl.flathub.org/repo/flathub.flatpakrepo || echo 'Flatpak remote add failed, continuing...'; fi", "if command -v flatpak >/dev/null 2>&1; then flatpak update --noninteractive --user || echo 'Flatpak update failed, continuing...'; fi", "pkg-config --modversion gstreamer-1.0 gstreamer-audio-1.0" diff --git a/configs/docker-compose.json b/configs/docker-compose.json index 8a4a2e8..a5739bf 100644 --- a/configs/docker-compose.json +++ b/configs/docker-compose.json @@ -40,29 +40,29 @@ } ], "cmds": [ - "sudo apt-get update", + "sudo-apt-workspace update", "echo \"deb [arch=amd64, signed-by=/etc/apt/trusted.gpg.d/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable\" | sudo tee /etc/apt/sources.list.d/docker.list", - "sudo apt-get install -yq apt-transport-https ca-certificates software-properties-common", - "sudo apt-get update", - "sudo apt-get upgrade -y", - "sudo apt-get install -yq ubuntu-desktop gcc git vim curl docker-ce docker-ce-cli containerd.io pv pbzip2 jq bridge-utils", - "sudo apt-get autoremove -y", - "sudo apt-get autoclean", - "sudo apt-get clean", + "sudo-apt-workspace install -yq apt-transport-https ca-certificates software-properties-common", + "sudo-apt-workspace update", + "sudo-apt-workspace upgrade -y", + "sudo-apt-workspace install -yq ubuntu-desktop gcc git vim curl docker-ce docker-ce-cli containerd.io pv pbzip2 jq bridge-utils", + "sudo-apt-workspace autoremove -y", + "sudo-apt-workspace autoclean", + "sudo-apt-workspace clean", "sudo usermod -aG docker ${USER}" ] }, "fedora": { "cmds": [ - "sudo dnf -y config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo", - "sudo dnf -y update", - "sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin", - "sudo dnf -y install ca-certificates gcc git vim pv pbzip2 jq bridge-utils", + "sudo-dnf-workspace -y config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo", + "sudo-dnf-workspace -y update", + "sudo-dnf-workspace -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin", + "sudo-dnf-workspace -y install ca-certificates gcc git vim pv pbzip2 jq bridge-utils", "sudo systemctl disable --now docker.service docker.socket", - "sudo dnf -y autoremove", + "sudo-dnf-workspace -y autoremove", "sudo usermod -aG docker ${USER}", - "sudo dnf -y update", - "sudo dnf install -y fuse-overlayfs iptables docker-ce-rootless-extras", + "sudo-dnf-workspace -y update", + "sudo-dnf-workspace install -y fuse-overlayfs iptables docker-ce-rootless-extras", "dockerd-rootless-setuptool.sh install", "systemctl --user start docker", "systemctl --user enable docker", diff --git a/configs/firebase-cpp-sdk.json b/configs/firebase-cpp-sdk.json index b5b7a06..0e1032e 100644 --- a/configs/firebase-cpp-sdk.json +++ b/configs/firebase-cpp-sdk.json @@ -12,8 +12,8 @@ ], "type": "dependency", "env": { - "PATH": "${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-ninja:${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-cmake/bin:$PATH", - "LD_LIBRARY_PATH": "${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-cmake/lib", + "PATH": "${FLUTTER_WORKSPACE}/.tmp/toolchain-common-ninja:${FLUTTER_WORKSPACE}/.tmp/toolchain-common-cmake/bin:$PATH", + "LD_LIBRARY_PATH": "${FLUTTER_WORKSPACE}/.tmp/toolchain-common-cmake/lib", "FIREBASE_SRC_DIR": "${FLUTTER_WORKSPACE}/app/firebase-cpp-sdk", "FIREBASE_BUILD_DIR": "${FLUTTER_WORKSPACE}/app/firebase-cpp-sdk/build", "FIREBASE_STAGING_DIR": "${FIREBASE_BUILD_DIR}/staging/release", @@ -60,7 +60,7 @@ "fedora": { "cmds": [ "pip3 install absl-py", - "sudo dnf install go" + "sudo-dnf-workspace install go" ] } } diff --git a/configs/flutter-engine-deprecated.json b/configs/flutter-engine-deprecated.json index 0b2597a..4e381c5 100644 --- a/configs/flutter-engine-deprecated.json +++ b/configs/flutter-engine-deprecated.json @@ -45,19 +45,19 @@ "aarch64": { "ubuntu": { "cmds": [ - "sudo apt-get install -yq pkg-config libfreetype-dev git" + "sudo-apt-workspace install -yq pkg-config libfreetype-dev git" ] } }, "x86_64": { "ubuntu": { "cmds": [ - "sudo apt-get install -yq pkg-config libfreetype-dev git" + "sudo-apt-workspace install -yq pkg-config libfreetype-dev git" ] }, "fedora": { "cmds": [ - "sudo dnf install -y pkg-config freetype-devel git" + "sudo-dnf-workspace install -y pkg-config freetype-devel git" ] } } diff --git a/configs/flutter-engine-windows.json b/configs/flutter-engine-windows.json index 524581f..4ff0289 100644 --- a/configs/flutter-engine-windows.json +++ b/configs/flutter-engine-windows.json @@ -10,7 +10,7 @@ ], "type": "dependency", "env": { - "PATH": "${FLUTTER_WORKSPACE}/app/depot_tools;${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-ninja;${PATH}", + "PATH": "${FLUTTER_WORKSPACE}/app/depot_tools;${FLUTTER_WORKSPACE}/.tmp/toolchain-common-ninja;${PATH}", "RUNTIME_MODE": "debug", "ENGINE_ROOT": "${FLUTTER_WORKSPACE}/flutter", "VPYTHON_VIRTUALENV_ROOT": "${ENGINE_ROOT}/.vpython", diff --git a/configs/flutter-engine.json b/configs/flutter-engine.json index 91f97ee..9dc47a8 100644 --- a/configs/flutter-engine.json +++ b/configs/flutter-engine.json @@ -47,19 +47,19 @@ "aarch64": { "ubuntu": { "cmds": [ - "sudo apt-get install -yq pkg-config libfreetype-dev git" + "sudo-apt-workspace install -yq pkg-config libfreetype-dev git" ] } }, "x86_64": { "ubuntu": { "cmds": [ - "sudo apt-get install -yq pkg-config libfreetype-dev git" + "sudo-apt-workspace install -yq pkg-config libfreetype-dev git" ] }, "fedora": { "cmds": [ - "sudo dnf install -y pkg-config freetype-devel git" + "sudo-dnf-workspace install -y pkg-config freetype-devel git" ] } } diff --git a/configs/ivi-extension.json b/configs/ivi-extension.json index b5907f0..1465763 100644 --- a/configs/ivi-extension.json +++ b/configs/ivi-extension.json @@ -12,8 +12,8 @@ ], "type": "dependency", "env": { - "PATH": "${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-ninja:${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-cmake/bin:$PATH", - "LD_LIBRARY_PATH": "${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-cmake/lib", + "PATH": "${FLUTTER_WORKSPACE}/.tmp/toolchain-common-ninja:${FLUTTER_WORKSPACE}/.tmp/toolchain-common-cmake/bin:$PATH", + "LD_LIBRARY_PATH": "${FLUTTER_WORKSPACE}/.tmp/toolchain-common-cmake/lib", "WAYLAND_IVI_EXTENSION_SRC_DIR": "${FLUTTER_WORKSPACE}/app/wayland-ivi-extension", "WAYLAND_IVI_EXTENSION_BUILD_DIR": "${FLUTTER_WORKSPACE}/app/wayland-ivi-extension/build_ivi_extension", "WAYLAND_IVI_EXTENSION_CMAKE_ARGS": "" diff --git a/configs/libcamera_0.5.2.json b/configs/libcamera_0.5.2.json index 08aabf1..852a796 100644 --- a/configs/libcamera_0.5.2.json +++ b/configs/libcamera_0.5.2.json @@ -14,7 +14,7 @@ "env": { "CC": "${LLVM_BINDIR}/clang", "CXX": "${LLVM_BINDIR}/clang++", - "PATH": "${LLVM_BINDIR}:${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-ninja:${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-cmake/bin:$PATH", + "PATH": "${LLVM_BINDIR}:${FLUTTER_WORKSPACE}/.tmp/toolchain-common-ninja:${FLUTTER_WORKSPACE}/.tmp/toolchain-common-cmake/bin:$PATH", "LD_LIBRARY_PATH": "${LLVM_LIBDIR}", "CAMERA_SRC_DIR": "${FLUTTER_WORKSPACE}/app/libcamera", "CAMERA_BUILD_DIR": "${FLUTTER_WORKSPACE}/app/libcamera/buildDir", @@ -33,7 +33,7 @@ "aarch64": { "ubuntu": { "cmds": [ - "sudo apt-get install -yq libjpeg-dev libevent-dev", + "sudo-apt-workspace install -yq libjpeg-dev libevent-dev", "pip3 install jinja2 ply pyyaml meson sphinxcontrib-doxylink" ] } @@ -41,13 +41,13 @@ "x86_64": { "ubuntu": { "cmds": [ - "sudo apt-get install -yq libjpeg-dev libevent-dev", + "sudo-apt-workspace install -yq libjpeg-dev libevent-dev", "pip3 install jinja2 ply pyyaml meson sphinxcontrib-doxylink" ] }, "fedora": { "cmds": [ - "sudo dnf install -y libjpeg-devel libevent-devel", + "sudo-dnf-workspace install -y libjpeg-devel libevent-devel", "pip3 install jinja2 ply pyyaml meson sphinxcontrib-doxylink" ] } diff --git a/configs/maplibre-vulkan.json b/configs/maplibre-vulkan.json index 64bf4d0..f375fa3 100644 --- a/configs/maplibre-vulkan.json +++ b/configs/maplibre-vulkan.json @@ -14,8 +14,8 @@ "env": { "CC": "${LLVM_BINDIR}/clang", "CXX": "${LLVM_BINDIR}/clang++", - "PATH": "${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-ninja:${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-cmake/bin:$PATH", - "LD_LIBRARY_PATH": "${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-cmake/lib", + "PATH": "${FLUTTER_WORKSPACE}/.tmp/toolchain-common-ninja:${FLUTTER_WORKSPACE}/.tmp/toolchain-common-cmake/bin:$PATH", + "LD_LIBRARY_PATH": "${FLUTTER_WORKSPACE}/.tmp/toolchain-common-cmake/lib", "MAPLIBRE_SRC_DIR": "${FLUTTER_WORKSPACE}/app/maplibre-native", "MAPLIBRE_BUILD_DIR": "${FLUTTER_WORKSPACE}/app/maplibre-native/build", "MAPLIBRE_STAGING_DIR": "${FLUTTER_WORKSPACE}/app/maplibre-native/staging", @@ -33,19 +33,19 @@ "aarch64": { "ubuntu": { "cmds": [ - "sudo apt-get install -yq libwebp-dev libuv1-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libicu-dev" + "sudo-apt-workspace install -yq libwebp-dev libuv1-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libicu-dev" ] } }, "x86_64": { "ubuntu": { "cmds": [ - "sudo apt-get install -yq libwebp-dev libuv1-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libicu-dev" + "sudo-apt-workspace install -yq libwebp-dev libuv1-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libicu-dev" ] }, "fedora": { "cmds": [ - "sudo dnf install -y libwebp-devel libuv-devel libcurl-devel libjpeg-devel libpng-devel libicu-devel" + "sudo-dnf-workspace install -y libwebp-devel libuv-devel libcurl-devel libjpeg-devel libpng-devel libicu-devel" ] } } diff --git a/configs/pdfium_139.0.7228.0.json b/configs/pdfium_139.0.7228.0.json index 1d49983..b631849 100644 --- a/configs/pdfium_139.0.7228.0.json +++ b/configs/pdfium_139.0.7228.0.json @@ -45,12 +45,12 @@ "darwin": {}, "fedora": { "cmds": [ - "sudo dnf install -y nasm" + "sudo-dnf-workspace install -y nasm" ] }, "ubuntu": { "cmds": [ - "sudo apt-get install -yq nasm" + "sudo-apt-workspace install -yq nasm" ] } } diff --git a/configs/rive-text.json b/configs/rive-text.json index 7e89608..fb4bd65 100644 --- a/configs/rive-text.json +++ b/configs/rive-text.json @@ -16,8 +16,8 @@ "VERSION": "0.8.4", "CC": "${LLVM_BINDIR}/clang", "CXX": "${LLVM_BINDIR}/clang++", - "PATH": "${LLVM_BINDIR}:${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-ninja:${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-cmake/bin:$PATH", - "LD_LIBRARY_PATH": "${LLVM_LIBDIR}:${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-cmake/lib", + "PATH": "${LLVM_BINDIR}:${FLUTTER_WORKSPACE}/.tmp/toolchain-common-ninja:${FLUTTER_WORKSPACE}/.tmp/toolchain-common-cmake/bin:$PATH", + "LD_LIBRARY_PATH": "${LLVM_LIBDIR}:${FLUTTER_WORKSPACE}/.tmp/toolchain-common-cmake/lib", "RIVE_TEXT_SRC_DIR": "${FLUTTER_WORKSPACE}/app/rive-common", "RIVE_TEXT_BUILD_DIR": "${RIVE_TEXT_SRC_DIR}/build", "RIVE_TEXT_CMAKE_ARGS": "-D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -D ENABLE_LTO=ON" diff --git a/configs/sentry-native_0.9.0.json b/configs/sentry-native_0.9.0.json index 04d9b6a..9865fe2 100644 --- a/configs/sentry-native_0.9.0.json +++ b/configs/sentry-native_0.9.0.json @@ -14,8 +14,8 @@ "env": { "CC": "${LLVM_BINDIR}/clang", "CXX": "${LLVM_BINDIR}/clang++", - "PATH": "${FLUTTER_WORKSPACE}/app/depot_tools:${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-ninja:${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-cmake/bin:$PATH", - "LD_LIBRARY_PATH": "${LLVM_LIBDIR}:${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-cmake/lib", + "PATH": "${FLUTTER_WORKSPACE}/app/depot_tools:${FLUTTER_WORKSPACE}/.tmp/toolchain-common-ninja:${FLUTTER_WORKSPACE}/.tmp/toolchain-common-cmake/bin:$PATH", + "LD_LIBRARY_PATH": "${LLVM_LIBDIR}:${FLUTTER_WORKSPACE}/.tmp/toolchain-common-cmake/lib", "SENTRY_NATIVE_SRC_DIR": "${FLUTTER_WORKSPACE}/app/sentry-native", "SENTRY_NATIVE_BUILD_DIR": "${SENTRY_NATIVE_SRC_DIR}/build/${_BUILD_TYPE}", "SENTRY_NATIVE_STAGING_DIR": "${SENTRY_NATIVE_BUILD_DIR}/staging", diff --git a/configs/toolchain-common-cmake.json b/configs/toolchain-common-cmake.json index 49b0e71..efca460 100644 --- a/configs/toolchain-common-cmake.json +++ b/configs/toolchain-common-cmake.json @@ -22,12 +22,12 @@ "append_to_runtime_env": { "common": [ "# toolchain-common-cmake", - "export PATH=$FLUTTER_WORKSPACE/.config/flutter_workspace/toolchain-common-cmake/bin:$PATH", + "export PATH=$FLUTTER_WORKSPACE/.tmp/toolchain-common-cmake/bin:$PATH", "export CMAKE_BUILD_PARALLEL_LEVEL=${_MAX_THREADS}" ], "windows": [ "# toolchain-common-cmake", - "$env:PATH = \"$env:FLUTTER_WORKSPACE\\.config\\flutter_workspace\\toolchain-common-cmake\\bin;$env:PATH\"", + "$env:PATH = \"$env:FLUTTER_WORKSPACE\\.tmp\\toolchain-common-cmake\\bin;$env:PATH\"", "$env:CMAKE_BUILD_PARALLEL_LEVEL = \"$env:_MAX_THREADS\"" ] }, @@ -44,9 +44,9 @@ "sha256": "14e15d0b445dbeac686acc13fe13b3135e8307f69ccf4c5c91403996ce5aa2d4", "post_cmds": [ { - "cwd": "${PLATFORM_ID_DIR}", + "cwd": "${PLATFORM_TMP_DIR}", "cmds": [ - "tar --strip-components=1 -xzf ${PLATFORM_ID_DIR}/artifacts/cmake-${VERSION}.7-linux-${HOST_ARCH}.tar.gz -C ." + "tar --strip-components=1 -xzf ${ARTIFACTS_DIR}/cmake-${VERSION}.7-linux-${HOST_ARCH}.tar.gz -C ." ] } ] @@ -61,9 +61,9 @@ "sha256": "e5b2dc2aefdca10afe09c8fa4ee2bbb4e732665943a94322f99c118781910c3c", "post_cmds": [ { - "cwd": "${PLATFORM_ID_DIR}", + "cwd": "${PLATFORM_TMP_DIR}", "cmds": [ - "tar --strip-components=1 -xzf ${PLATFORM_ID_DIR}/artifacts/cmake-${VERSION}.7-linux-${HOST_ARCH}.tar.gz -C ." + "tar --strip-components=1 -xzf ${ARTIFACTS_DIR}/cmake-${VERSION}.7-linux-${HOST_ARCH}.tar.gz -C ." ] } ] @@ -78,10 +78,10 @@ "sha256": "ab1c7f46a1b1314f9fcb766c2573148679af599d94c5566bc12b8b35bb563362", "post_cmds": [ { - "cwd": "${PLATFORM_ID_DIR}", + "cwd": "${PLATFORM_TMP_DIR}", "cmds": [ - "ls ${PLATFORM_ID_DIR}/artifacts", - "python3 -m zipfile -e \"${PLATFORM_ID_DIR}/artifacts/cmake-${VERSION}.7-windows-x86_64.zip\" ." + "ls ${ARTIFACTS_DIR}", + "python3 -m zipfile -e \"${ARTIFACTS_DIR}/cmake-${VERSION}.7-windows-x86_64.zip\" ." ] } ] @@ -96,9 +96,9 @@ "sha256": "5b72d0dcd66dadbbb90789c70789db92302342cc7b91df62059a26e230544f05", "post_cmds": [ { - "cwd": "${PLATFORM_ID_DIR}", + "cwd": "${PLATFORM_TMP_DIR}", "cmds": [ - "python3 -m zipfile -e \"${PLATFORM_ID_DIR}/artifacts/cmake-${VERSION}.7-windows-arm64.zip\" ." + "python3 -m zipfile -e \"${ARTIFACTS_DIR}/cmake-${VERSION}.7-windows-arm64.zip\" ." ] } ] diff --git a/configs/toolchain-common-ninja.json b/configs/toolchain-common-ninja.json index bcfb0ad..3aaf7c9 100644 --- a/configs/toolchain-common-ninja.json +++ b/configs/toolchain-common-ninja.json @@ -22,11 +22,11 @@ "append_to_runtime_env": { "common": [ "# toolchain-common-ninja", - "export PATH=$FLUTTER_WORKSPACE/.config/flutter_workspace/toolchain-common-ninja:$PATH" + "export PATH=$FLUTTER_WORKSPACE/.tmp/toolchain-common-ninja:$PATH" ], "windows": [ "# toolchain-common-ninja", - "$env:PATH = \"$env:FLUTTER_WORKSPACE\\.config\\flutter_workspace\\toolchain-common-ninja;$env:PATH\"" + "$env:PATH = \"$env:FLUTTER_WORKSPACE\\.tmp\\toolchain-common-ninja;$env:PATH\"" ] }, "runtime": { @@ -42,9 +42,9 @@ "sha1": "0adea0f99aceafdac3361d091bc90b9dab722f2b", "post_cmds": [ { - "cwd": "${PLATFORM_ID_DIR}", + "cwd": "${PLATFORM_TMP_DIR}", "cmds": [ - "python3 -m zipfile -e \"${PLATFORM_ID_DIR}/artifacts/${ARCHIVE_FILE}\" .", + "python3 -m zipfile -e \"${ARTIFACTS_DIR}/${ARCHIVE_FILE}\" .", "chmod +x ninja" ] } @@ -60,9 +60,9 @@ "sha1": "31ce26f7fc77df4dcbc6ca56cc3b9794778e4ea5", "post_cmds": [ { - "cwd": "${PLATFORM_ID_DIR}", + "cwd": "${PLATFORM_TMP_DIR}", "cmds": [ - "python3 -m zipfile -e \"${PLATFORM_ID_DIR}/artifacts/${ARCHIVE_FILE}\" .", + "python3 -m zipfile -e \"${ARTIFACTS_DIR}/${ARCHIVE_FILE}\" .", "chmod +x ninja" ] } @@ -78,9 +78,9 @@ "sha256": "f550fec705b6d6ff58f2db3c374c2277a37691678d6aba463adcbb129108467a", "post_cmds": [ { - "cwd": "${PLATFORM_ID_DIR}", + "cwd": "${PLATFORM_TMP_DIR}", "cmds": [ - "python3.exe -m zipfile -e \"${PLATFORM_ID_DIR}/artifacts/${ARCHIVE_FILE}\" ." + "python3.exe -m zipfile -e \"${ARTIFACTS_DIR}/${ARCHIVE_FILE}\" ." ] } ] @@ -95,9 +95,9 @@ "sha256": "79c96a50e0deafec212cfa85aa57c6b74003f52d9d1673ddcd1eab1c958c5900", "post_cmds": [ { - "cwd": "${PLATFORM_ID_DIR}", + "cwd": "${PLATFORM_TMP_DIR}", "cmds": [ - "python3.exe -m zipfile -e \"${PLATFORM_ID_DIR}/artifacts/${ARCHIVE_FILE}\" ." + "python3.exe -m zipfile -e \"${ARTIFACTS_DIR}/${ARCHIVE_FILE}\" ." ] } ] diff --git a/configs/toolchain-llvm14_14.0.6.json b/configs/toolchain-llvm14_14.0.6.json index 321238f..c057708 100644 --- a/configs/toolchain-llvm14_14.0.6.json +++ b/configs/toolchain-llvm14_14.0.6.json @@ -15,7 +15,7 @@ "toolchain": "llvm", "env": { "LLVM_VERSION": "14.0.6", - "LLVM_BASE_DIR": "${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-llvm-${LLVM_VERSION}", + "LLVM_BASE_DIR": "${FLUTTER_WORKSPACE}/.tmp/toolchain-llvm-${LLVM_VERSION}", "LLVM_BINDIR": "${LLVM_BASE_DIR}/bin", "LLVM_LIBDIR": "${LLVM_BASE_DIR}/lib", "LLVM_CONFIG": "${LLVM_BINDIR}/llvm-config", @@ -50,10 +50,10 @@ "cwd": "${LLVM_BASE_DIR}", "shell": true, "cmds": [ - "if [ $(lsb_release -rs) = \"22.04\" ]; then sudo apt-get install -yq libtinfo5; fi", - "sudo apt-get remove libunwind-* -yq || true", + "if [ $(lsb_release -rs) = \"22.04\" ]; then sudo-apt-workspace install -yq libtinfo5; fi", + "sudo-apt-workspace remove libunwind-* -yq || true", "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/clang+llvm-${LLVM_VERSION}-aarch64-linux-gnu.tar.xz\" --strip-components=1", + "tar -xf \"${ARTIFACTS_DIR}/clang+llvm-${LLVM_VERSION}-aarch64-linux-gnu.tar.xz\" --strip-components=1", "${LLVM_BINDIR}/llvm-ar qsL ${LLVM_BASE_DIR}/lib/libc++.a ${LLVM_BASE_DIR}/lib/libc++abi.a" ] } @@ -79,7 +79,7 @@ "shell": true, "cmds": [ "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/clang+llvm-${LLVM_VERSION}-arm64-apple-darwin22.3.0.tar.xz\" --strip-components=1" + "tar -xf \"${ARTIFACTS_DIR}/clang+llvm-${LLVM_VERSION}-arm64-apple-darwin22.3.0.tar.xz\" --strip-components=1" ] } ] @@ -97,7 +97,7 @@ "shell": true, "cmds": [ "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/clang+llvm-${LLVM_VERSION}-x86_64-apple-darwin.tar.xz\" --strip-components=1" + "tar -xf \"${ARTIFACTS_DIR}/clang+llvm-${LLVM_VERSION}-x86_64-apple-darwin.tar.xz\" --strip-components=1" ] } ] @@ -123,7 +123,7 @@ "20.04": { "shell": true, "cmds": [ - "sudo apt-get install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", + "sudo-apt-workspace install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", "wget https://apt.llvm.org/llvm.sh", "chmod +x llvm.sh", "sudo ./llvm.sh ${PREFER_LLVM} all", @@ -134,7 +134,7 @@ "22.04": { "shell": true, "cmds": [ - "sudo apt-get install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", + "sudo-apt-workspace install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", "wget https://apt.llvm.org/llvm.sh", "chmod +x llvm.sh", "sudo ./llvm.sh ${PREFER_LLVM} all", diff --git a/configs/toolchain-llvm15_15.0.6.json b/configs/toolchain-llvm15_15.0.6.json index ce9fb8f..4c3f05f 100644 --- a/configs/toolchain-llvm15_15.0.6.json +++ b/configs/toolchain-llvm15_15.0.6.json @@ -15,7 +15,7 @@ "toolchain": "llvm", "env": { "LLVM_VERSION": "15.0.6", - "LLVM_BASE_DIR": "${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-llvm-${LLVM_VERSION}", + "LLVM_BASE_DIR": "${FLUTTER_WORKSPACE}/.tmp/toolchain-llvm-${LLVM_VERSION}", "LLVM_BINDIR": "${LLVM_BASE_DIR}/bin", "LLVM_LIBDIR": "${LLVM_BASE_DIR}/lib", "LLVM_CONFIG": "${LLVM_BINDIR}/llvm-config", @@ -50,7 +50,7 @@ "shell": true, "cmds": [ "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/clang+llvm-${LLVM_VERSION}-arm64-apple-darwin21.0.tar.xz\" --strip-components=1" + "tar -xf \"${ARTIFACTS_DIR}/clang+llvm-${LLVM_VERSION}-arm64-apple-darwin21.0.tar.xz\" --strip-components=1" ] } ] @@ -68,10 +68,10 @@ "cwd": "${LLVM_BASE_DIR}", "shell": true, "cmds": [ - "if [ $(lsb_release -rs) = \"22.04\" ]; then sudo apt-get install -yq libtinfo5; fi", - "sudo apt-get remove libunwind-* -yq || true", + "if [ $(lsb_release -rs) = \"22.04\" ]; then sudo-apt-workspace install -yq libtinfo5; fi", + "sudo-apt-workspace remove libunwind-* -yq || true", "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/clang+llvm-${LLVM_VERSION}-aarch64-linux-gnu.tar.xz\" --strip-components=1", + "tar -xf \"${ARTIFACTS_DIR}/clang+llvm-${LLVM_VERSION}-aarch64-linux-gnu.tar.xz\" --strip-components=1", "${LLVM_BINDIR}/llvm-ar qsL ${LLVM_BASE_DIR}/lib/aarch64-unknown-linux-gnu/libc++.a ${LLVM_BASE_DIR}/lib/aarch64-unknown-linux-gnu/libc++abi.a" ] } @@ -90,10 +90,10 @@ "cwd": "${LLVM_BASE_DIR}", "shell": true, "cmds": [ - "if [ $(lsb_release -rs) = \"22.04\" ]; then sudo apt-get install -yq libtinfo5; fi", - "sudo apt-get remove libunwind-* -yq || true", + "if [ $(lsb_release -rs) = \"22.04\" ]; then sudo-apt-workspace install -yq libtinfo5; fi", + "sudo-apt-workspace remove libunwind-* -yq || true", "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/clang+llvm-${LLVM_VERSION}-x86_64-linux-gnu-ubuntu-18.04.tar.xz\" --strip-components=1", + "tar -xf \"${ARTIFACTS_DIR}/clang+llvm-${LLVM_VERSION}-x86_64-linux-gnu-ubuntu-18.04.tar.xz\" --strip-components=1", "${LLVM_BINDIR}/llvm-ar qsL ${LLVM_BASE_DIR}/lib/x86_64-unknown-linux-gnu/libc++.a ${LLVM_BASE_DIR}/lib/x86_64-unknown-linux-gnu/libc++abi.a" ] } diff --git a/configs/toolchain-llvm16_16.0.4.json b/configs/toolchain-llvm16_16.0.4.json index caea5a2..a0ffc08 100644 --- a/configs/toolchain-llvm16_16.0.4.json +++ b/configs/toolchain-llvm16_16.0.4.json @@ -15,7 +15,7 @@ "toolchain": "llvm", "env": { "LLVM_VERSION": "16.0.4", - "LLVM_BASE_DIR": "${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-llvm-${LLVM_VERSION}", + "LLVM_BASE_DIR": "${FLUTTER_WORKSPACE}/.tmp/toolchain-llvm-${LLVM_VERSION}", "LLVM_BINDIR": "${LLVM_BASE_DIR}/bin", "LLVM_LIBDIR": "${LLVM_BASE_DIR}/lib", "LLVM_CONFIG": "${LLVM_BINDIR}/llvm-config", @@ -50,7 +50,7 @@ "shell": true, "cmds": [ "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/clang+llvm-${LLVM_VERSION}-arm64-apple-darwin22.0.tar.xz\" --strip-components=1" + "tar -xf \"${ARTIFACTS_DIR}/clang+llvm-${LLVM_VERSION}-arm64-apple-darwin22.0.tar.xz\" --strip-components=1" ] } ] @@ -68,9 +68,9 @@ "cwd": "${LLVM_BASE_DIR}", "shell": true, "cmds": [ - "sudo apt-get remove libunwind-* -yq || true", + "sudo-apt-workspace remove libunwind-* -yq || true", "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/clang+llvm-${LLVM_VERSION}-aarch64-linux-gnu.tar.xz\" --strip-components=1", + "tar -xf \"${ARTIFACTS_DIR}/clang+llvm-${LLVM_VERSION}-aarch64-linux-gnu.tar.xz\" --strip-components=1", "${LLVM_BINDIR}/llvm-ar qsL ${LLVM_BASE_DIR}/lib/aarch64-unknown-linux-gnu/libc++.a ${LLVM_BASE_DIR}/lib/aarch64-unknown-linux-gnu/libc++abi.a" ] } @@ -89,9 +89,9 @@ "cwd": "${LLVM_BASE_DIR}", "shell": true, "cmds": [ - "sudo apt-get remove libunwind-* -yq || true", + "sudo-apt-workspace remove libunwind-* -yq || true", "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/clang+llvm-${LLVM_VERSION}-x86_64-linux-gnu-ubuntu-22.04.tar.xz\" --strip-components=1", + "tar -xf \"${ARTIFACTS_DIR}/clang+llvm-${LLVM_VERSION}-x86_64-linux-gnu-ubuntu-22.04.tar.xz\" --strip-components=1", "${LLVM_BINDIR}/llvm-ar qsL ${LLVM_BASE_DIR}/lib/x86_64-unknown-linux-gnu/libc++.a ${LLVM_BASE_DIR}/lib/x86_64-unknown-linux-gnu/libc++abi.a" ] } @@ -108,7 +108,7 @@ "shell": true, "20.04": { "cmds": [ - "sudo apt-get install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", + "sudo-apt-workspace install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", "wget https://apt.llvm.org/llvm.sh", "chmod +x llvm.sh", "sudo ./llvm.sh ${PREFER_LLVM} all", @@ -129,7 +129,7 @@ "20.04": { "shell": true, "cmds": [ - "sudo apt-get install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", + "sudo-apt-workspace install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", "wget https://apt.llvm.org/llvm.sh", "chmod +x llvm.sh", "sudo ./llvm.sh ${PREFER_LLVM} all", diff --git a/configs/toolchain-llvm17_17.0.6.json b/configs/toolchain-llvm17_17.0.6.json index 8e2bf8f..0ae924c 100644 --- a/configs/toolchain-llvm17_17.0.6.json +++ b/configs/toolchain-llvm17_17.0.6.json @@ -15,7 +15,7 @@ "toolchain": "llvm", "env": { "LLVM_VERSION": "17.0.6", - "LLVM_BASE_DIR": "${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-llvm-${LLVM_VERSION}", + "LLVM_BASE_DIR": "${FLUTTER_WORKSPACE}/.tmp/toolchain-llvm-${LLVM_VERSION}", "LLVM_BINDIR": "${LLVM_BASE_DIR}/bin", "LLVM_LIBDIR": "${LLVM_BASE_DIR}/lib", "LLVM_CONFIG": "${LLVM_BINDIR}/llvm-config", @@ -50,9 +50,9 @@ "cwd": "${LLVM_BASE_DIR}", "shell": true, "cmds": [ - "sudo apt-get remove libunwind-* -yq || true", + "sudo-apt-workspace remove libunwind-* -yq || true", "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/clang+llvm-${LLVM_VERSION}-aarch64-linux-gnu.tar.xz\" --strip-components=1", + "tar -xf \"${ARTIFACTS_DIR}/clang+llvm-${LLVM_VERSION}-aarch64-linux-gnu.tar.xz\" --strip-components=1", "${LLVM_BINDIR}/llvm-ar qsL ${LLVM_BASE_DIR}/lib/aarch64-unknown-linux-gnu/libc++.a ${LLVM_BASE_DIR}/lib/aarch64-unknown-linux-gnu/libc++abi.a" ] } @@ -71,7 +71,7 @@ "shell": true, "cmds": [ "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/clang+llvm-${LLVM_VERSION}-arm64-apple-darwin22.0.tar.xz\" --strip-components=1" + "tar -xf \"${ARTIFACTS_DIR}/clang+llvm-${LLVM_VERSION}-arm64-apple-darwin22.0.tar.xz\" --strip-components=1" ] } ] @@ -89,9 +89,9 @@ "cwd": "${LLVM_BASE_DIR}", "shell": true, "cmds": [ - "sudo apt-get remove libunwind-* -yq || true", + "sudo-apt-workspace remove libunwind-* -yq || true", "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/clang+llvm-17.0.6-x86_64-linux-gnu-ubuntu-22.04.tar.xz\" --strip-components=1", + "tar -xf \"${ARTIFACTS_DIR}/clang+llvm-17.0.6-x86_64-linux-gnu-ubuntu-22.04.tar.xz\" --strip-components=1", "${LLVM_BINDIR}/llvm-ar qsL ${LLVM_BASE_DIR}/lib/x86_64-unknown-linux-gnu/libc++.a ${LLVM_BASE_DIR}/lib/x86_64-unknown-linux-gnu/libc++abi.a" ] } @@ -108,7 +108,7 @@ "shell": true, "20.04": { "cmds": [ - "sudo apt-get install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", + "sudo-apt-workspace install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", "wget https://apt.llvm.org/llvm.sh", "chmod +x llvm.sh", "sudo ./llvm.sh ${PREFER_LLVM} all", @@ -129,7 +129,7 @@ "20.04": { "shell": true, "cmds": [ - "sudo apt-get install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", + "sudo-apt-workspace install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", "wget https://apt.llvm.org/llvm.sh", "chmod +x llvm.sh", "sudo ./llvm.sh ${PREFER_LLVM} all", diff --git a/configs/toolchain-llvm18_18.1.8.json b/configs/toolchain-llvm18_18.1.8.json index 56fe069..63a30f6 100644 --- a/configs/toolchain-llvm18_18.1.8.json +++ b/configs/toolchain-llvm18_18.1.8.json @@ -16,7 +16,7 @@ "toolchain": "llvm", "env": { "LLVM_VERSION": "18.1.8", - "LLVM_BASE_DIR": "${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-llvm-${LLVM_VERSION}", + "LLVM_BASE_DIR": "${FLUTTER_WORKSPACE}/.tmp/toolchain-llvm-${LLVM_VERSION}", "LLVM_BINDIR": "${LLVM_BASE_DIR}/bin", "LLVM_LIBDIR": "${LLVM_BASE_DIR}/lib", "LLVM_CONFIG": "${LLVM_BINDIR}/llvm-config", @@ -52,10 +52,10 @@ "cwd": "${LLVM_BASE_DIR}", "shell": true, "cmds": [ - "if [ $(lsb_release -rs) = \"22.04\" ]; then sudo apt-get install -yq libtinfo5; fi", - "sudo apt-get remove libunwind-* -yq || true", + "if [ $(lsb_release -rs) = \"22.04\" ]; then sudo-apt-workspace install -yq libtinfo5; fi", + "sudo-apt-workspace remove libunwind-* -yq || true", "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/clang+llvm-${LLVM_VERSION}-aarch64-linux-gnu.tar.xz\" --strip-components=1", + "tar -xf \"${ARTIFACTS_DIR}/clang+llvm-${LLVM_VERSION}-aarch64-linux-gnu.tar.xz\" --strip-components=1", "${LLVM_BINDIR}/llvm-ar qsL ${LLVM_BASE_DIR}/lib/aarch64-unknown-linux-gnu/libc++.a ${LLVM_BASE_DIR}/lib/aarch64-unknown-linux-gnu/libc++abi.a" ] } @@ -71,12 +71,12 @@ "cwd": "${LLVM_BASE_DIR}", "shell": true, "cmds": [ - "sudo dnf install ncurses-compat-libs -yq", + "sudo-dnf-workspace install ncurses-compat-libs -yq", "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/clang+llvm-${LLVM_VERSION}-aarch64-linux-gnu.tar.xz\" --strip-components=1", + "tar -xf \"${ARTIFACTS_DIR}/clang+llvm-${LLVM_VERSION}-aarch64-linux-gnu.tar.xz\" --strip-components=1", "${LLVM_BINDIR}/llvm-ar qsL ${LLVM_BASE_DIR}/lib/aarch64-unknown-linux-gnu/libc++.a ${LLVM_BASE_DIR}/lib/aarch64-unknown-linux-gnu/libc++abi.a", - "sudo dnf -y update", - "sudo dnf install -y libstdc++ libstdc++-devel libstdc++-static" + "sudo-dnf-workspace -y update", + "sudo-dnf-workspace install -y libstdc++ libstdc++-devel libstdc++-static" ] } ] @@ -94,7 +94,7 @@ "shell": true, "cmds": [ "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/clang+llvm-${LLVM_VERSION}-arm64-apple-macos11.tar.xz\" --strip-components=1" + "tar -xf \"${ARTIFACTS_DIR}/clang+llvm-${LLVM_VERSION}-arm64-apple-macos11.tar.xz\" --strip-components=1" ] } ] @@ -112,11 +112,11 @@ "cwd": "${LLVM_BASE_DIR}", "shell": true, "cmds": [ - "if [ $(lsb_release -rs) = \"22.04\" ]; then sudo apt-get install -yq libtinfo5; fi", + "if [ $(lsb_release -rs) = \"22.04\" ]; then sudo-apt-workspace install -yq libtinfo5; fi", "if [ $(lsb_release -rs) = \"24.04\" ]; then wget http://security.ubuntu.com/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb -O /tmp/libtinfo5_6.3-2ubuntu0.1_amd64.deb && sudo apt install /tmp/libtinfo5_6.3-2ubuntu0.1_amd64.deb; fi", - "sudo apt-get remove libunwind-* -yq || true", + "sudo-apt-workspace remove libunwind-* -yq || true", "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/clang+llvm-${LLVM_VERSION}-x86_64-linux-gnu-ubuntu-18.04.tar.xz\" --strip-components=1", + "tar -xf \"${ARTIFACTS_DIR}/clang+llvm-${LLVM_VERSION}-x86_64-linux-gnu-ubuntu-18.04.tar.xz\" --strip-components=1", "${LLVM_BINDIR}/llvm-ar qsL ${LLVM_BASE_DIR}/lib/x86_64-unknown-linux-gnu/libc++.a ${LLVM_BASE_DIR}/lib/x86_64-unknown-linux-gnu/libc++abi.a" ] } @@ -132,12 +132,12 @@ "cwd": "${LLVM_BASE_DIR}", "shell": true, "cmds": [ - "sudo dnf install ncurses-compat-libs -yq", + "sudo-dnf-workspace install ncurses-compat-libs -yq", "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/clang+llvm-${LLVM_VERSION}-x86_64-linux-gnu-ubuntu-18.04.tar.xz\" --strip-components=1", + "tar -xf \"${ARTIFACTS_DIR}/clang+llvm-${LLVM_VERSION}-x86_64-linux-gnu-ubuntu-18.04.tar.xz\" --strip-components=1", "${LLVM_BINDIR}/llvm-ar qsL ${LLVM_BASE_DIR}/lib/x86_64-unknown-linux-gnu/libc++.a ${LLVM_BASE_DIR}/lib/x86_64-unknown-linux-gnu/libc++abi.a", - "sudo dnf -y update", - "sudo dnf install -y libstdc++ libstdc++-devel libstdc++-static" + "sudo-dnf-workspace -y update", + "sudo-dnf-workspace install -y libstdc++ libstdc++-devel libstdc++-static" ] } ] @@ -153,7 +153,7 @@ "shell": true, "20.04": { "cmds": [ - "sudo apt-get install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", + "sudo-apt-workspace install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", "wget https://apt.llvm.org/llvm.sh", "chmod +x llvm.sh", "sudo ./llvm.sh ${PREFER_LLVM} all", @@ -168,7 +168,7 @@ "20.04": { "shell": true, "cmds": [ - "sudo apt-get install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", + "sudo-apt-workspace install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", "wget https://apt.llvm.org/llvm.sh", "chmod +x llvm.sh", "sudo ./llvm.sh ${PREFER_LLVM} all", diff --git a/configs/toolchain-llvm19_19.1.7.json b/configs/toolchain-llvm19_19.1.7.json index 22b77da..94bafe7 100644 --- a/configs/toolchain-llvm19_19.1.7.json +++ b/configs/toolchain-llvm19_19.1.7.json @@ -16,7 +16,7 @@ "toolchain": "llvm", "env": { "LLVM_VERSION": "19.1.7", - "LLVM_BASE_DIR": "${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-llvm-${LLVM_VERSION}", + "LLVM_BASE_DIR": "${FLUTTER_WORKSPACE}/.tmp/toolchain-llvm-${LLVM_VERSION}", "LLVM_BINDIR": "${LLVM_BASE_DIR}/bin", "LLVM_LIBDIR": "${LLVM_BASE_DIR}/lib", "LLVM_CONFIG": "${LLVM_BINDIR}/llvm-config", @@ -51,9 +51,9 @@ "cwd": "${LLVM_BASE_DIR}", "shell": true, "cmds": [ - "sudo apt-get remove libunwind-* -yq || true", + "sudo-apt-workspace remove libunwind-* -yq || true", "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/clang+llvm-${LLVM_VERSION}-aarch64-linux-gnu.tar.xz\" --strip-components=1", + "tar -xf \"${ARTIFACTS_DIR}/clang+llvm-${LLVM_VERSION}-aarch64-linux-gnu.tar.xz\" --strip-components=1", "${LLVM_BINDIR}/llvm-ar qsL ${LLVM_BASE_DIR}/lib/aarch64-unknown-linux-gnu/libc++.a ${LLVM_BASE_DIR}/lib/aarch64-unknown-linux-gnu/libc++abi.a" ] } @@ -70,10 +70,10 @@ "shell": true, "cmds": [ "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/clang+llvm-${LLVM_VERSION}-aarch64-linux-gnu.tar.xz\" --strip-components=1", + "tar -xf \"${ARTIFACTS_DIR}/clang+llvm-${LLVM_VERSION}-aarch64-linux-gnu.tar.xz\" --strip-components=1", "${LLVM_BINDIR}/llvm-ar qsL ${LLVM_BASE_DIR}/lib/aarch64-unknown-linux-gnu/libc++.a ${LLVM_BASE_DIR}/lib/aarch64-unknown-linux-gnu/libc++abi.a", - "sudo dnf -y update", - "sudo dnf install -y libstdc++ libstdc++-devel libstdc++-static" + "sudo-dnf-workspace -y update", + "sudo-dnf-workspace install -y libstdc++ libstdc++-devel libstdc++-static" ] } ] @@ -91,7 +91,7 @@ "shell": true, "cmds": [ "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/LLVM-${LLVM_VERSION}-macOS-ARM64.tar.xz\" --strip-components=1" + "tar -xf \"${ARTIFACTS_DIR}/LLVM-${LLVM_VERSION}-macOS-ARM64.tar.xz\" --strip-components=1" ] } ] @@ -110,9 +110,9 @@ "cwd": "${LLVM_BASE_DIR}", "shell": true, "cmds": [ - "sudo apt-get remove libunwind-* -yq || true", + "sudo-apt-workspace remove libunwind-* -yq || true", "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/LLVM-${LLVM_VERSION}-Linux-X64.tar.xz\" --strip-components=1", + "tar -xf \"${ARTIFACTS_DIR}/LLVM-${LLVM_VERSION}-Linux-X64.tar.xz\" --strip-components=1", "${LLVM_BINDIR}/llvm-ar qsL ${LLVM_BASE_DIR}/lib/x86_64-unknown-linux-gnu/libc++.a ${LLVM_BASE_DIR}/lib/x86_64-unknown-linux-gnu/libc++abi.a" ] } @@ -130,10 +130,10 @@ "shell": true, "cmds": [ "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/LLVM-${LLVM_VERSION}-Linux-X64.tar.xz\" --strip-components=1", + "tar -xf \"${ARTIFACTS_DIR}/LLVM-${LLVM_VERSION}-Linux-X64.tar.xz\" --strip-components=1", "${LLVM_BINDIR}/llvm-ar qsL ${LLVM_BASE_DIR}/lib/x86_64-unknown-linux-gnu/libc++.a ${LLVM_BASE_DIR}/lib/x86_64-unknown-linux-gnu/libc++abi.a", - "sudo dnf -y update", - "sudo dnf install -y libstdc++ libstdc++-devel libstdc++-static" + "sudo-dnf-workspace -y update", + "sudo-dnf-workspace install -y libstdc++ libstdc++-devel libstdc++-static" ] } ] @@ -149,7 +149,7 @@ "shell": true, "cmds": [ "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/LLVM-${LLVM_VERSION}-macOS-X64.tar.xz\" --strip-components=1" + "tar -xf \"${ARTIFACTS_DIR}/LLVM-${LLVM_VERSION}-macOS-X64.tar.xz\" --strip-components=1" ] } ] @@ -165,7 +165,7 @@ "shell": true, "20.04": { "cmds": [ - "sudo apt-get install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", + "sudo-apt-workspace install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", "wget https://apt.llvm.org/llvm.sh", "chmod +x llvm.sh", "sudo ./llvm.sh ${PREFER_LLVM} all", @@ -186,7 +186,7 @@ "20.04": { "shell": true, "cmds": [ - "sudo apt-get install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", + "sudo-apt-workspace install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", "wget https://apt.llvm.org/llvm.sh", "chmod +x llvm.sh", "sudo ./llvm.sh ${PREFER_LLVM} all", diff --git a/configs/toolchain-llvm20_20.1.8.json b/configs/toolchain-llvm20_20.1.8.json index 0995025..64d9e40 100644 --- a/configs/toolchain-llvm20_20.1.8.json +++ b/configs/toolchain-llvm20_20.1.8.json @@ -16,7 +16,7 @@ "toolchain": "llvm", "env": { "LLVM_VERSION": "20.1.8", - "LLVM_BASE_DIR": "${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-llvm-${LLVM_VERSION}", + "LLVM_BASE_DIR": "${FLUTTER_WORKSPACE}/.tmp/toolchain-llvm-${LLVM_VERSION}", "LLVM_BINDIR": "${LLVM_BASE_DIR}/bin", "LLVM_LIBDIR": "${LLVM_BASE_DIR}/lib", "LLVM_CONFIG": "${LLVM_BINDIR}/llvm-config", @@ -51,9 +51,9 @@ "cwd": "${LLVM_BASE_DIR}", "shell": true, "cmds": [ - "sudo apt-get remove libunwind-* -yq || true", + "sudo-apt-workspace remove libunwind-* -yq || true", "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/LLVM-${LLVM_VERSION}-Linux-ARM64.tar.xz\" --strip-components=1", + "tar -xf \"${ARTIFACTS_DIR}/LLVM-${LLVM_VERSION}-Linux-ARM64.tar.xz\" --strip-components=1", "${LLVM_BINDIR}/llvm-ar qsL ${LLVM_BASE_DIR}/lib/aarch64-unknown-linux-gnu/libc++.a ${LLVM_BASE_DIR}/lib/aarch64-unknown-linux-gnu/libc++abi.a" ] } @@ -70,10 +70,10 @@ "shell": true, "cmds": [ "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/LLVM-${LLVM_VERSION}-Linux-ARM64.tar.xz\" --strip-components=1", + "tar -xf \"${ARTIFACTS_DIR}/LLVM-${LLVM_VERSION}-Linux-ARM64.tar.xz\" --strip-components=1", "${LLVM_BINDIR}/llvm-ar qsL ${LLVM_BASE_DIR}/lib/aarch64-unknown-linux-gnu/libc++.a ${LLVM_BASE_DIR}/lib/aarch64-unknown-linux-gnu/libc++abi.a", - "sudo dnf -y update", - "sudo dnf install -y libstdc++ libstdc++-devel libstdc++-static" + "sudo-dnf-workspace -y update", + "sudo-dnf-workspace install -y libstdc++ libstdc++-devel libstdc++-static" ] } ] @@ -91,7 +91,7 @@ "shell": true, "cmds": [ "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/LLVM-${LLVM_VERSION}-macOS-ARM64.tar.xz\" --strip-components=1" + "tar -xf \"${ARTIFACTS_DIR}/LLVM-${LLVM_VERSION}-macOS-ARM64.tar.xz\" --strip-components=1" ] } ] @@ -109,9 +109,9 @@ "cwd": "${LLVM_BASE_DIR}", "shell": true, "cmds": [ - "sudo apt-get remove libunwind-* -yq || true", + "sudo-apt-workspace remove libunwind-* -yq || true", "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/LLVM-${LLVM_VERSION}-Linux-X64.tar.xz\" --strip-components=1", + "tar -xf \"${ARTIFACTS_DIR}/LLVM-${LLVM_VERSION}-Linux-X64.tar.xz\" --strip-components=1", "${LLVM_BINDIR}/llvm-ar qsL ${LLVM_BASE_DIR}/lib/x86_64-unknown-linux-gnu/libc++.a ${LLVM_BASE_DIR}/lib/x86_64-unknown-linux-gnu/libc++abi.a" ] } @@ -128,10 +128,10 @@ "shell": true, "cmds": [ "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/LLVM-${LLVM_VERSION}-Linux-X64.tar.xz\" --strip-components=1", + "tar -xf \"${ARTIFACTS_DIR}/LLVM-${LLVM_VERSION}-Linux-X64.tar.xz\" --strip-components=1", "${LLVM_BINDIR}/llvm-ar qsL ${LLVM_BASE_DIR}/lib/x86_64-unknown-linux-gnu/libc++.a ${LLVM_BASE_DIR}/lib/x86_64-unknown-linux-gnu/libc++abi.a", - "sudo dnf -y update", - "sudo dnf install -y libstdc++ libstdc++-devel libstdc++-static" + "sudo-dnf-workspace -y update", + "sudo-dnf-workspace install -y libstdc++ libstdc++-devel libstdc++-static" ] } ] @@ -147,7 +147,7 @@ "shell": true, "cmds": [ "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/LLVM-${LLVM_VERSION}-macOS-X64.tar.xz\" --strip-components=1" + "tar -xf \"${ARTIFACTS_DIR}/LLVM-${LLVM_VERSION}-macOS-X64.tar.xz\" --strip-components=1" ] } ] @@ -163,7 +163,7 @@ "shell": true, "20.04": { "cmds": [ - "sudo apt-get install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", + "sudo-apt-workspace install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", "wget https://apt.llvm.org/llvm.sh", "chmod +x llvm.sh", "sudo ./llvm.sh ${PREFER_LLVM} all", @@ -184,7 +184,7 @@ "20.04": { "shell": true, "cmds": [ - "sudo apt-get install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", + "sudo-apt-workspace install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", "wget https://apt.llvm.org/llvm.sh", "chmod +x llvm.sh", "sudo ./llvm.sh ${PREFER_LLVM} all", diff --git a/configs/toolchain-llvm21_21.1.8.json b/configs/toolchain-llvm21_21.1.8.json index a3d8889..44f62d3 100644 --- a/configs/toolchain-llvm21_21.1.8.json +++ b/configs/toolchain-llvm21_21.1.8.json @@ -16,7 +16,7 @@ "toolchain": "llvm", "env": { "LLVM_VERSION": "21.1.8", - "LLVM_BASE_DIR": "${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-llvm-${LLVM_VERSION}", + "LLVM_BASE_DIR": "${FLUTTER_WORKSPACE}/.tmp/toolchain-llvm-${LLVM_VERSION}", "LLVM_BINDIR": "${LLVM_BASE_DIR}/bin", "LLVM_LIBDIR": "${LLVM_BASE_DIR}/lib", "LLVM_CONFIG": "${LLVM_BINDIR}/llvm-config", @@ -51,9 +51,9 @@ "cwd": "${LLVM_BASE_DIR}", "shell": true, "cmds": [ - "sudo apt-get remove libunwind-* -yq || true", + "sudo-apt-workspace remove libunwind-* -yq || true", "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/LLVM-${LLVM_VERSION}-Linux-ARM64.tar.xz\" --strip-components=1", + "tar -xf \"${ARTIFACTS_DIR}/LLVM-${LLVM_VERSION}-Linux-ARM64.tar.xz\" --strip-components=1", "${LLVM_BINDIR}/llvm-ar qsL ${LLVM_BASE_DIR}/lib/aarch64-unknown-linux-gnu/libc++.a ${LLVM_BASE_DIR}/lib/aarch64-unknown-linux-gnu/libc++abi.a" ] } @@ -70,10 +70,10 @@ "shell": true, "cmds": [ "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/LLVM-${LLVM_VERSION}-Linux-ARM64.tar.xz\" --strip-components=1", + "tar -xf \"${ARTIFACTS_DIR}/LLVM-${LLVM_VERSION}-Linux-ARM64.tar.xz\" --strip-components=1", "${LLVM_BINDIR}/llvm-ar qsL ${LLVM_BASE_DIR}/lib/aarch64-unknown-linux-gnu/libc++.a ${LLVM_BASE_DIR}/lib/aarch64-unknown-linux-gnu/libc++abi.a", - "sudo dnf -y update", - "sudo dnf install -y libstdc++ libstdc++-devel libstdc++-static" + "sudo-dnf-workspace -y update", + "sudo-dnf-workspace install -y libstdc++ libstdc++-devel libstdc++-static" ] } ] @@ -91,7 +91,7 @@ "shell": true, "cmds": [ "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/LLVM-${LLVM_VERSION}-macOS-ARM64.tar.xz\" --strip-components=1" + "tar -xf \"${ARTIFACTS_DIR}/LLVM-${LLVM_VERSION}-macOS-ARM64.tar.xz\" --strip-components=1" ] } ] @@ -109,9 +109,9 @@ "cwd": "${LLVM_BASE_DIR}", "shell": true, "cmds": [ - "sudo apt-get remove libunwind-* -yq || true", + "sudo-apt-workspace remove libunwind-* -yq || true", "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/LLVM-${LLVM_VERSION}-Linux-X64.tar.xz\" --strip-components=1", + "tar -xf \"${ARTIFACTS_DIR}/LLVM-${LLVM_VERSION}-Linux-X64.tar.xz\" --strip-components=1", "${LLVM_BINDIR}/llvm-ar qsL ${LLVM_BASE_DIR}/lib/x86_64-unknown-linux-gnu/libc++.a ${LLVM_BASE_DIR}/lib/x86_64-unknown-linux-gnu/libc++abi.a" ] } @@ -128,10 +128,10 @@ "shell": true, "cmds": [ "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/LLVM-${LLVM_VERSION}-Linux-X64.tar.xz\" --strip-components=1", + "tar -xf \"${ARTIFACTS_DIR}/LLVM-${LLVM_VERSION}-Linux-X64.tar.xz\" --strip-components=1", "${LLVM_BINDIR}/llvm-ar qsL ${LLVM_BASE_DIR}/lib/x86_64-unknown-linux-gnu/libc++.a ${LLVM_BASE_DIR}/lib/x86_64-unknown-linux-gnu/libc++abi.a", - "sudo dnf -y update", - "sudo dnf install -y libstdc++ libstdc++-devel libstdc++-static" + "sudo-dnf-workspace -y update", + "sudo-dnf-workspace install -y libstdc++ libstdc++-devel libstdc++-static" ] } ] @@ -147,7 +147,7 @@ "20.04": { "shell": true, "cmds": [ - "sudo apt-get install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", + "sudo-apt-workspace install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", "wget https://apt.llvm.org/llvm.sh", "chmod +x llvm.sh", @@ -169,7 +169,7 @@ "20.04": { "shell": true, "cmds": [ - "sudo apt-get install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", + "sudo-apt-workspace install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", "wget https://apt.llvm.org/llvm.sh", "chmod +x llvm.sh", "sudo ./llvm.sh ${PREFER_LLVM} all", diff --git a/configs/toolchain-llvm22_22.1.6.json b/configs/toolchain-llvm22_22.1.6.json index 53187ea..23ae3dc 100644 --- a/configs/toolchain-llvm22_22.1.6.json +++ b/configs/toolchain-llvm22_22.1.6.json @@ -16,7 +16,7 @@ "toolchain": "llvm", "env": { "LLVM_VERSION": "22.1.6", - "LLVM_BASE_DIR": "${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-llvm-${LLVM_VERSION}", + "LLVM_BASE_DIR": "${FLUTTER_WORKSPACE}/.tmp/toolchain-llvm-${LLVM_VERSION}", "LLVM_BINDIR": "${LLVM_BASE_DIR}/bin", "LLVM_LIBDIR": "${LLVM_BASE_DIR}/lib", "LLVM_CONFIG": "${LLVM_BINDIR}/llvm-config", @@ -51,9 +51,9 @@ "cwd": "${LLVM_BASE_DIR}", "shell": true, "cmds": [ - "sudo apt-get remove libunwind-* -yq || true", + "sudo-apt-workspace remove libunwind-* -yq || true", "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/LLVM-${LLVM_VERSION}-Linux-ARM64.tar.xz\" --strip-components=1", + "tar -xf \"${ARTIFACTS_DIR}/LLVM-${LLVM_VERSION}-Linux-ARM64.tar.xz\" --strip-components=1", "${LLVM_BINDIR}/llvm-ar qsL ${LLVM_BASE_DIR}/lib/aarch64-unknown-linux-gnu/libc++.a ${LLVM_BASE_DIR}/lib/aarch64-unknown-linux-gnu/libc++abi.a" ] } @@ -70,10 +70,10 @@ "shell": true, "cmds": [ "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/LLVM-${LLVM_VERSION}-Linux-ARM64.tar.xz\" --strip-components=1", + "tar -xf \"${ARTIFACTS_DIR}/LLVM-${LLVM_VERSION}-Linux-ARM64.tar.xz\" --strip-components=1", "${LLVM_BINDIR}/llvm-ar qsL ${LLVM_BASE_DIR}/lib/aarch64-unknown-linux-gnu/libc++.a ${LLVM_BASE_DIR}/lib/aarch64-unknown-linux-gnu/libc++abi.a", - "sudo dnf -y update", - "sudo dnf install -y libstdc++ libstdc++-devel libstdc++-static" + "sudo-dnf-workspace -y update", + "sudo-dnf-workspace install -y libstdc++ libstdc++-devel libstdc++-static" ] } ] @@ -91,7 +91,7 @@ "shell": true, "cmds": [ "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/LLVM-${LLVM_VERSION}-macOS-ARM64.tar.xz\" --strip-components=1" + "tar -xf \"${ARTIFACTS_DIR}/LLVM-${LLVM_VERSION}-macOS-ARM64.tar.xz\" --strip-components=1" ] } ] @@ -109,9 +109,9 @@ "cwd": "${LLVM_BASE_DIR}", "shell": true, "cmds": [ - "sudo apt-get remove libunwind-* -yq || true", + "sudo-apt-workspace remove libunwind-* -yq || true", "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/LLVM-${LLVM_VERSION}-Linux-X64.tar.xz\" --strip-components=1", + "tar -xf \"${ARTIFACTS_DIR}/LLVM-${LLVM_VERSION}-Linux-X64.tar.xz\" --strip-components=1", "${LLVM_BINDIR}/llvm-ar qsL ${LLVM_BASE_DIR}/lib/x86_64-unknown-linux-gnu/libc++.a ${LLVM_BASE_DIR}/lib/x86_64-unknown-linux-gnu/libc++abi.a" ] } @@ -128,10 +128,10 @@ "shell": true, "cmds": [ "mkdir -p ${LLVM_BASE_DIR}", - "tar -xf \"${PLATFORM_ID_DIR}/artifacts/LLVM-${LLVM_VERSION}-Linux-X64.tar.xz\" --strip-components=1", + "tar -xf \"${ARTIFACTS_DIR}/LLVM-${LLVM_VERSION}-Linux-X64.tar.xz\" --strip-components=1", "${LLVM_BINDIR}/llvm-ar qsL ${LLVM_BASE_DIR}/lib/x86_64-unknown-linux-gnu/libc++.a ${LLVM_BASE_DIR}/lib/x86_64-unknown-linux-gnu/libc++abi.a", - "sudo dnf -y update", - "sudo dnf install -y libstdc++ libstdc++-devel libstdc++-static" + "sudo-dnf-workspace -y update", + "sudo-dnf-workspace install -y libstdc++ libstdc++-devel libstdc++-static" ] } ] @@ -147,7 +147,7 @@ "20.04": { "shell": true, "cmds": [ - "sudo apt-get install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", + "sudo-apt-workspace install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", "wget https://apt.llvm.org/llvm.sh", "chmod +x llvm.sh", "sudo ./llvm.sh ${PREFER_LLVM} all", @@ -168,7 +168,7 @@ "20.04": { "shell": true, "cmds": [ - "sudo apt-get install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", + "sudo-apt-workspace install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", "wget https://apt.llvm.org/llvm.sh", "chmod +x llvm.sh", "sudo ./llvm.sh ${PREFER_LLVM} all", diff --git a/configs/wayland-mesa.json b/configs/wayland-mesa.json index a7ce98c..6199c31 100644 --- a/configs/wayland-mesa.json +++ b/configs/wayland-mesa.json @@ -17,11 +17,11 @@ "ubuntu": { "shell": true, "cmds": [ - "sudo apt-get install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", + "sudo-apt-workspace install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", "sudo add-apt-repository -y ppa:kisak/kisak-mesa", - "sudo apt-get update -yq", - "if [ \"$CI\" = \"true\" ]; then sudo apt-get upgrade -yq --fix-missing || sudo apt-get upgrade -yq -o Dpkg::Options::=\"--force-confdef\" -o Dpkg::Options::=\"--force-confold\" || echo 'Upgrade completed with some errors - continuing'; else sudo apt-get upgrade -yq; fi", - "sudo apt-get install -yq libxkbcommon-dev libwayland-dev wayland-protocols mesa-common-dev libegl1-mesa-dev libgles2-mesa-dev mesa-utils libsecret-1-dev libsdl2-dev libjpeg-dev zenity" + "sudo-apt-workspace update -yq", + "if [ \"$CI\" = \"true\" ]; then sudo-apt-workspace upgrade -yq --fix-missing || sudo-apt-workspace upgrade -yq -o Dpkg::Options::=\"--force-confdef\" -o Dpkg::Options::=\"--force-confold\" || echo 'Upgrade completed with some errors - continuing'; else sudo-apt-workspace upgrade -yq; fi", + "sudo-apt-workspace install -yq libxkbcommon-dev libwayland-dev wayland-protocols mesa-common-dev libegl1-mesa-dev libgles2-mesa-dev mesa-utils libsecret-1-dev libsdl2-dev libjpeg-dev zenity" ] }, "fedora": { @@ -37,11 +37,11 @@ "ubuntu": { "shell": true, "cmds": [ - "sudo apt-get install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", + "sudo-apt-workspace install -yq lsb-release wget software-properties-common gnupg apt-file build-essential libtool", "sudo add-apt-repository -y ppa:kisak/kisak-mesa", - "sudo apt-get update -yq", - "if [ \"$CI\" = \"true\" ]; then sudo apt-get upgrade -yq --fix-missing || sudo apt-get upgrade -yq -o Dpkg::Options::=\"--force-confdef\" -o Dpkg::Options::=\"--force-confold\" || echo 'Upgrade completed with some errors - continuing'; else sudo apt-get upgrade -yq; fi", - "sudo apt-get install -yq libxkbcommon-dev libwayland-dev wayland-protocols mesa-common-dev libegl1-mesa-dev libgles2-mesa-dev mesa-utils libsecret-1-dev libsdl2-dev libjpeg-dev zenity" + "sudo-apt-workspace update -yq", + "if [ \"$CI\" = \"true\" ]; then sudo-apt-workspace upgrade -yq --fix-missing || sudo-apt-workspace upgrade -yq -o Dpkg::Options::=\"--force-confdef\" -o Dpkg::Options::=\"--force-confold\" || echo 'Upgrade completed with some errors - continuing'; else sudo-apt-workspace upgrade -yq; fi", + "sudo-apt-workspace install -yq libxkbcommon-dev libwayland-dev wayland-protocols mesa-common-dev libegl1-mesa-dev libgles2-mesa-dev mesa-utils libsecret-1-dev libsdl2-dev libjpeg-dev zenity" ] }, "fedora": { diff --git a/configs/weston-imx_14.0.1.json b/configs/weston-imx_14.0.1.json index 0254029..2e97910 100644 --- a/configs/weston-imx_14.0.1.json +++ b/configs/weston-imx_14.0.1.json @@ -10,8 +10,8 @@ ], "type": "dependency", "env": { - "PATH": "${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-ninja:${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-cmake/bin:$PATH", - "LD_LIBRARY_PATH": "${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-cmake/lib", + "PATH": "${FLUTTER_WORKSPACE}/.tmp/toolchain-common-ninja:${FLUTTER_WORKSPACE}/.tmp/toolchain-common-cmake/bin:$PATH", + "LD_LIBRARY_PATH": "${FLUTTER_WORKSPACE}/.tmp/toolchain-common-cmake/lib", "INSTALL_PREFIX": "${FLUTTER_WORKSPACE}/imxgpu/", "WAYLAND_PROTOCOLS_IMX_SRC_DIR": "${FLUTTER_WORKSPACE}/app/wayland-protocols-imx", "WAYLAND_PROTOCOLS_IMX_BUILD_DIR": "${FLUTTER_WORKSPACE}/app/wayland-protocols-imx/buildDir", @@ -36,16 +36,16 @@ "fedora": { "cmds": [ "pip3 install meson", - "sudo dnf -y install libffi-devel libxml2-devel dot2tex doxygen xsltproc xmlto libXfont2-devel libwebp-devel rst2pdf libpciaccess-devel libudev-devel byacc flex libXfixes-devel libglvnd-devel libxkbcommon-devel libinput-devel libjpeg-devel libwebp-devel dbus-devel hwdata libva-devel freerdp-devel libseat-devel systemd-devel pango-devel pixman-devel cairo-devel bison-devel pipewire-devel pam-devel wayland-devel lcms-devel colord-devel" + "sudo-dnf-workspace -y install libffi-devel libxml2-devel dot2tex doxygen xsltproc xmlto libXfont2-devel libwebp-devel rst2pdf libpciaccess-devel libudev-devel byacc flex libXfixes-devel libglvnd-devel libxkbcommon-devel libinput-devel libjpeg-devel libwebp-devel dbus-devel hwdata libva-devel freerdp-devel libseat-devel systemd-devel pango-devel pixman-devel cairo-devel bison-devel pipewire-devel pam-devel wayland-devel lcms-devel colord-devel" ], "40": { "cmds": [ - "sudo dnf -y install ffmpeg-free-devel" + "sudo-dnf-workspace -y install ffmpeg-free-devel" ] }, "41": { "cmds": [ - "sudo dnf -y install ffmpeg-devel" + "sudo-dnf-workspace -y install ffmpeg-devel" ] } }, @@ -55,12 +55,12 @@ ], "20.0.4": { "cmds": [ - "sudo apt-get install -yq graphviz libffi-dev libxml2-dev dot2tex doxygen xsltproc xmlto ninja-build libpixman-1-dev libxfont2 libxfont-dev libwebp-dev libcairo2-dev valgrind systemd-coredump rst2pdf libcunit1-dev libpciaccess-dev libwayland-dev libudev-dev libelf-dev libbison-dev byacc flex libxfixes-dev libxcb-glx0-dev libx11-xcb-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-present-dev libxshmfence-dev libxxf86vm-dev libxrandr-dev glslang-tools libglvnd-dev libxkbcommon-dev libinput-dev libpango1.0-dev libpangocairo-1.0-0 libjpeg-dev libwebp-dev libsystemd-dev libdbus-1-dev hwdata liblcms2-dev libva-dev freerdp2-dev libxcursor-dev libcolord-dev libegl-mesa0 libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev libseat-dev libpam0g-dev libsdl-pango-dev ffmpeg" + "sudo-apt-workspace install -yq graphviz libffi-dev libxml2-dev dot2tex doxygen xsltproc xmlto ninja-build libpixman-1-dev libxfont2 libxfont-dev libwebp-dev libcairo2-dev valgrind systemd-coredump rst2pdf libcunit1-dev libpciaccess-dev libwayland-dev libudev-dev libelf-dev libbison-dev byacc flex libxfixes-dev libxcb-glx0-dev libx11-xcb-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-present-dev libxshmfence-dev libxxf86vm-dev libxrandr-dev glslang-tools libglvnd-dev libxkbcommon-dev libinput-dev libpango1.0-dev libpangocairo-1.0-0 libjpeg-dev libwebp-dev libsystemd-dev libdbus-1-dev hwdata liblcms2-dev libva-dev freerdp2-dev libxcursor-dev libcolord-dev libegl-mesa0 libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev libseat-dev libpam0g-dev libsdl-pango-dev ffmpeg" ] }, "22.0.4": { "cmds": [ - "sudo apt-get install -yq graphviz libffi-dev libxml2-dev dot2tex doxygen xsltproc xmlto ninja-build libpixman-1-dev libxfont2 libxfont-dev libwebp-dev libcairo2-dev valgrind systemd-coredump rst2pdf libcunit1-dev libpciaccess-dev libwayland-dev libudev-dev libelf-dev libbison-dev byacc flex libxfixes-dev libxcb-glx0-dev libx11-xcb-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-present-dev libxshmfence-dev libxxf86vm-dev libxrandr-dev glslang-tools libglvnd-dev libxkbcommon-dev libinput-dev libpango1.0-dev libpangocairo-1.0-0 libjpeg-dev libwebp-dev libsystemd-dev libdbus-1-dev hwdata liblcms2-dev libva-dev freerdp2-dev libxcursor-dev libcolord-dev libegl-mesa0 libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev libseat-dev libpam0g-dev libsdl-pango-dev ffmpeg" + "sudo-apt-workspace install -yq graphviz libffi-dev libxml2-dev dot2tex doxygen xsltproc xmlto ninja-build libpixman-1-dev libxfont2 libxfont-dev libwebp-dev libcairo2-dev valgrind systemd-coredump rst2pdf libcunit1-dev libpciaccess-dev libwayland-dev libudev-dev libelf-dev libbison-dev byacc flex libxfixes-dev libxcb-glx0-dev libx11-xcb-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-present-dev libxshmfence-dev libxxf86vm-dev libxrandr-dev glslang-tools libglvnd-dev libxkbcommon-dev libinput-dev libpango1.0-dev libpangocairo-1.0-0 libjpeg-dev libwebp-dev libsystemd-dev libdbus-1-dev hwdata liblcms2-dev libva-dev freerdp2-dev libxcursor-dev libcolord-dev libegl-mesa0 libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev libseat-dev libpam0g-dev libsdl-pango-dev ffmpeg" ] } } diff --git a/configs/wlroots_0.18.3.json b/configs/wlroots_0.18.3.json index 9c17dc4..bb8a845 100644 --- a/configs/wlroots_0.18.3.json +++ b/configs/wlroots_0.18.3.json @@ -12,8 +12,8 @@ ], "type": "dependency", "env": { - "PATH": "${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-ninja:${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-cmake/bin:$PATH", - "LD_LIBRARY_PATH": "${FLUTTER_WORKSPACE}/.config/flutter_workspace/toolchain-common-cmake/lib", + "PATH": "${FLUTTER_WORKSPACE}/.tmp/toolchain-common-ninja:${FLUTTER_WORKSPACE}/.tmp/toolchain-common-cmake/bin:$PATH", + "LD_LIBRARY_PATH": "${FLUTTER_WORKSPACE}/.tmp/toolchain-common-cmake/lib", "WLROOTS_SRC_DIR": "${FLUTTER_WORKSPACE}/app/wlroots", "WLROOTS_BUILD_DIR": "${FLUTTER_WORKSPACE}/app/wlroots/buildDir", "WLROOTS_MESON_ARGS": "-Dbuildtype=${MESON_BUILD_TYPE}" @@ -31,16 +31,16 @@ "fedora": { "cmds": [ "pip3 install meson", - "sudo dnf -y install libffi-devel libxml2-devel dot2tex doxygen xsltproc xmlto libXfont2-devel libwebp-devel rst2pdf libpciaccess-devel libudev-devel byacc flex libXfixes-devel libglvnd-devel libxkbcommon-devel libinput-devel libjpeg-devel libwebp-devel dbus-devel hwdata libva-devel freerdp-devel libseat-devel systemd-devel pango-devel pixman-devel cairo-devel bison-devel pipewire-devel pam-devel wayland-devel lcms-devel colord-devel" + "sudo-dnf-workspace -y install libffi-devel libxml2-devel dot2tex doxygen xsltproc xmlto libXfont2-devel libwebp-devel rst2pdf libpciaccess-devel libudev-devel byacc flex libXfixes-devel libglvnd-devel libxkbcommon-devel libinput-devel libjpeg-devel libwebp-devel dbus-devel hwdata libva-devel freerdp-devel libseat-devel systemd-devel pango-devel pixman-devel cairo-devel bison-devel pipewire-devel pam-devel wayland-devel lcms-devel colord-devel" ], "40": { "cmds": [ - "sudo dnf -y install ffmpeg-free-devel" + "sudo-dnf-workspace -y install ffmpeg-free-devel" ] }, "41": { "cmds": [ - "sudo dnf -y install ffmpeg-devel" + "sudo-dnf-workspace -y install ffmpeg-devel" ] } }, @@ -50,12 +50,12 @@ ], "20.0.4": { "cmds": [ - "sudo apt-get install -yq graphviz libffi-dev libxml2-dev dot2tex doxygen xsltproc xmlto ninja-build libpixman-1-dev libxfont2 libxfont-dev libwebp-dev libcairo2-dev valgrind systemd-coredump rst2pdf libcunit1-dev libpciaccess-dev libwayland-dev libudev-dev libelf-dev libbison-dev byacc flex libxfixes-dev libxcb-glx0-dev libx11-xcb-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-present-dev libxshmfence-dev libxxf86vm-dev libxrandr-dev glslang-tools libglvnd-dev libxkbcommon-dev libinput-dev libpango1.0-dev libpangocairo-1.0-0 libjpeg-dev libwebp-dev libsystemd-dev libdbus-1-dev hwdata liblcms2-dev libva-dev freerdp2-dev libxcursor-dev libcolord-dev libegl-mesa0 libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev libseat-dev libpam0g-dev libsdl-pango-dev ffmpeg" + "sudo-apt-workspace install -yq graphviz libffi-dev libxml2-dev dot2tex doxygen xsltproc xmlto ninja-build libpixman-1-dev libxfont2 libxfont-dev libwebp-dev libcairo2-dev valgrind systemd-coredump rst2pdf libcunit1-dev libpciaccess-dev libwayland-dev libudev-dev libelf-dev libbison-dev byacc flex libxfixes-dev libxcb-glx0-dev libx11-xcb-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-present-dev libxshmfence-dev libxxf86vm-dev libxrandr-dev glslang-tools libglvnd-dev libxkbcommon-dev libinput-dev libpango1.0-dev libpangocairo-1.0-0 libjpeg-dev libwebp-dev libsystemd-dev libdbus-1-dev hwdata liblcms2-dev libva-dev freerdp2-dev libxcursor-dev libcolord-dev libegl-mesa0 libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev libseat-dev libpam0g-dev libsdl-pango-dev ffmpeg" ] }, "22.0.4": { "cmds": [ - "sudo apt-get install -yq graphviz libffi-dev libxml2-dev dot2tex doxygen xsltproc xmlto ninja-build libpixman-1-dev libxfont2 libxfont-dev libwebp-dev libcairo2-dev valgrind systemd-coredump rst2pdf libcunit1-dev libpciaccess-dev libwayland-dev libudev-dev libelf-dev libbison-dev byacc flex libxfixes-dev libxcb-glx0-dev libx11-xcb-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-present-dev libxshmfence-dev libxxf86vm-dev libxrandr-dev glslang-tools libglvnd-dev libxkbcommon-dev libinput-dev libpango1.0-dev libpangocairo-1.0-0 libjpeg-dev libwebp-dev libsystemd-dev libdbus-1-dev hwdata liblcms2-dev libva-dev freerdp2-dev libxcursor-dev libcolord-dev libegl-mesa0 libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev libseat-dev libpam0g-dev libsdl-pango-dev ffmpeg" + "sudo-apt-workspace install -yq graphviz libffi-dev libxml2-dev dot2tex doxygen xsltproc xmlto ninja-build libpixman-1-dev libxfont2 libxfont-dev libwebp-dev libcairo2-dev valgrind systemd-coredump rst2pdf libcunit1-dev libpciaccess-dev libwayland-dev libudev-dev libelf-dev libbison-dev byacc flex libxfixes-dev libxcb-glx0-dev libx11-xcb-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-present-dev libxshmfence-dev libxxf86vm-dev libxrandr-dev glslang-tools libglvnd-dev libxkbcommon-dev libinput-dev libpango1.0-dev libpangocairo-1.0-0 libjpeg-dev libwebp-dev libsystemd-dev libdbus-1-dev hwdata liblcms2-dev libva-dev freerdp2-dev libxcursor-dev libcolord-dev libegl-mesa0 libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev libseat-dev libpam0g-dev libsdl-pango-dev ffmpeg" ] } } diff --git a/flutter_workspace.py b/flutter_workspace.py index c876ebd..d0c4bfe 100755 --- a/flutter_workspace.py +++ b/flutter_workspace.py @@ -136,6 +136,8 @@ def main(): help='Specify build types. Format: :,:. ' 'Valid build types are debug, profile, release. ' 'If not specified, defaults to globals\' _BUILD_TYPE') + parser.add_argument('--clean-cache', default=False, + action='store_true', help='Wipes .cache folder') args = parser.parse_args() @@ -211,10 +213,17 @@ def main(): # Target Folder # workspace = get_ws_folder() + if os.path.exists(workspace): + os.environ['FLUTTER_WORKSPACE'] = workspace + config_folder = os.path.join(workspace, '.config') print_banner("Setting up Flutter Workspace in: %s" % workspace) + # Prepend workspace bin/ to PATH so sudo-apt-workspace / sudo-dnf-workspace are found + # by all subprocesses, including install_minimum_runtime_deps() below. + os.environ['PATH'] = os.path.join(workspace, 'bin') + os.pathsep + os.environ.get('PATH', '') + # # Recursively change ownership to logged-in user # @@ -233,9 +242,16 @@ def main(): if not os.path.exists(app_folder): os.makedirs(app_folder) - - if os.path.exists(workspace): - os.environ['FLUTTER_WORKSPACE'] = workspace + # + # Clean Cache + # + if args.clean_cache: + print_banner("Cleaning Cache") + clear_folder(str(get_cache_folder())) + tmp_folder = os.path.join(workspace, '.tmp') + if os.path.exists(tmp_folder): + clear_folder(tmp_folder) + return # # Fetch Engine Artifacts @@ -451,6 +467,16 @@ def main(): flutter_sdk_path = get_flutter_sdk(flutter_version) flutter_bin_path = os.path.join(flutter_sdk_path, 'bin') + # Redirect flutter/bin/cache/ to persistent .cache/flutter-sdk-cache/ so that + # downloaded artifacts (Dart SDK, engine) survive Docker runs. + flutter_bin_cache = os.path.join(flutter_sdk_path, 'bin', 'cache') + sdk_cache_dir = str(get_cache_folder() / 'flutter-sdk-cache') + os.makedirs(sdk_cache_dir, exist_ok=True) + if not os.path.islink(flutter_bin_cache): + if os.path.isdir(flutter_bin_cache): + shutil.rmtree(flutter_bin_cache) + os.symlink(sdk_cache_dir, flutter_bin_cache) + # force tool rebuild force_tool_rebuild(flutter_sdk_folder) @@ -465,8 +491,7 @@ def main(): os.environ['PATH'] = f"{flutter_bin_path}{os.pathsep}{os.environ.get('PATH')}" print("PATH=%s" % os.environ.get('PATH')) - os.environ['PUB_CACHE'] = os.path.join(os.environ.get('FLUTTER_WORKSPACE'), '.config', 'flutter_workspace', - 'pub_cache') + os.environ['PUB_CACHE'] = str(get_cache_folder() / 'pub_cache') print("PUB_CACHE=%s" % os.environ.get('PUB_CACHE')) if sys.platform.startswith('win'): @@ -535,11 +560,11 @@ def main(): if sys.platform.startswith('win'): append_to_env_script(workspace, '$env:FLUTTER_ENGINE_VERSION="${FLUTTER_ENGINE_VERSION}"') append_to_env_script(workspace, '$env:HOST_ARCH_GOOGLE="${HOST_ARCH_GOOGLE}"') - append_to_env_script(workspace, '$env:GEN_SNAPSHOT="$FLUTTER_WORKSPACE/.config/flutter_workspace/flutter-engine/$FLUTTER_ENGINE_VERSION/engine-sdk-release-$HOST_ARCH_GOOGLE/flutter/engine/src/out/linux_release_$HOST_ARCH_GOOGLE/engine-sdk/bin/gen_snapshot"') + append_to_env_script(workspace, '$env:GEN_SNAPSHOT="$FLUTTER_WORKSPACE/.tmp/flutter-engine/$FLUTTER_ENGINE_VERSION/engine-sdk-release-$HOST_ARCH_GOOGLE/flutter/engine/src/out/linux_release_$HOST_ARCH_GOOGLE/engine-sdk/bin/gen_snapshot"') else: append_to_env_script(workspace, 'export FLUTTER_ENGINE_VERSION="${FLUTTER_ENGINE_VERSION}"') append_to_env_script(workspace, 'export HOST_ARCH_GOOGLE="${HOST_ARCH_GOOGLE}"') - append_to_env_script(workspace, 'export GEN_SNAPSHOT="$FLUTTER_WORKSPACE/.config/flutter_workspace/flutter-engine/$FLUTTER_ENGINE_VERSION/engine-sdk-release-$HOST_ARCH_GOOGLE/flutter/engine/src/out/linux_release_$HOST_ARCH_GOOGLE/engine-sdk/bin/gen_snapshot"') + append_to_env_script(workspace, 'export GEN_SNAPSHOT="$FLUTTER_WORKSPACE/.tmp/flutter-engine/$FLUTTER_ENGINE_VERSION/engine-sdk-release-$HOST_ARCH_GOOGLE/flutter/engine/src/out/linux_release_$HOST_ARCH_GOOGLE/engine-sdk/bin/gen_snapshot"') # # Setup Platforms @@ -933,6 +958,20 @@ def validate_custom_device_config(config): return True +def cache_mirror_repo(source_git_folder, dest_name): + """Mirror a working git repo to .cache/repos/.git as a bare clone. + Creates the mirror on first call; updates it on subsequent calls.""" + bare = str(get_cache_repos_folder() / (dest_name + '.git')) + if os.path.exists(os.path.join(bare, 'HEAD')): + print_banner(f'Updating repo mirror: {bare}') + cmd = ['git', 'fetch', '--all'] + subprocess.check_call(cmd, cwd=bare) + else: + print_banner(f'Creating repo mirror: {bare}') + cmd = ['git', 'clone', '--mirror', source_git_folder, bare] + subprocess.check_call(cmd) + + def get_repo(base_folder, uri, ref, branch=None, dest_name=None): """ Clone Git Repo """ if not uri: @@ -954,63 +993,63 @@ def get_repo(base_folder, uri, ref, branch=None, dest_name=None): print_banner(f'Fetching: {repo_name} (path: {git_folder})...') - # print_banner(f'Checking if file exists: {git_hidden_folder}') - if os.path.exists(git_hidden_folder): - # print_banner(f'git reset --hard: {repo_name}') - cmd = ['git', 'reset', '--hard'] - subprocess.check_call(cmd, cwd=git_folder) + cache_dir = str(get_cache_repos_folder() / dest_name) + cache_exists = os.path.isdir(os.path.join(cache_dir, '.git')) - # print_banner(f'git fetch --all: {repo_name}') - cmd = ['git', 'fetch', '--all'] - subprocess.check_call(cmd, cwd=git_folder) + restored_from_cache = False - # print_banner(f'git pull: {repo_name}') + if os.path.exists(git_hidden_folder): + # re-run: repo already present — update in-place + subprocess.check_call(['git', 'reset', '--hard'], cwd=git_folder) + subprocess.check_call(['git', 'fetch', '--all'], cwd=git_folder) cmd = ['git', 'pull', '--ff-only'] if branch: print(f'Using branch: {branch}') cmd.extend(['origin', branch]) try: subprocess.check_call(cmd, cwd=git_folder) - except subprocess.CalledProcessError as e: + except subprocess.CalledProcessError: print(f"WARNING: git pull failed, continuing anyway") - else: - # print_banner(f'Checking if folder exists: {git_folder}') + + elif cache_exists: + # restore full working tree (includes LFS objects and submodule content) + print_banner(f'Restoring {repo_name} from local cache') if os.path.exists(git_folder): - try: - subprocess.run(['rm', '-rf', git_folder], cwd=base_folder, check=True) - except subprocess.CalledProcessError: - pass + shutil.rmtree(git_folder) + shutil.copytree(cache_dir, git_folder, symlinks=True) + restored_from_cache = True + else: + # fresh clone from network + if os.path.exists(git_folder): + shutil.rmtree(git_folder) cmd = ['git', 'clone', uri, dest_name] if branch: print(f'Using branch: {branch}') cmd.extend(['-b', branch]) subprocess.check_call(cmd, cwd=base_folder) + # Hydrate: checkout desired ref/branch, resolve LFS pointers, init submodules if ref: print(f'git checkout {ref}') - cmd = ['git', 'checkout', ref] - subprocess.check_call(cmd, cwd=git_folder) + subprocess.check_call(['git', 'checkout', ref], cwd=git_folder) elif branch: print(f'git checkout {branch}') - cmd = ['git', 'checkout', branch] - subprocess.check_call(cmd, cwd=git_folder) - - # get lfs - git_lfs_file = os.path.join(git_folder, '.gitattributes') - # print_banner(f'Checking if folder exists: {git_lfs_file}') - if os.path.exists(git_lfs_file): - # print_banner(f'Fetching LFS: {repo_name}') - cmd = ['git', 'lfs', 'fetch', '--all'] - subprocess.check_call(cmd, cwd=git_folder) - - # get all submodules - git_submodule_file = os.path.join(git_folder, '.gitmodules') - # print_banner(f'Checking if folder exists: {git_submodule_file}') - if os.path.exists(git_submodule_file): - # print_banner(f'Fetching submodules: {repo_name}') - cmd = ['git', 'submodule', 'update', '--init', '--recursive'] - subprocess.check_call(cmd, cwd=git_folder) + subprocess.check_call(['git', 'checkout', branch], cwd=git_folder) + + if os.path.exists(os.path.join(git_folder, '.gitattributes')): + subprocess.check_call(['git', 'lfs', 'fetch', '--all'], cwd=git_folder) + subprocess.check_call(['git', 'lfs', 'checkout'], cwd=git_folder) + + if os.path.exists(os.path.join(git_folder, '.gitmodules')): + subprocess.check_call(['git', 'submodule', 'update', '--init', '--recursive'], cwd=git_folder) + + # Save to cache (skip only when we just restored from it) + if not restored_from_cache: + print_banner(f'Updating cache for {repo_name}') + if os.path.exists(cache_dir): + shutil.rmtree(cache_dir) + shutil.copytree(git_folder, cache_dir, symlinks=True) print_banner(f'Fetched: {repo_name} at {git_folder}') @@ -1479,6 +1518,10 @@ def get_flutter_sdk(version): flutter_sdk_path = os.path.join(workspace, 'flutter') + flutter_repo = 'https://github.com/flutter/flutter.git' + bare_cache = str(get_cache_repos_folder() / 'flutter.git') + cache_exists = os.path.exists(os.path.join(bare_cache, 'HEAD')) + # # GIT repo # @@ -1492,9 +1535,20 @@ def get_flutter_sdk(version): cmd = ["git", "checkout", version] subprocess.check_call(cmd, cwd=flutter_sdk_path) - else: + elif cache_exists: + # fast local clone from bare cache, then sync with real remote + print_banner("Cloning Flutter SDK from local cache, then fetching from remote") + cmd = ['git', 'clone', bare_cache, flutter_sdk_path] + env_skip_lfs = {**os.environ, 'GIT_LFS_SKIP_SMUDGE': '1'} + subprocess.check_call(cmd, env=env_skip_lfs) + subprocess.check_call(['git', 'remote', 'set-url', 'origin', flutter_repo], cwd=flutter_sdk_path) + subprocess.check_call(['git', 'fetch', 'origin'], cwd=flutter_sdk_path) - flutter_repo = 'https://github.com/flutter/flutter.git' + print('Checking out %s' % version) + cmd = ["git", "checkout", version] + subprocess.check_call(cmd, cwd=flutter_sdk_path) + + else: cmd = ['git', 'clone', flutter_repo, flutter_sdk_path] subprocess.check_call(cmd) @@ -1503,6 +1557,9 @@ def get_flutter_sdk(version): cmd = ["git", "checkout", version] subprocess.check_call(cmd, cwd=flutter_sdk_path) + # keep bare mirror up to date + cache_mirror_repo(flutter_sdk_path, 'flutter') + print_banner("FLUTTER_SDK: %s" % flutter_sdk_path) return flutter_sdk_path @@ -1640,9 +1697,10 @@ def set_gen_snapshot(runtime, arch): linux_runtime = f'linux_{runtime}_{arch}' - platform_path = get_platform_working_dir('flutter-engine') + workspace = os.environ['FLUTTER_WORKSPACE'] + restore_folder = os.path.join(workspace, '.tmp', 'flutter-engine', commit, engine_sdk) - engine_sdk_root = os.path.join(platform_path, commit, engine_sdk, 'flutter', 'engine', 'src', 'out', linux_runtime, 'engine-sdk') + engine_sdk_root = os.path.join(restore_folder, 'flutter', 'engine', 'src', 'out', linux_runtime, 'engine-sdk') gen_snapshot = os.path.join(engine_sdk_root, 'bin', 'gen_snapshot') @@ -1673,9 +1731,11 @@ def get_flutter_engine_artifacts(clean_workspace, runtime, arch): _, filename = os.path.split(base_url) + # bundle staging lives in the platform working dir (derived, not downloaded) cwd = get_platform_working_dir('flutter-engine') - cwd_engine = os.path.join(cwd, engine_version) + # archive and extracted SDK are stored in the shared cache + cwd_engine = str(get_cache_artifacts_folder() / 'flutter-engine' / engine_version) archive_file = os.path.join(cwd_engine, filename) sha256_file = os.path.join(cwd_engine, filename + '.sha256') @@ -1693,9 +1753,15 @@ def get_flutter_engine_artifacts(clean_workspace, runtime, arch): else: print_banner("Skipping Engine artifact download") - restore_folder = os.path.join(cwd_engine, f'engine-sdk-{runtime}-{arch}') - os.makedirs(restore_folder, exist_ok=True) - subprocess.check_call(['tar', '-xzf', archive_file, '-C', restore_folder]) + workspace = os.environ['FLUTTER_WORKSPACE'] + restore_folder = os.path.join(workspace, '.tmp', 'flutter-engine', engine_version, f'engine-sdk-{runtime}-{arch}') + + # skip extraction if the folder is already populated and the archive is unchanged + if os.path.isdir(restore_folder) and os.listdir(restore_folder): + print_banner("Skipping Engine artifact extraction (already extracted)") + else: + os.makedirs(restore_folder, exist_ok=True) + subprocess.check_call(['tar', '-xzf', archive_file, '-C', restore_folder]) if clean_workspace: if os.path.exists(bundle_folder): @@ -2191,6 +2257,9 @@ def handle_github_obj(obj, cwd, token): artifacts = get_github_workflow_artifacts(token, owner, repo, run_id) + github_cache_dir = str(get_cache_artifacts_folder() / 'github') + os.makedirs(github_cache_dir, exist_ok=True) + for artifact in artifacts: name = artifact.get('name') @@ -2204,8 +2273,9 @@ def handle_github_obj(obj, cwd, token): print("Downloading %s run_id: %s via %s" % (workflow, run_id, url)) - filename = "%s.zip" % name - downloaded_file = get_github_artifact(token, url, filename) + # cache key includes run_id so a new CI build invalidates the entry + filename = "%s-%s.zip" % (name, run_id) + downloaded_file = get_github_artifact(token, url, filename, github_cache_dir) if downloaded_file is None or downloaded_file == '': print_banner("Failed to download %s" % filename) continue @@ -2220,7 +2290,7 @@ def handle_github_obj(obj, cwd, token): raise ValueError(f"Zip path traversal detected: {member}") zip_ref.extractall(dest) - os.remove(downloaded_file) + # do not delete — keep zip in cache for future runs continue if post_process: @@ -2234,7 +2304,8 @@ def handle_artifacts_obj(obj, host_machine_arch, cwd, git_token, cookie_file): if not obj: return - artifacts = os.path.join(cwd, 'artifacts') + platform_id = os.path.basename(cwd) + artifacts = str(get_cache_artifacts_folder() / platform_id) os.makedirs(artifacts, exist_ok=True) os.environ['ARTIFACTS_DIR'] = artifacts cwd = artifacts @@ -2337,12 +2408,38 @@ def handle_build_type(env, build_type=None): env['MESON_BUILD_TYPE'] = build_types_meson[build_type] +def get_cache_folder(): + """Returns the workspace-level cache folder: /.cache""" + from pathlib import Path + workspace = Path(os.environ.get('FLUTTER_WORKSPACE')) + cache = workspace / '.cache' + os.makedirs(cache, exist_ok=True) + return cache + + +def get_cache_artifacts_folder(): + """Returns /.cache/artifacts""" + artifacts = get_cache_folder() / 'artifacts' + os.makedirs(artifacts, exist_ok=True) + return artifacts + + +def get_cache_repos_folder(): + """Returns /.cache/repos""" + repos = get_cache_folder() / 'repos' + os.makedirs(repos, exist_ok=True) + return repos + + def get_platform_working_dir(platform_id): from pathlib import Path workspace = Path(os.environ.get('FLUTTER_WORKSPACE')) cwd = workspace.joinpath('.config', 'flutter_workspace', platform_id) os.environ["PLATFORM_ID_DIR_RELATIVE"] = '.' + platform_id os.environ["PLATFORM_ID_DIR"] = str(cwd) + tmp_dir = workspace / '.tmp' / platform_id + os.environ["PLATFORM_TMP_DIR"] = str(tmp_dir) + os.makedirs(tmp_dir, exist_ok=True) print(f'Working Directory: {cwd}') os.makedirs(cwd, exist_ok=True) return cwd @@ -2767,21 +2864,34 @@ def get_github_workflow_artifacts(token, owner, repo, id_): def get_workspace_tmp_folder() -> str: - """ Gets tmp folder path located in workspace""" + """Gets tmp folder path located in the workspace root (sibling of .cache)""" workspace = os.getenv("FLUTTER_WORKSPACE") - tmp_folder = os.path.join(workspace, '.config', 'flutter_workspace', 'tmp') + tmp_folder = os.path.join(workspace, '.tmp') os.makedirs(tmp_folder, exist_ok=True) return tmp_folder -def get_github_artifact(token: str, url: str, filename: str) -> str: - """ Gets artifact via GitHub URL""" +def get_github_artifact(token: str, url: str, filename: str, cache_dir: str = None) -> str: + """ Gets artifact via GitHub URL, storing it in cache_dir (or tmp if not specified) """ + + if cache_dir is None: + cache_dir = get_workspace_tmp_folder() - tmp_file = "%s/%s" % (get_workspace_tmp_folder(), filename) + cached_file = os.path.join(cache_dir, filename) + sha256_file = cached_file + '.sha256' + + # return cached copy if it still has a matching sha256 sidecar + if os.path.exists(cached_file) and os.path.exists(sha256_file): + from common import compare_sha256 + if compare_sha256(cached_file, sha256_file): + print("GitHub artifact cache hit: %s" % cached_file) + return cached_file headers = ['Authorization: token %s' % token] - if fetch_https_binary_file(url, tmp_file, True, headers, None, False, None): - return tmp_file + if fetch_https_binary_file(url, cached_file, True, headers, None, False, None): + from common import write_sha256_file + write_sha256_file(cache_dir, filename) + return cached_file return '' @@ -2805,14 +2915,14 @@ def ubuntu_install_pkg_if_not_installed(package): if not ubuntu_is_pkg_installed(package): print("\n* Installing runtime package dependency: %s" % package) - cmd = ["sudo", "apt-get", "install", "-y", package] + cmd = ["sudo-apt-workspace", "install", "-y", package] subprocess.call(cmd) def get_dnf_installed(filter_: str) -> str: """Returns dnf package list if present, None otherwise""" - dnf_result = subprocess.run(['dnf', 'list', 'installed'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) + dnf_result = subprocess.run(['sudo-dnf-workspace', 'list', 'installed'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) grep_result = subprocess.run(['grep', '--', filter_], input=dnf_result.stdout, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) return grep_result.stdout @@ -2834,7 +2944,7 @@ def fedora_install_pkg_if_not_installed(package: str): if not fedora_is_pkg_installed(package): print("\n* Installing runtime package dependency: %s" % package) - cmd = ["sudo", "dnf", "install", "-y", package] + cmd = ["sudo-dnf-workspace", "install", "-y", package] subprocess.call(cmd) @@ -2922,7 +3032,12 @@ def activate_python_virtualenv(): python_path = subprocess.check_output(['which', 'python3']).decode().strip() os.environ['PYTHON'] = python_path - cmd = f'{python_path} -m pip install --upgrade pip'.split(' ') + # use workspace-level pip cache + pip_cache_dir = str(os.path.join(workspace, '.cache', 'pip')) + os.makedirs(pip_cache_dir, exist_ok=True) + os.environ['PIP_CACHE_DIR'] = pip_cache_dir + + cmd = f'{python_path} -m pip install --cache-dir {pip_cache_dir} --upgrade pip'.split(' ') subprocess.check_output(cmd) @@ -2935,14 +3050,14 @@ def install_minimum_runtime_deps(): os_release_id = get_freedesktop_os_release_id() if os_release_id == 'ubuntu': - subprocess.check_output(['sudo', 'apt-get', 'update', '-y']) - packages = 'sudo apt-get install --no-install-recommends -y git git-lfs unzip curl python3-dev python3-virtualenv libcurl4-openssl-dev libssl-dev libgtk-3-dev build-essential libcurl4-openssl-dev'.split( + subprocess.check_output(['sudo-apt-workspace', 'update', '-y']) + packages = 'sudo-apt-workspace install --no-install-recommends -y git git-lfs unzip curl python3-dev python3-virtualenv libcurl4-openssl-dev libssl-dev libgtk-3-dev build-essential libcurl4-openssl-dev'.split( ' ') subprocess.check_output(packages) elif os_release_id == 'fedora': - subprocess.check_output(['sudo', 'dnf', '-y', 'update']) - packages = 'sudo dnf -y install dnf-plugins-core git git-lfs unzip curl python3-devel python3-virtualenv libcurl-devel openssl-devel gtk3-devel gcc libcurl-devel'.split( + subprocess.check_output(['sudo-dnf-workspace', '-y', 'update']) + packages = 'sudo-dnf-workspace -y install dnf-plugins-core git git-lfs unzip curl python3-devel python3-virtualenv libcurl-devel openssl-devel gtk3-devel gcc libcurl-devel'.split( ' ') subprocess.check_output(packages) @@ -3001,13 +3116,21 @@ def install_minimum_runtime_deps(): optional_to_install.append(package_name) if packages_to_install: - cmd = ['python3', '-m', 'pip', 'install'] + packages_to_install + pip_cache_dir = os.environ.get('PIP_CACHE_DIR', '') + cmd = ['python3', '-m', 'pip', 'install'] + if pip_cache_dir: + cmd += ['--cache-dir', pip_cache_dir] + cmd += packages_to_install subprocess.check_output(cmd) if optional_to_install: + pip_cache_dir = os.environ.get('PIP_CACHE_DIR', '') for pkg in optional_to_install: try: - cmd = ['python3', '-m', 'pip', 'install', pkg] + cmd = ['python3', '-m', 'pip', 'install'] + if pip_cache_dir: + cmd += ['--cache-dir', pip_cache_dir] + cmd.append(pkg) subprocess.check_output(cmd, stderr=subprocess.STDOUT) except subprocess.CalledProcessError: print(f"Warning: Failed to install optional package {pkg}, using fallback") @@ -3056,7 +3179,7 @@ def write_env_script_header(workspace): $env:FLUTTER_WORKSPACE = $SCRIPT_PATH $env:PATH = "$env:FLUTTER_WORKSPACE\\flutter\\bin;$env:PATH" -$env:PUB_CACHE = "$env:FLUTTER_WORKSPACE\\.config\\flutter_workspace\\pub_cache" +$env:PUB_CACHE = "$env:FLUTTER_WORKSPACE\\.cache\\pub_cache" Write-Host "********************************************" Write-Host "* Setting FLUTTER_WORKSPACE to:" @@ -3116,8 +3239,9 @@ def write_env_script_header(workspace): echo "SCRIPT_PATH=$SCRIPT_PATH" export FLUTTER_WORKSPACE="$SCRIPT_PATH" +export PATH="$FLUTTER_WORKSPACE/bin:$PATH" export PATH="$FLUTTER_WORKSPACE/flutter/bin:$PATH" -export PUB_CACHE="$FLUTTER_WORKSPACE/.config/flutter_workspace/pub_cache" +export PUB_CACHE="$FLUTTER_WORKSPACE/.cache/pub_cache" export XDG_CONFIG_HOME="$FLUTTER_WORKSPACE/.config/flutter" echo "********************************************" @@ -3344,7 +3468,7 @@ def validate_fastboot_req(device_id: str, platform_: dict): platform_id = platform_['id'] working_dir = get_platform_working_dir(platform_id) - artifacts_dir = os.path.join(working_dir, 'artifacts') + artifacts_dir = str(get_cache_artifacts_folder() / platform_id) update_image_by_fastboot(device_id, artifacts_dir, http.get('artifacts'))