diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a917232..f96f833 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -21,11 +21,11 @@ jobs: echo "SNAPSHOT_HASH=$HASH" >> $GITHUB_ENV - name: Install tools run: | - brew install ninja libusbmuxd ideviceinstaller ios-deploy + brew install ninja libusbmuxd ideviceinstaller ios-deploy python@3.13 python3 -m pip install wheel python3 -m pip install . git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git - git clone https://github.com/flutter/engine.git + git clone https://github.com/flutter/flutter.git engine - name: gclient sync run: | ROOT_DIR=`pwd` @@ -40,20 +40,20 @@ jobs: cd $ROOT_DIR mkdir customEngine cd customEngine - echo 'solutions = [{"managed": False,"name": "src/flutter","url": "'$ROOT_DIR/engine'","custom_deps": {},"deps_file": "DEPS","safesync_url": "",},]' > .gclient + echo 'solutions = [{"managed": False,"name": ".","url": "'$ROOT_DIR/engine'","custom_deps": {},"deps_file": "DEPS","safesync_url": "",},]' > .gclient gclient sync reflutter -b ${{env.SNAPSHOT_HASH}} - name: ninja build Flutter.framework - run: export PATH=$PATH:`pwd`/depot_tools && sudo xcode-select -s /Applications/Xcode.app && customEngine/src/flutter/tools/gn --no-goma --ios --runtime-mode=release && ninja -C customEngine/src/out/ios_release + run: export PATH=$PATH:`pwd`/depot_tools && sudo xcode-select -s /Applications/Xcode.app && customEngine/engine/src/flutter/tools/gn --no-goma --ios --runtime-mode=release && ninja -C customEngine/engine/src/out/ios_release - name: ninja build libflutter_arm64 - run: export PATH=$PATH:`pwd`/depot_tools && customEngine/src/flutter/tools/gn --no-goma --android --android-cpu=arm64 --runtime-mode=release && ninja -C customEngine/src/out/android_release_arm64 + run: export PATH=$PATH:`pwd`/depot_tools && customEngine/engine/src/flutter/tools/gn --no-goma --android --android-cpu=arm64 --runtime-mode=release && ninja -C customEngine/engine/src/out/android_release_arm64 - name: ninja build libflutter_arm - run: export PATH=$PATH:`pwd`/depot_tools && customEngine/src/flutter/tools/gn --no-goma --android --android-cpu=arm --runtime-mode=release && ninja -C customEngine/src/out/android_release + run: export PATH=$PATH:`pwd`/depot_tools && customEngine/engine/src/flutter/tools/gn --no-goma --android --android-cpu=arm --runtime-mode=release && ninja -C customEngine/engine/src/out/android_release - name: Move to release run: | - cp customEngine/src/out/ios_release/Flutter.framework/Flutter Flutter - cp customEngine/src/out/android_release_arm64/lib.stripped/libflutter.so libflutter_arm64.so 2>/dev/null || : - cp customEngine/src/out/android_release/lib.stripped/libflutter.so libflutter_arm.so 2>/dev/null || : + cp customEngine/engine/src/out/ios_release/Flutter.framework/Flutter Flutter + cp customEngine/engine/src/out/android_release_arm64/lib.stripped/libflutter.so libflutter_arm64.so 2>/dev/null || : + cp customEngine/engine/src/out/android_release/lib.stripped/libflutter.so libflutter_arm.so 2>/dev/null || : - name: iOS-Release uses: softprops/action-gh-release@v1 with: @@ -82,11 +82,11 @@ jobs: echo "SNAPSHOT_HASH=$HASH" >> $GITHUB_ENV - name: Install tools run: | - brew install ninja libusbmuxd ideviceinstaller ios-deploy + brew install ninja libusbmuxd ideviceinstaller ios-deploy python@3.13 python3 -m pip install wheel python3 -m pip install . git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git - git clone https://github.com/flutter/engine.git + git clone https://github.com/flutter/flutter.git engine - name: gclient sync run: | ROOT_DIR=`pwd` @@ -101,20 +101,20 @@ jobs: cd $ROOT_DIR mkdir customEngine cd customEngine - echo 'solutions = [{"managed": False,"name": "src/flutter","url": "'$ROOT_DIR/engine'","custom_deps": {},"deps_file": "DEPS","safesync_url": "",},]' > .gclient + echo 'solutions = [{"managed": False,"name": ".","url": "'$ROOT_DIR/engine'","custom_deps": {},"deps_file": "DEPS","safesync_url": "",},]' > .gclient gclient sync reflutter -b ${{env.SNAPSHOT_HASH}} -p - name: ninja build Flutter.framework - run: export PATH=$PATH:`pwd`/depot_tools && sudo xcode-select -s /Applications/Xcode.app && customEngine/src/flutter/tools/gn --no-goma --ios --runtime-mode=release && ninja -C customEngine/src/out/ios_release + run: export PATH=$PATH:`pwd`/depot_tools && sudo xcode-select -s /Applications/Xcode.app && customEngine/engine/src/flutter/tools/gn --no-goma --ios --runtime-mode=release && ninja -C customEngine/engine/src/out/ios_release - name: ninja build libflutter_arm64 - run: export PATH=$PATH:`pwd`/depot_tools && customEngine/src/flutter/tools/gn --no-goma --android --android-cpu=arm64 --runtime-mode=release && ninja -C customEngine/src/out/android_release_arm64 + run: export PATH=$PATH:`pwd`/depot_tools && customEngine/engine/src/flutter/tools/gn --no-goma --android --android-cpu=arm64 --runtime-mode=release && ninja -C customEngine/engine/src/out/android_release_arm64 - name: ninja build libflutter_arm - run: export PATH=$PATH:`pwd`/depot_tools && customEngine/src/flutter/tools/gn --no-goma --android --android-cpu=arm --runtime-mode=release && ninja -C customEngine/src/out/android_release + run: export PATH=$PATH:`pwd`/depot_tools && customEngine/engine/src/flutter/tools/gn --no-goma --android --android-cpu=arm --runtime-mode=release && ninja -C customEngine/engine/src/out/android_release - name: Move to release run: | - cp customEngine/src/out/ios_release/Flutter.framework/Flutter Flutter - cp customEngine/src/out/android_release_arm64/lib.stripped/libflutter.so libflutter_arm64.so 2>/dev/null || : - cp customEngine/src/out/android_release/lib.stripped/libflutter.so libflutter_arm.so 2>/dev/null || : + cp customEngine/engine/src/out/ios_release/Flutter.framework/Flutter Flutter + cp customEngine/engine/src/out/android_release_arm64/lib.stripped/libflutter.so libflutter_arm64.so 2>/dev/null || : + cp customEngine/engine/src/out/android_release/lib.stripped/libflutter.so libflutter_arm.so 2>/dev/null || : - name: iOS-Release uses: softprops/action-gh-release@v1 with: diff --git a/SNAPSHOT_HASH b/SNAPSHOT_HASH index e561fcd..c0f5d68 100644 --- a/SNAPSHOT_HASH +++ b/SNAPSHOT_HASH @@ -1 +1 @@ -f956f595844a2f845a55707faaaa51e4 +d91c0e6f35f0eb2e44124e8f42aa44a7 diff --git a/enginehash.csv b/enginehash.csv index acf09be..b0299ea 100644 --- a/enginehash.csv +++ b/enginehash.csv @@ -1,5 +1,5 @@ version,Engine_commit,Snapshot_Hash -3.29.0,f73bfc4522dd0bc87bbcdb4bb3088082755c5e87,d91c0e6f35f0eb2e44124e8f42aa44a7 +3.29.3,cf56914b326edb0ccb123ffdc60f00060bd513fa,d91c0e6f35f0eb2e44124e8f42aa44a7 3.27.1,cb4b5fff73850b2e42bd4de7cb9a4310a78ac40d,f956f595844a2f845a55707faaaa51e4 3.24.0,b8800d88be4866db1b15f8b954ab2573bba9960f,80a49c7111088100a233b2ae788e1f48 3.22.0,f6344b75dcf861d8bf1f1322780b8811f982e31a,d20a1be77c3d3c41b2a5accaee1ce549 diff --git a/scripts/build-engine b/scripts/build-engine index e10f83a..9f0b10e 100755 --- a/scripts/build-engine +++ b/scripts/build-engine @@ -5,7 +5,7 @@ ROOT_DIR=$(pwd) # Required packages for macOS brew update -brew install libzip openssl libplist autoconf automake libtool autoconf-archive pkg-config ninja +brew install libzip openssl libplist autoconf automake libtool autoconf-archive pkg-config ninja python@3.13 export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opt/openssl@1.1/lib/pkgconfig brew install libplist libusbmuxd cd "$ROOT_DIR" @@ -14,7 +14,6 @@ brew install ideviceinstaller brew install ios-deploy # Install reflutter -# shellcheck disable=SC2103 cd .. pip3 install wheel pip3 install . @@ -27,13 +26,15 @@ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git if [ -d "engine" ]; then rm -rf engine fi -git clone https://github.com/flutter/engine.git + +# Deprecated repo: https://github.com/flutter/engine +git clone https://github.com/flutter/flutter.git engine export PATH=$PATH:$ROOT_DIR/depot_tools cd engine -git fetch origin $(reflutter "$SNAPSHOT_HASH" -l) +git fetch origin $(reflutter -b "$SNAPSHOT_HASH") git reset --hard FETCH_HEAD -reflutter "$SNAPSHOT_HASH" -l +reflutter -b "$SNAPSHOT_HASH" -p echo 'reflutter' >REFLUTTER git add . && git commit -am "reflutter" cd "$ROOT_DIR" @@ -42,19 +43,21 @@ if [ -d "customEngine" ]; then fi mkdir customEngine cd customEngine -echo 'solutions = [{"managed": False,"name": "src/flutter","url": "'"$ROOT_DIR"/engine'","custom_deps": {},"deps_file": "DEPS","safesync_url": "",},]' >.gclient +# Deprecated engine path +# echo 'solutions = [{"managed": False,"name": "src/flutter","url": "'"$ROOT_DIR"/engine'","custom_deps": {},"deps_file": "DEPS","safesync_url": "",},]' >.gclient +echo 'solutions = [{"managed": False,"name": "engine/src/flutter","url": "'"$ROOT_DIR"/engine'","custom_deps": {},"deps_file": "DEPS","safesync_url": "",},]' >.gclient gclient sync -reflutter "$SNAPSHOT_HASH" -l +reflutter -b "$SNAPSHOT_HASH" -p cd "$ROOT_DIR" -export PATH=$PATH:$(pwd)/depot_tools && sudo xcode-select -s /Applications/Xcode.app && customEngine/src/flutter/tools/gn --ios --runtime-mode=release && ninja -C customEngine/src/out/ios_release -cp customEngine/src/out/ios_release/Flutter.framework/Flutter Flutter +export PATH=$PATH:$(pwd)/depot_tools && sudo xcode-select -s /Applications/Xcode.app && customEngine/engine/src/flutter/tools/gn --ios --runtime-mode=release && ninja -C customEngine/engine/src/out/ios_release +cp customEngine/engine/src/out/ios_release/Flutter.framework/Flutter Flutter cd "$ROOT_DIR" -export PATH=$PATH:$(pwd)/depot_tools && customEngine/src/flutter/tools/gn --no-goma --android --android-cpu=arm64 --runtime-mode=release && ninja -C customEngine/src/out/android_release_arm64 +export PATH=$PATH:$(pwd)/depot_tools && customEngine/engine/src/flutter/tools/gn --no-goma --android --android-cpu=arm64 --runtime-mode=release && ninja -C customEngine/engine/src/out/android_release_arm64 cd "$ROOT_DIR" -export PATH=$PATH:$(pwd)/depot_tools && customEngine/src/flutter/tools/gn --no-goma --android --android-cpu=arm --runtime-mode=release && ninja -C customEngine/src/out/android_release +export PATH=$PATH:$(pwd)/depot_tools && customEngine/engine/src/flutter/tools/gn --no-goma --android --android-cpu=arm --runtime-mode=release && ninja -C customEngine/engine/src/out/android_release cd "$ROOT_DIR" -export PATH=$PATH:$(pwd)/depot_tools && customEngine/src/flutter/tools/gn --no-goma --android --android-cpu=x64 --runtime-mode=release && ninja -C customEngine/src/out/android_release_x64 +export PATH=$PATH:$(pwd)/depot_tools && customEngine/engine/src/flutter/tools/gn --no-goma --android --android-cpu=x64 --runtime-mode=release && ninja -C customEngine/engine/src/out/android_release_x64 cd "$ROOT_DIR" -cp customEngine/src/out/android_release_arm64/lib.stripped/libflutter.so libflutter_arm64.so 2>/dev/null -cp customEngine/src/out/android_release/lib.stripped/libflutter.so libflutter_arm.so 2>/dev/null -cp customEngine/src/out/android_release_x64/lib.stripped/libflutter.so libflutter_x64.so 2>/dev/null +cp customEngine/engine/src/out/android_release_arm64/lib.stripped/libflutter.so libflutter_arm64.so 2>/dev/null +cp customEngine/engine/src/out/android_release/lib.stripped/libflutter.so libflutter_arm.so 2>/dev/null +cp customEngine/engine/src/out/android_release_x64/lib.stripped/libflutter.so libflutter_x64.so 2>/dev/null diff --git a/scripts/enginehash.tmp.csv b/scripts/enginehash.tmp.csv index 8fbe6a8..66331f1 100644 --- a/scripts/enginehash.tmp.csv +++ b/scripts/enginehash.tmp.csv @@ -1,4 +1,9 @@ version,Engine_commit,Snapshot_Hash +3.32.0-0.1.pre,72ee26e314f471012ee4ee60b5cf1831c0ed6a45,23d3f13db16f63a2bdfdd5a7b1a0cf4a +3.29.3,cf56914b326edb0ccb123ffdc60f00060bd513fa,d91c0e6f35f0eb2e44124e8f42aa44a7 +3.31.0-0.1.pre,50f226569f331edf2831a7543f55d953c3d50637,3a2ef32389087437ce26ed8546143b8b +3.29.2,18b71d647a292a980abb405ac7d16fe1f0b20434,d91c0e6f35f0eb2e44124e8f42aa44a7 +3.29.1,871f65ac1bf129edb222c3293a636ff4b67534a6,d91c0e6f35f0eb2e44124e8f42aa44a7 3.30.0-0.1.pre,29a2f674ca2312e34a3ef796701c297dc3be1ae6,0a841ba78a1c491593464ebbc79a6bbb 3.29.0,f73bfc4522dd0bc87bbcdb4bb3088082755c5e87,d91c0e6f35f0eb2e44124e8f42aa44a7 3.27.4,82bd5b7209295a5b7ff8cae0df96e7870171e3a5,f956f595844a2f845a55707faaaa51e4 diff --git a/scripts/gen_enginehash.py b/scripts/gen_enginehash.py index 9be195d..2b1aeee 100644 --- a/scripts/gen_enginehash.py +++ b/scripts/gen_enginehash.py @@ -9,7 +9,7 @@ from requests import get -from src import ELFF +from src.utils import elff as ELFF release_url = ( "https://storage.googleapis.com/flutter_infra_release/releases/releases_linux.json" @@ -36,7 +36,6 @@ def get_snapshot_hash(engine_hash: str) -> str | None: engine_hash_path = "/tmp/{}".format(engine_hash) urlretrieve(snapshot_url.format(engine_hash), zip_file_path) with ZipFile(zip_file_path, "r") as zipObject: - listOfFileNames = zipObject.namelist() zipObject.extractall(engine_hash_path) gen_snapshot_file_path = "{}/gen_snapshot".format(engine_hash_path) if isfile(gen_snapshot_file_path): diff --git a/setup.py b/setup.py index ff8e618..993080a 100644 --- a/setup.py +++ b/setup.py @@ -24,7 +24,7 @@ setuptools.setup( name="reflutter", - version="0.8.4", + version="0.8.5", description=SHORT_DESCRIPTION, long_description=LONG_DESCRIPTION, long_description_content_type="text/markdown", diff --git a/src/__init__.py b/src/__init__.py index cddc4a2..1f8ec0b 100644 --- a/src/__init__.py +++ b/src/__init__.py @@ -102,6 +102,9 @@ def _build_engine(libapp_hash: str): or os.path.exists("tools/generate_package_config/pubspec.yaml") or os.path.exists("deps") or os.path.exists("src/flutter/third_party/dart/runtime/vm/dart.cc") + or os.path.exists( + "engine/src/flutter/third_party/dart/runtime/vm/dart.cc" + ) ): utils.patch_source(libapp_hash, abs(i), patch_dump) diff --git a/src/utils.py b/src/utils.py index b22c979..836e7dd 100644 --- a/src/utils.py +++ b/src/utils.py @@ -18,6 +18,9 @@ def replace_file_text(fname, textOrig, textReplace): new_third_party_path = "src/flutter/" + "/".join(fname.split("/")[1:]) if os.path.exists(new_third_party_path): fname = new_third_party_path + else: + # https://github.com/flutter/flutter/tree/master/engine + fname = "engine/src/flutter/" + "/".join(fname.split("/")[1:]) try: with open(fname, "r") as file: filedata = file.read()