diff --git a/flutter-new/.SRCINFO b/flutter-new/.SRCINFO new file mode 100644 index 0000000..9490ed1 --- /dev/null +++ b/flutter-new/.SRCINFO @@ -0,0 +1,276 @@ +pkgbase = flutter-newer + pkgdesc = A new mobile app SDK to help developers and designers build modern mobile apps for iOS and Android. + pkgver = 3.41.8 + pkgrel = 1 + url = https://flutter.dev + arch = x86_64 + arch = aarch64 + groups = flutter-newer + license = custom + license = BSD + license = CCPL + makedepends = dart>=3.11.0 + makedepends = dart<3.12.0 + makedepends = jq + makedepends = gradle + makedepends = unzip + makedepends = tar + noextract = material_fonts-3012db47f3130e62f7cc0beabff968a33cbec8d8.zip + noextract = gradle_wrapper-fd5c1f2c013565a3bea56ada6df9d2b8e96d56aa.tar.gz + noextract = android-x86-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = android-x64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = android-arm-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = android-arm-profile-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = android-arm-release-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = android-arm64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = android-arm64-profile-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = android-arm64-release-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = android-x64-profile-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = android-x64-release-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = flutter_web_sdk-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = sky_engine-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = flutter_patched_sdk-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = flutter_patched_sdk_product-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = android-arm-profile-linux-x64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = android-arm-release-linux-x64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = android-arm64-profile-linux-x64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = android-arm64-release-linux-x64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = android-x64-profile-linux-x64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = android-x64-release-linux-x64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = engine-x64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = gtk-debug-x64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = gtk-profile-x64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = gtk-release-x64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = font-subset-x64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = engine-arm64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = gtk-debug-arm64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = gtk-profile-arm64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = gtk-release-arm64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = font-subset-arm64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = dart-sdk-x64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + noextract = dart-sdk-arm64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip + options = !emptydirs + source = flutter-3.41.8.tar.xz::https://github.com/flutter/flutter/archive/refs/tags/3.41.8.tar.gz + source = material_fonts-3012db47f3130e62f7cc0beabff968a33cbec8d8.zip::https://storage.googleapis.com/flutter_infra_release/flutter/fonts/3012db47f3130e62f7cc0beabff968a33cbec8d8/fonts.zip + source = gradle_wrapper-fd5c1f2c013565a3bea56ada6df9d2b8e96d56aa.tar.gz::https://storage.googleapis.com/flutter_infra_release/gradle-wrapper/fd5c1f2c013565a3bea56ada6df9d2b8e96d56aa/gradle-wrapper.tgz + source = android-x86-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/android-x86/artifacts.zip + source = android-x64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/android-x64/artifacts.zip + source = android-arm-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/android-arm/artifacts.zip + source = android-arm-profile-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/android-arm-profile/artifacts.zip + source = android-arm-release-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/android-arm-release/artifacts.zip + source = android-arm64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/android-arm64/artifacts.zip + source = android-arm64-profile-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/android-arm64-profile/artifacts.zip + source = android-arm64-release-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/android-arm64-release/artifacts.zip + source = android-x64-profile-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/android-x64-profile/artifacts.zip + source = android-x64-release-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/android-x64-release/artifacts.zip + source = flutter_web_sdk-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/flutter-web-sdk.zip + source = sky_engine-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/sky_engine.zip + source = flutter_patched_sdk-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/flutter_patched_sdk.zip + source = flutter_patched_sdk_product-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/flutter_patched_sdk_product.zip + source = system-dart.patch + source = gradle-user-home.patch + source = flutter.sh + source = version.patch + source = no-lock.patch + source = no-runtime-download.patch + source = doctor.patch + source = opt-in-analytics.patch + sha256sums = 5b1e2b56c46fc801e7ccda1d2671bef0d7ceda250eaee0aa6708757d3cf70ff5 + sha256sums = e56fa8e9bb4589fde964be3de451f3e5b251e4a1eafb1dc98d94add034dd5a86 + sha256sums = 31e9428baf1a2b2f485f1110c5899f852649b33d46a2e9b07f9d17752d50190a + sha256sums = c0bbf4c97465f5d980adf4cb8c5b08bfc5c83765cf8449a0040fed96b2b6dfdf + sha256sums = fabdded4b99b9a8dc13e4b0cd689e056ce4ca5cc2fc720ebdce46540f4f61d93 + sha256sums = 292a7f72cfbc1f776a71f0e3ebc4bcb7cbb22526cc8cd6aa38a0e12068d78a04 + sha256sums = 59471ed9d184b1a415dea5fcc0f15c4cf67470671e69f1cbf16454e73176a806 + sha256sums = ccb0b718ea37033087bc0cf9b7ad72c48b6059f9750c26d7a799a0c059c94f4d + sha256sums = ab30f62ad3e504ff3f90ad8b9375a36dfaeb515dd931b968c7ea89bbf35a5d33 + sha256sums = 7556f1527452c545c659c731386fae92044b53a516f7151882d88a22573248b3 + sha256sums = 2f9573081075ef6eec6f41c510b83051a592946637c5360ef7f498c321ca3d75 + sha256sums = df65e4203bac7b257635bb061cef6fe421694ef84b51aad633b2352cb8ea9afa + sha256sums = 08a1960676f9fd5b65d9246ca498000aafae670f65910c61a7fc445230c0d5de + sha256sums = 544aac38a8e17fc4f69055f8527fda0d39fa8a1c1a6782947f25011b1869f650 + sha256sums = 2a1e241c982e9e84e2c3708a47fa15d46efdec32165fc781547818e12e56e881 + sha256sums = 1e85925ed58e03dfae6933fc8b83553edb5715e249cb16cd7a1f13e2143c6e50 + sha256sums = 12aae288cf53f0f4476ae8da7d20e46930dc1aa54c82a7ad33c93815af46588a + sha256sums = 47bea61b2d62a4637d56f2807661afd7d427f1f48434d1d132b7e6e10ffb6aa8 + sha256sums = e41d25d8cba8b0bb51ee0b20cb6b730bfb2c491d67c669ab8e3550d60b37fb5c + sha256sums = b4c104129eb57e7e3edca2e23376b8b034de2d466189bdc1c3e2a304506889a3 + sha256sums = f0c88e34c130f243786f7673d4c5f8fb5d1089c84b0604085aeb35a7fa8b3682 + sha256sums = cadd32aaac6beeb91052174d50494bb7e16444759fcdc8224ea13550657f525f + sha256sums = e26c476ad75647fe4441d56888b95837f586db5feb0fada5e51005eb0582ce32 + sha256sums = 34b02703c48f6686ffb2691a510607cfbe69beff9e726b47834b3298839542ca + sha256sums = 1578e819b6ee479b6db7a095bcfa74372d3ff555642c6d6ea7112e97bb6f2027 + source_x86_64 = dart-sdk-x64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/dart-sdk-linux-x64.zip + source_x86_64 = android-arm-profile-linux-x64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/android-arm-profile/linux-x64.zip + source_x86_64 = android-arm-release-linux-x64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/android-arm-release/linux-x64.zip + source_x86_64 = android-arm64-profile-linux-x64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/android-arm64-profile/linux-x64.zip + source_x86_64 = android-arm64-release-linux-x64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/android-arm64-release/linux-x64.zip + source_x86_64 = android-x64-profile-linux-x64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/android-x64-profile/linux-x64.zip + source_x86_64 = android-x64-release-linux-x64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/android-x64-release/linux-x64.zip + source_x86_64 = engine-x64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/linux-x64/artifacts.zip + source_x86_64 = gtk-debug-x64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/linux-x64-debug/linux-x64-flutter-gtk.zip + source_x86_64 = gtk-profile-x64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/linux-x64-profile/linux-x64-flutter-gtk.zip + source_x86_64 = gtk-release-x64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/linux-x64-release/linux-x64-flutter-gtk.zip + source_x86_64 = font-subset-x64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/linux-x64/font-subset.zip + sha256sums_x86_64 = 95f656395ee65b1dfefd901bfde47ffba372632c73aedf6d4a5a0745af7ede99 + sha256sums_x86_64 = bb404b6db7ebe7659029d1317feddbd71478f4ed45179e2ff73809ecf4b17da8 + sha256sums_x86_64 = 463cc7ecae76a93eeb674200fd84f22828ba77abb2c6092e0ad842b5a78ebf6b + sha256sums_x86_64 = a8d9b7138961de4ccda6b8da3705325eea7c120e9a057a7a6c734287be333a24 + sha256sums_x86_64 = 8ada43a61478eb161858383d9aff34539e4793e2c96c478ee21ca238d3ac7a65 + sha256sums_x86_64 = fefb35edcd75286fc5c1cd180173e41cf858a67f3fe06bf30fb7a02661834a66 + sha256sums_x86_64 = 63500eb4b868f18dcb97cf1d97fcaa7e49527d139da1c75499954d49ea7102b2 + sha256sums_x86_64 = 711e8a1ff2d32ad8e466932a0700bd86010691101845bd6d10abb5d632ca8d69 + sha256sums_x86_64 = f24957d2d0ffec95c30cbf4f9d6f9fb5e7e2fb2689bbebba56b6233918dc8264 + sha256sums_x86_64 = 1f97105ba7a98f3572666f850d1fdb8a3247418f84c738fb1d8abd29b414e221 + sha256sums_x86_64 = 649fff2f7c97b6255c91e66e23a0e18d6e185c95464e2adbded2ae2e02b74348 + sha256sums_x86_64 = a530e658c56d3d53d633c5cd49c4889f31858c48987645e39c9c34d03de01c60 + source_aarch64 = dart-sdk-arm64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/dart-sdk-linux-arm64.zip + source_aarch64 = engine-arm64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/linux-arm64/artifacts.zip + source_aarch64 = gtk-debug-arm64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/linux-arm64-debug/linux-arm64-flutter-gtk.zip + source_aarch64 = gtk-profile-arm64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/linux-arm64-profile/linux-arm64-flutter-gtk.zip + source_aarch64 = gtk-release-arm64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/linux-arm64-release/linux-arm64-flutter-gtk.zip + source_aarch64 = font-subset-arm64-59aa584fdf100e6c78c785d8a5b565d1de4b48ab.zip::https://storage.googleapis.com/flutter_infra_release/flutter/59aa584fdf100e6c78c785d8a5b565d1de4b48ab/linux-arm64/font-subset.zip + sha256sums_aarch64 = 6c7be6855ad072137ef3294a0858d84b6920049f45a6981b17dc557d1dbf3acb + sha256sums_aarch64 = 959709551f4d8fb969e148d38466f15ecf456aa913e45386692bbe6c6729a6c4 + sha256sums_aarch64 = 76e6d37367f7f4ddecc4e28f7e71e53430abf4546333e067d00e4a3fbf51c5c5 + sha256sums_aarch64 = 3282e3a25e511e6a35317f0f4440dba0374972e9861c63eba72f83aefa607f4c + sha256sums_aarch64 = fd32cdb5a9331412138564958aff62e2662ebd618c2bff2988757fed70c20858 + sha256sums_aarch64 = cd54a1d2d94dc6e56c7514c37c46765da07aa04367831db675b178a165130e40 + +pkgname = flutter-newer + pkgdesc = Flutter SDK component - full installation of development tool and runtime + depends = flutter-newer-devel + depends = flutter-newer-target-linux + depends = flutter-newer-target-android + depends = flutter-newer-target-web + depends = flutter-newer-intellij-patch + provides = flutter=3.41.8 + conflicts = flutter + +pkgname = flutter-newer-common + pkgdesc = Flutter SDK component - common SDK files and pub cache + install = flutter-common.install + provides = flutter-common=3.41.8 + conflicts = flutter-common + +pkgname = flutter-newer-gradle + pkgdesc = Flutter SDK component - gradle wrapper + provides = flutter-gradle=3.41.8 + conflicts = flutter-gradle + +pkgname = flutter-newer-tool + pkgdesc = Flutter SDK component - CLI tool (for packaging only) + depends = flutter-newer-common + depends = dart>=3.11.0 + depends = bash + depends = curl + depends = file + depends = git + depends = coreutils + depends = unzip + depends = which + depends = xz + depends = zip + depends = glu + provides = flutter-tool=3.41.8 + conflicts = flutter-tool + +pkgname = flutter-newer-devel + pkgdesc = Flutter SDK component - CLI tool (for application development) + depends = flutter-newer-tool + depends = dart>=3.11.0 + provides = flutter-devel=3.41.8 + conflicts = flutter-devel + replaces = flutter-tool-developer + +pkgname = flutter-newer-target-linux + pkgdesc = Flutter SDK component - linux target files + depends = flutter-newer-tool + depends = flutter-newer-engine-linux + depends = dart>=3.11.0 + depends = clang + depends = cmake + depends = ninja + depends = pkgconf + depends = gtk3 + depends = libglvnd + provides = flutter-target-linux=3.41.8 + conflicts = flutter-target-linux + +pkgname = flutter-newer-target-android + pkgdesc = Flutter SDK component - android target files + depends = flutter-newer-tool + depends = flutter-newer-engine-android + depends = flutter-newer-gradle + optdepends = android-sdk: develop for Android devices + optdepends = java-environment: develop for Android devices + provides = flutter-target-android=3.41.8 + conflicts = flutter-target-android + +pkgname = flutter-newer-target-web + pkgdesc = Flutter SDK component - web target files + depends = flutter-newer-tool + depends = flutter-newer-engine-web + provides = flutter-target-web=3.41.8 + conflicts = flutter-target-web + +pkgname = flutter-newer-intellij-patch + pkgdesc = Flutter SDK component - IntelliJ Flutter plugin hotfix + depends = flutter-newer-common + optdepends = android-studio + optdepends = intellij-idea-community-edition + optdepends = intellij-idea-ultimate-edition + provides = flutter-intellij-patch=3.41.8 + conflicts = flutter-intellij-patch + +pkgname = flutter-newer-artifacts-engine-common-google-bin + pkgdesc = Flutter SDK component - common engine files + depends = flutter-newer-common + depends = flutter-sky-engine + depends = flutter-material-fonts + depends = dart>=3.11.0 + provides = flutter-engine-common=3.41.8 + conflicts = flutter-engine-common + +pkgname = flutter-newer-artifacts-engine-linux-google-bin + pkgdesc = Flutter SDK component - linux engine + depends = flutter-engine-common + provides = flutter-engine-linux=3.41.8 + provides = flutter-newer-engine-linux=3.41.8 + conflicts = flutter-engine-linux + +pkgname = flutter-newer-artifacts-engine-web-google-bin + pkgdesc = Flutter SDK component - web engine + depends = flutter-engine-common + provides = flutter-engine-web=3.41.8 + provides = flutter-newer-engine-web=3.41.8 + conflicts = flutter-engine-web + +pkgname = flutter-newer-artifacts-engine-android-google-bin + pkgdesc = Flutter SDK component - android engine + depends = flutter-engine-common + provides = flutter-engine-android=3.41.8 + provides = flutter-newer-engine-android=3.41.8 + conflicts = flutter-engine-android + +pkgname = flutter-newer-artifacts-sky-engine-google-bin + pkgdesc = Flutter SDK component - sky-engine + provides = flutter-sky-engine=3.41.8 + conflicts = flutter-sky-engine + +pkgname = flutter-newer-artifacts-material-fonts-google-bin + pkgdesc = Flutter SDK component - material fonts + provides = flutter-material-fonts=3.41.8 + conflicts = flutter-material-fonts + +pkgname = flutter-newer-artifacts-gradle-google-bin + pkgdesc = Flutter SDK component - gradle wrapper + depends = flutter-newer-common + provides = flutter-gradle=3.41.8 + conflicts = flutter-gradle + +pkgname = flutter-newer-artifacts-dart-google-bin + pkgdesc = Flutter SDK component - Dart SDK + depends = glibc + provides = dart=3.11.5 + conflicts = dart diff --git a/flutter-new/.gitignore b/flutter-new/.gitignore new file mode 100644 index 0000000..682f7d0 --- /dev/null +++ b/flutter-new/.gitignore @@ -0,0 +1,10 @@ +flutter-*.pkg.tar.zst +flutter-*.pkg.tar +flutter-*.tar.xz +flutter-*.log +PKGBUILD-namcap.log +pkg/ +src/ +*.zip +*.tar.gz +*.idea diff --git a/flutter-new/PKGBUILD b/flutter-new/PKGBUILD new file mode 100644 index 0000000..70af263 --- /dev/null +++ b/flutter-new/PKGBUILD @@ -0,0 +1,734 @@ +# Maintainer: WithTheBraid +# Co-Maintainer: Polarian , Fredy GarcΓ­a +# Contributor: Philip Goto + +pkgbase=flutter-newer +_group=flutter +groups=("$pkgbase") +pkgver=3.41.8 +_enginever=59aa584fdf100e6c78c785d8a5b565d1de4b48ab +_materialfontsver=3012db47f3130e62f7cc0beabff968a33cbec8d8 +_gradlewver=fd5c1f2c013565a3bea56ada6df9d2b8e96d56aa +_flutterarch=$(echo "$CARCH" | sed s/aarch64/arm64/ | sed s/x86_64/x64/) +_dartver="3.11.5" +_dartmin="3.11.0" +_dartmax="3.12.0" +# this host is blocked in China, according to Flutter docs, the FLUTTER_STORAGE_BASE_URL environment variable +# should be used to provide an alternative mirror +_storagebase="${FLUTTER_STORAGE_BASE_URL:-"https://storage.googleapis.com"}" +pkgrel=1 +pkgdesc="A new mobile app SDK to help developers and designers build modern mobile apps for iOS and Android." +_pkgdesc="Flutter SDK component" +arch=("x86_64" "aarch64") +url="https://${_group}.dev" +license=("custom" "BSD" "CCPL") +makedepends=( + "dart>=${_dartmin}" + "dart<${_dartmax}" + "jq" + "gradle" + "unzip" + "tar" +) +options=("!emptydirs") +source=( + "${_group}-${pkgver}.tar.xz::https://github.com/${_group}/${_group}/archive/refs/tags/${pkgver/.hotfix/+hotfix}.tar.gz" + + # ARTIFACTS + + # material_fonts + "material_fonts-${_materialfontsver}.zip::${_storagebase}/flutter_infra_release/flutter/fonts/${_materialfontsver}/fonts.zip" + # gradle_wrapper + "gradle_wrapper-${_gradlewver}.tar.gz::${_storagebase}/flutter_infra_release/gradle-wrapper/${_gradlewver}/gradle-wrapper.tgz" + + # engine/android-x86 + "android-x86-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/android-x86/artifacts.zip" + # engine/android-x64 + "android-x64-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/android-x64/artifacts.zip" + # engine/android-arm + "android-arm-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/android-arm/artifacts.zip" + # engine/android-arm-profile + "android-arm-profile-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/android-arm-profile/artifacts.zip" + # engine/android-arm-release + "android-arm-release-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/android-arm-release/artifacts.zip" + # engine/android-arm64 + "android-arm64-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/android-arm64/artifacts.zip" + # engine/android-arm64-profile + "android-arm64-profile-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/android-arm64-profile/artifacts.zip" + # engine/android-arm64-release + "android-arm64-release-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/android-arm64-release/artifacts.zip" + + # engine/android-x64-profile + "android-x64-profile-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/android-x64-profile/artifacts.zip" + # engine/android-x64-release + "android-x64-release-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/android-x64-release/artifacts.zip" + + # flutter_web_sdk + "flutter_web_sdk-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/flutter-web-sdk.zip" + # pkg + "sky_engine-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/sky_engine.zip" + + # engine/common + "flutter_patched_sdk-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/flutter_patched_sdk.zip" + # engine/common + "flutter_patched_sdk_product-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/flutter_patched_sdk_product.zip" + + # PATCHES + + "system-dart.patch" + "gradle-user-home.patch" + + # thanks to lauren n. liberda from Alpine for the awesome patchset used here ! + "${_group}.sh" + "version.patch" + "no-lock.patch" + "no-runtime-download.patch" + "doctor.patch" + "opt-in-analytics.patch" +) +source_x86_64=( + # dart-sdk + "dart-sdk-x64-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/dart-sdk-linux-x64.zip" + # engine/android-arm-profile/linux-x64 + "android-arm-profile-linux-x64-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/android-arm-profile/linux-x64.zip" + # engine/android-arm-release/linux-x64 + "android-arm-release-linux-x64-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/android-arm-release/linux-x64.zip" + # engine/android-arm64-profile/linux-x64 + "android-arm64-profile-linux-x64-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/android-arm64-profile/linux-x64.zip" + # engine/android-arm64-release/linux-x64 + "android-arm64-release-linux-x64-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/android-arm64-release/linux-x64.zip" + # engine/android-x64-profile/linux-x64 + "android-x64-profile-linux-x64-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/android-x64-profile/linux-x64.zip" + # engine/android-x64-release/linux-x64 + "android-x64-release-linux-x64-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/android-x64-release/linux-x64.zip" + + # engine/linux-$ARCH + "engine-x64-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/linux-x64/artifacts.zip" + # engine/linux-$ARCH + "gtk-debug-x64-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/linux-x64-debug/linux-x64-flutter-gtk.zip" + # engine/linux-$ARCH-profile + "gtk-profile-x64-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/linux-x64-profile/linux-x64-flutter-gtk.zip" + # engine/linux-$ARCH-release + "gtk-release-x64-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/linux-x64-release/linux-x64-flutter-gtk.zip" + # engine/linux-$ARCH + "font-subset-x64-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/linux-x64/font-subset.zip" +) +source_aarch64=( + # dart-sdk + "dart-sdk-arm64-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/dart-sdk-linux-arm64.zip" + # engine/linux-$ARCH + "engine-arm64-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/linux-arm64/artifacts.zip" + # engine/linux-$ARCH + "gtk-debug-arm64-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/linux-arm64-debug/linux-arm64-flutter-gtk.zip" + # engine/linux-$ARCH-profile + "gtk-profile-arm64-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/linux-arm64-profile/linux-arm64-flutter-gtk.zip" + # engine/linux-$ARCH-release + "gtk-release-arm64-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/linux-arm64-release/linux-arm64-flutter-gtk.zip" + # engine/linux-$ARCH + "font-subset-arm64-${_enginever}.zip::${_storagebase}/flutter_infra_release/flutter/${_enginever}/linux-arm64/font-subset.zip" +) +noextract=( + "material_fonts-${_materialfontsver}.zip" + "gradle_wrapper-${_gradlewver}.tar.gz" + + "android-x86-${_enginever}.zip" + "android-x64-${_enginever}.zip" + "android-arm-${_enginever}.zip" + "android-arm-profile-${_enginever}.zip" + "android-arm-release-${_enginever}.zip" + "android-arm64-${_enginever}.zip" + "android-arm64-profile-${_enginever}.zip" + "android-arm64-release-${_enginever}.zip" + + "android-x64-profile-${_enginever}.zip" + "android-x64-release-${_enginever}.zip" + + "flutter_web_sdk-${_enginever}.zip" + "sky_engine-${_enginever}.zip" + "flutter_patched_sdk-${_enginever}.zip" + "flutter_patched_sdk_product-${_enginever}.zip" + + # x64 + "android-arm-profile-linux-x64-${_enginever}.zip" + "android-arm-release-linux-x64-${_enginever}.zip" + "android-arm64-profile-linux-x64-${_enginever}.zip" + "android-arm64-release-linux-x64-${_enginever}.zip" + "android-x64-profile-linux-x64-${_enginever}.zip" + "android-x64-release-linux-x64-${_enginever}.zip" + + "engine-x64-${_enginever}.zip" + "gtk-debug-x64-${_enginever}.zip" + "gtk-profile-x64-${_enginever}.zip" + "gtk-release-x64-${_enginever}.zip" + "font-subset-x64-${_enginever}.zip" + + # arm64 + "engine-arm64-${_enginever}.zip" + "gtk-debug-arm64-${_enginever}.zip" + "gtk-profile-arm64-${_enginever}.zip" + "gtk-release-arm64-${_enginever}.zip" + "font-subset-arm64-${_enginever}.zip" + + # dart + "dart-sdk-x64-${_enginever}.zip" + "dart-sdk-arm64-${_enginever}.zip" +) + +sha256sums=('5b1e2b56c46fc801e7ccda1d2671bef0d7ceda250eaee0aa6708757d3cf70ff5' + 'e56fa8e9bb4589fde964be3de451f3e5b251e4a1eafb1dc98d94add034dd5a86' + '31e9428baf1a2b2f485f1110c5899f852649b33d46a2e9b07f9d17752d50190a' + 'c0bbf4c97465f5d980adf4cb8c5b08bfc5c83765cf8449a0040fed96b2b6dfdf' + 'fabdded4b99b9a8dc13e4b0cd689e056ce4ca5cc2fc720ebdce46540f4f61d93' + '292a7f72cfbc1f776a71f0e3ebc4bcb7cbb22526cc8cd6aa38a0e12068d78a04' + '59471ed9d184b1a415dea5fcc0f15c4cf67470671e69f1cbf16454e73176a806' + 'ccb0b718ea37033087bc0cf9b7ad72c48b6059f9750c26d7a799a0c059c94f4d' + 'ab30f62ad3e504ff3f90ad8b9375a36dfaeb515dd931b968c7ea89bbf35a5d33' + '7556f1527452c545c659c731386fae92044b53a516f7151882d88a22573248b3' + '2f9573081075ef6eec6f41c510b83051a592946637c5360ef7f498c321ca3d75' + 'df65e4203bac7b257635bb061cef6fe421694ef84b51aad633b2352cb8ea9afa' + '08a1960676f9fd5b65d9246ca498000aafae670f65910c61a7fc445230c0d5de' + '544aac38a8e17fc4f69055f8527fda0d39fa8a1c1a6782947f25011b1869f650' + '2a1e241c982e9e84e2c3708a47fa15d46efdec32165fc781547818e12e56e881' + '1e85925ed58e03dfae6933fc8b83553edb5715e249cb16cd7a1f13e2143c6e50' + '12aae288cf53f0f4476ae8da7d20e46930dc1aa54c82a7ad33c93815af46588a' + '47bea61b2d62a4637d56f2807661afd7d427f1f48434d1d132b7e6e10ffb6aa8' + 'e41d25d8cba8b0bb51ee0b20cb6b730bfb2c491d67c669ab8e3550d60b37fb5c' + 'b4c104129eb57e7e3edca2e23376b8b034de2d466189bdc1c3e2a304506889a3' + 'f0c88e34c130f243786f7673d4c5f8fb5d1089c84b0604085aeb35a7fa8b3682' + 'cadd32aaac6beeb91052174d50494bb7e16444759fcdc8224ea13550657f525f' + 'e26c476ad75647fe4441d56888b95837f586db5feb0fada5e51005eb0582ce32' + '34b02703c48f6686ffb2691a510607cfbe69beff9e726b47834b3298839542ca' + '1578e819b6ee479b6db7a095bcfa74372d3ff555642c6d6ea7112e97bb6f2027') +sha256sums_x86_64=('95f656395ee65b1dfefd901bfde47ffba372632c73aedf6d4a5a0745af7ede99' + 'bb404b6db7ebe7659029d1317feddbd71478f4ed45179e2ff73809ecf4b17da8' + '463cc7ecae76a93eeb674200fd84f22828ba77abb2c6092e0ad842b5a78ebf6b' + 'a8d9b7138961de4ccda6b8da3705325eea7c120e9a057a7a6c734287be333a24' + '8ada43a61478eb161858383d9aff34539e4793e2c96c478ee21ca238d3ac7a65' + 'fefb35edcd75286fc5c1cd180173e41cf858a67f3fe06bf30fb7a02661834a66' + '63500eb4b868f18dcb97cf1d97fcaa7e49527d139da1c75499954d49ea7102b2' + '711e8a1ff2d32ad8e466932a0700bd86010691101845bd6d10abb5d632ca8d69' + 'f24957d2d0ffec95c30cbf4f9d6f9fb5e7e2fb2689bbebba56b6233918dc8264' + '1f97105ba7a98f3572666f850d1fdb8a3247418f84c738fb1d8abd29b414e221' + '649fff2f7c97b6255c91e66e23a0e18d6e185c95464e2adbded2ae2e02b74348' + 'a530e658c56d3d53d633c5cd49c4889f31858c48987645e39c9c34d03de01c60') +sha256sums_aarch64=('6c7be6855ad072137ef3294a0858d84b6920049f45a6981b17dc557d1dbf3acb' + '959709551f4d8fb969e148d38466f15ecf456aa913e45386692bbe6c6729a6c4' + '76e6d37367f7f4ddecc4e28f7e71e53430abf4546333e067d00e4a3fbf51c5c5' + '3282e3a25e511e6a35317f0f4440dba0374972e9861c63eba72f83aefa607f4c' + 'fd32cdb5a9331412138564958aff62e2662ebd618c2bff2988757fed70c20858' + 'cd54a1d2d94dc6e56c7514c37c46765da07aa04367831db675b178a165130e40') + +prepare() { + # SDK + + # this is required in case people try to build with `aur/dart-sdk-dev` instead of `extra/dart` + DART_BINARY=$(readlink $(command -v dart)) + DART_ROOT=${DART_ROOT:-${DART_BINARY/\/bin\/dart*/}} + + if [ "${DART_ROOT}" != "/opt/dart-sdk" ]; then + echo -e "\n\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n" + + echo -e " WARNING !!!\n" + + echo -e " Your default Dart SDK does not seem to be installed into\n" + echo -e " /opt/dart-sdk\n" + echo -e " Please consider using the original 'extra/dart' package" + echo -e " from the Arch Linux package repositories. We otherwise" + echo -e " cannot ensure the Flutter tool will work as expected.\n\n" + echo -e " Dart executable: $(command -v dart)" + echo -e " Resolved Dart SDK: ${DART_ROOT}" + + echo -e "\n\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n" + fi + + if [[ ! "$DART_ROOT" =~ ^\/opt\/ && ! "$DART_ROOT" =~ ^\/usr\/ ]]; then + echo "FATAL: DART_ROOT is neither in /opt nor /usr. You must use a system wide Dart installation for this package. Exiting." + exit 1 + fi + + if [ -d "${srcdir}/${_group}" ]; then + rm -rf "${srcdir}/${_group}" + fi + + mv "${srcdir}/${_group}-${pkgver/.hotfix/+hotfix}" "${srcdir}/${_group}" + patch -p1 -i "${srcdir}/system-dart.patch" -d "${srcdir}/${_group}" + patch -p1 -i "${srcdir}/gradle-user-home.patch" -d "${srcdir}/${_group}" + patch -p1 -i "${srcdir}/version.patch" -d "${srcdir}/${_group}" + patch -p1 -i "${srcdir}/no-lock.patch" -d "${srcdir}/${_group}" + patch -p1 -i "${srcdir}/no-runtime-download.patch" -d "${srcdir}/${_group}" + patch -p1 -i "${srcdir}/doctor.patch" -d "${srcdir}/${_group}" + patch -p1 -i "${srcdir}/opt-in-analytics.patch" -d "${srcdir}/${_group}" + + echo "${pkgver}" > "${srcdir}/${_group}/version" + mkdir -p "${srcdir}/${_group}/bin/cache/artifacts" + cat > "${srcdir}/${_group}/bin/cache/flutter.version.json" < "${srcdir}/${_group}/bin/cache/engine.stamp" + touch "${srcdir}/${_group}/bin/cache/engine.realm" + + sed -Ei 's|'"$PUB_CACHE"'|/usr/lib/flutter/pub-cache|g' "${srcdir}/${_group}/packages/flutter_tools/.dart_tool/package_config.json" + find "$PUB_CACHE" -name '*.aot' -delete +} + +# SDK + +_package() { + pkgdesc="${_pkgdesc} - full installation of development tool and runtime" + depends=( + "${pkgbase}-devel" "${pkgbase}-target-linux" "${pkgbase}-target-android" "${pkgbase}-target-web" "${pkgbase}-intellij-patch") + provides=("${_group}=${pkgver}") + conflicts=("${_group}") +} + +_package-common() { + pkgdesc="${_pkgdesc} - common SDK files and pub cache" + install="${_group}-common.install" + provides=("${_group}-common=${pkgver}") + conflicts=("${_group}-common") + + install -Dm644 "${srcdir}/${_group}/LICENSE" "${pkgdir}/usr/share/licenses/${_group}/LICENSE" + + install -dm755 "${pkgdir}/usr/lib/${_group}" + install -dm755 "${pkgdir}/usr/lib/${_group}/packages/flutter" + install -dm755 "${pkgdir}/usr/lib/${_group}/packages/flutter_driver" + install -dm755 "${pkgdir}/usr/lib/${_group}/packages/flutter_goldens" + install -dm755 "${pkgdir}/usr/lib/${_group}/packages/flutter_localizations" + install -dm755 "${pkgdir}/usr/lib/${_group}/packages/flutter_test" + install -dm755 "${pkgdir}/usr/lib/${_group}/packages/flutter_web_plugins" + install -dm755 "${pkgdir}/usr/lib/${_group}/packages/fuchsia_remote_debug_protocol" + install -dm755 "${pkgdir}/usr/lib/${_group}/packages/integration_test" + + cp -ra "${srcdir}/${_group}/packages/flutter/"{pubspec.yaml,lib} "${pkgdir}/usr/lib/${_group}/packages/flutter" + cp -ra "${srcdir}/${_group}/packages/flutter_driver/"{pubspec.yaml,lib} "${pkgdir}/usr/lib/${_group}/packages/flutter_driver" + cp -ra "${srcdir}/${_group}/packages/flutter_goldens/"{pubspec.yaml,lib} "${pkgdir}/usr/lib/${_group}/packages/flutter_goldens" + cp -ra "${srcdir}/${_group}/packages/flutter_localizations/"{pubspec.yaml,lib} "${pkgdir}/usr/lib/${_group}/packages/flutter_localizations" + cp -ra "${srcdir}/${_group}/packages/flutter_test/"{pubspec.yaml,lib} "${pkgdir}/usr/lib/${_group}/packages/flutter_test" + cp -ra "${srcdir}/${_group}/packages/flutter_web_plugins/"{pubspec.yaml,lib} "${pkgdir}/usr/lib/${_group}/packages/flutter_web_plugins" + cp -ra "${srcdir}/${_group}/packages/fuchsia_remote_debug_protocol/"{pubspec.yaml,lib} "${pkgdir}/usr/lib/${_group}/packages/fuchsia_remote_debug_protocol" + cp -ra "${srcdir}/${_group}/packages/integration_test/"{pubspec.yaml,lib,android} "${pkgdir}/usr/lib/${_group}/packages/integration_test" +} + +_package-target-linux() { + pkgdesc="${_pkgdesc} - linux target files" + depends=( + "${pkgbase}-tool" +"${pkgbase}-engine-linux" + "dart>=${_dartmin}" + "clang" + "cmake" + "ninja" + "pkgconf" # base-devel, but runtime dependency + # runtime shared libraries + "gtk3" + "libglvnd" # https://github.com/flutter/engine/pull/16924 + ) + provides=("${_group}-target-linux=${pkgver}") + conflicts=("${_group}-target-linux") + + install -dm755 "${pkgdir}/usr/lib/${_group}/packages/flutter_tools/bin" + + cp -ra "${srcdir}/${_group}/packages/flutter_tools/bin/tool_backend.sh" "${pkgdir}/usr/lib/${_group}/packages/flutter_tools/bin" + cp -ra "${srcdir}/${_group}/packages/flutter_tools/bin/tool_backend.dart" "${pkgdir}/usr/lib/${_group}/packages/flutter_tools/bin" +} + +_package-target-web() { + pkgdesc="${_pkgdesc} - web target files" + depends=( + "${pkgbase}-tool" + "${pkgbase}-engine-web" + ) + provides=("${_group}-target-web=${pkgver}") + conflicts=("${_group}-target-web") + + install -dm755 "${pkgdir}/usr/lib/${_group}/packages/flutter_tools/lib/src/web" + + cp -ra "${srcdir}/${_group}/packages/flutter_tools/lib/src/web/file_generators" "${pkgdir}/usr/lib/${_group}/packages/flutter_tools/lib/src/web" +} + +_package-target-android() { + pkgdesc="${_pkgdesc} - android target files" + depends=( + "${pkgbase}-tool" + "${pkgbase}-engine-android" + "${pkgbase}-gradle" + ) + optdepends=("android-sdk: develop for Android devices" + "java-environment: develop for Android devices" + ) + provides=("${_group}-target-android=${pkgver}") + conflicts=("${_group}-target-android") + + install -dm755 "${pkgdir}/usr/lib/${_group}/packages/flutter_tools" + install -dm755 "${pkgdir}/usr/lib/${_group}/bin/internal" + + cp -ra "${srcdir}/${_group}/packages/flutter_tools/gradle" "${pkgdir}/usr/lib/${_group}/packages/flutter_tools" + # TODO: get rid of this ugly hack + mkdir -m777 "${pkgdir}/usr/lib/${_group}/packages/flutter_tools/gradle/.kotlin" + + install -Dm644 "${srcdir}/${_group}/bin/internal/engine.version" "${pkgdir}/usr/lib/${_group}/bin/internal" + +} + +_package-gradle() { + pkgdesc="${_pkgdesc} - gradle wrapper" + provides=( + "${_group}-gradle=${pkgver}" + ) + conflicts=( + "${_group}-gradle" + ) + + install -dm755 "${pkgdir}/usr/lib/${_group}/bin/cache/artifacts" + + cp -ra "${srcdir}/${_group}/bin/cache/artifacts/gradle_wrapper" "${pkgdir}/usr/lib/${_group}/bin/cache/artifacts" +} + +_package-tool() { + pkgdesc="${_pkgdesc} - CLI tool (for packaging only)" + depends=( + "${pkgbase}-common" + # TODO: completely compile Flutter tool standalone and drop dependency + "dart>=${_dartmin}" + # commands first + "bash" + "curl" + "file" # base-devel, but runtime dependency + "git" + "coreutils" # explicit dependency to mkdir, rm + "unzip" + "which" # base-devel, but runtime dependency + "xz" + "zip" + "glu" # libGLU.so.1 required for flutter test + ) + provides=("${_group}-tool=${pkgver}") + conflicts=("${_group}-tool") + + + install -dm755 "${pkgdir}/usr/lib/${_group}" + install -dm755 "${pkgdir}/usr/lib/${_group}/bin/cache" + install -dm755 "${pkgdir}/usr/lib/${_group}/dev" + install -dm755 "${pkgdir}/usr/lib/${_group}/packages/flutter_tools/.dart_tool" + + # otherwise flutter analyze will crash + touch "${pkgdir}/usr/lib/${_group}/dev/.hack-flutter-analyze" + + install -Dm644 "${srcdir}/${_group}/bin/cache/engine.stamp" "${pkgdir}/usr/lib/${_group}/bin/cache" + install -Dm644 "${srcdir}/${_group}/bin/cache/engine.realm" "${pkgdir}/usr/lib/${_group}/bin/cache" + install -Dm644 "${srcdir}/${_group}/bin/cache/flutter_tools.snapshot" "${pkgdir}/usr/lib/${_group}/bin/cache" + install -Dm644 "${srcdir}/${_group}/bin/cache/flutter.version.json" "${pkgdir}/usr/lib/${_group}/bin/cache" + install -Dm644 "${srcdir}/${_group}/version" "${pkgdir}/usr/lib/${_group}" + install -Dm644 "${srcdir}/${_group}/packages/flutter_tools/.dart_tool/package_config.json" "${pkgdir}/usr/lib/${_group}/packages/flutter_tools/.dart_tool" + + install -dm755 "${pkgdir}/usr/bin" + install -Dm755 "${srcdir}/${_group}.sh" "${pkgdir}/usr/lib/${_group}/bin/flutter" + ln -sf "/usr/lib/flutter/bin/flutter" "${pkgdir}/usr/bin/flutter" +} + +_package-devel() { + pkgdesc="${_pkgdesc} - CLI tool (for application development)" + depends=( + "${pkgbase}-tool" + "dart>=${_dartmin}" + ) + replaces=("${_group}-tool-developer") + provides=("${_group}-devel=${pkgver}") + conflicts=("${_group}-devel") + + install -dm755 "${pkgdir}/usr/lib/${_group}" + install -dm755 "${pkgdir}/usr/lib/${_group}/packages/flutter_tools" + + cp -ra "${srcdir}/${_group}/examples" "${pkgdir}/usr/lib/${_group}" + cp -ra "${srcdir}/${_group}/packages/flutter_tools/templates" "${pkgdir}/usr/lib/${_group}/packages/flutter_tools" + + # TODO: patch `flutter create` to run without pub cache + cp -ra "${srcdir}/${_group}/pub-cache" "${pkgdir}/usr/lib/${_group}/pub-cache" +} + +_package-intellij-patch() { + pkgdesc="${_pkgdesc} - IntelliJ Flutter plugin hotfix" + depends=("${pkgbase}-common") + optdepends=( + "android-studio" + "intellij-idea-community-edition" + "intellij-idea-ultimate-edition" + ) + provides=("${_group}-intellij-patch=${pkgver}") + conflicts=("${_group}-intellij-patch") + + # this is required in case people try to build with `aur/dart-sdk-dev` instead of `extra/dart` + DART_BINARY=$(readlink $(command -v dart)) + DART_ROOT=${DART_ROOT:-${DART_BINARY/\/bin\/dart*/}} + + install -dm755 "${pkgdir}/usr/lib/${_group}/bin/cache" + + # * not my fault grumble * : The IntelliJ Flutter plugin enforces this relative Dart SDK + ln -sf "${DART_ROOT}/bin/dart" "${pkgdir}/usr/lib/${_group}/bin/dart" + ln -sf "${DART_ROOT}" "${pkgdir}/usr/lib/${_group}/bin/cache/dart-sdk" +} + +# ARTIFACTS + +_package-artifacts-engine-common-google-bin() { + pkgdesc="${_pkgdesc} - common engine files" + depends=( + "${pkgbase}-common" + "${_group}-sky-engine" + "${_group}-material-fonts" + "dart>=${_dartmin}" + ) + provides=( + "${_group}-engine-common=${pkgver}" + ) + conflicts=( + "${_group}-engine-common" + ) + + install -dm755 "${pkgdir}/usr/lib/${_group}/bin/cache/artifacts/engine" + + cp -ra "${srcdir}/${_group}/bin/cache/artifacts/engine/common" "${pkgdir}/usr/lib/${_group}/bin/cache/artifacts/engine/common" +} + +_package-artifacts-sky-engine-google-bin() { + pkgdesc="${_pkgdesc} - sky-engine" + provides=( + "${_group}-sky-engine=${pkgver}" + ) + conflicts=( + "${_group}-sky-engine" + ) + + install -dm755 "${pkgdir}/usr/lib/${_group}/bin/cache" + + cp -ra "${srcdir}/${_group}/bin/cache/pkg" "${pkgdir}/usr/lib/${_group}/bin/cache/pkg" +} + +_package-artifacts-material-fonts-google-bin() { + pkgdesc="${_pkgdesc} - material fonts" + provides=( + "${_group}-material-fonts=${pkgver}" + ) + conflicts=( + "${_group}-material-fonts" + ) + + install -dm755 "${pkgdir}/usr/lib/${_group}/bin/cache/artifacts" + + cp -ra "${srcdir}/${_group}/bin/cache/artifacts/material_fonts" "${pkgdir}/usr/lib/${_group}/bin/cache/artifacts/material_fonts" +} + +_package-artifacts-engine-linux-google-bin() { + pkgdesc="${_pkgdesc} - linux engine" + depends=( + "${_group}-engine-common" + ) + provides=( + "${_group}-engine-linux=${pkgver}" + "${pkgbase}-engine-linux=${pkgver}" + ) + conflicts=( + "${_group}-engine-linux" + ) + + install -dm755 "${pkgdir}/usr/lib/${_group}/bin/cache/artifacts/engine" + + cp -ra "${srcdir}/${_group}/bin/cache/artifacts/engine/linux-${_flutterarch}" "${pkgdir}/usr/lib/${_group}/bin/cache/artifacts/engine" + cp -ra "${srcdir}/${_group}/bin/cache/artifacts/engine/linux-${_flutterarch}-profile" "${pkgdir}/usr/lib/${_group}/bin/cache/artifacts/engine" + cp -ra "${srcdir}/${_group}/bin/cache/artifacts/engine/linux-${_flutterarch}-release" "${pkgdir}/usr/lib/${_group}/bin/cache/artifacts/engine" +} + +_package-artifacts-engine-web-google-bin() { + pkgdesc="${_pkgdesc} - web engine" + depends=( + "${_group}-engine-common" + ) + provides=( + "${_group}-engine-web=${pkgver}" + "${pkgbase}-engine-web=${pkgver}" + ) + conflicts=( + "${_group}-engine-web" + ) + + install -dm755 "${pkgdir}/usr/lib/${_group}/bin/cache" + + cp -ra "${srcdir}/${_group}/bin/cache/flutter_web_sdk" "${pkgdir}/usr/lib/${_group}/bin/cache" +} + +_package-artifacts-gradle-google-bin() { + pkgdesc="${_pkgdesc} - gradle wrapper" + depends=( + "${pkgbase}-common" + ) + provides=( + "${_group}-gradle=${pkgver}" + ) + conflicts=( + "${_group}-gradle" + ) + + install -dm755 "${pkgdir}/usr/lib/${_group}/bin/cache/artifacts" + + cp -ra "${srcdir}/${_group}/bin/cache/artifacts/gradle_wrapper" "${pkgdir}/usr/lib/${_group}/bin/cache/artifacts" +} + +_package-artifacts-engine-android-google-bin() { + pkgdesc="${_pkgdesc} - android engine" + depends=( + "${_group}-engine-common" + ) + provides=( + "${_group}-engine-android=${pkgver}" + "${pkgbase}-engine-android=${pkgver}" + ) + conflicts=( + "${_group}-engine-android" + ) + + install -dm755 "${pkgdir}/usr/lib/${_group}/bin/cache/artifacts/engine" + + cp -ra "${srcdir}/${_group}/bin/cache/artifacts/engine/android-arm" "${pkgdir}/usr/lib/${_group}/bin/cache/artifacts/engine" + cp -ra "${srcdir}/${_group}/bin/cache/artifacts/engine/android-arm-release" "${pkgdir}/usr/lib/${_group}/bin/cache/artifacts/engine" + cp -ra "${srcdir}/${_group}/bin/cache/artifacts/engine/android-arm-profile" "${pkgdir}/usr/lib/${_group}/bin/cache/artifacts/engine" + + cp -ra "${srcdir}/${_group}/bin/cache/artifacts/engine/android-arm64" "${pkgdir}/usr/lib/${_group}/bin/cache/artifacts/engine" + cp -ra "${srcdir}/${_group}/bin/cache/artifacts/engine/android-arm64-release" "${pkgdir}/usr/lib/${_group}/bin/cache/artifacts/engine" + cp -ra "${srcdir}/${_group}/bin/cache/artifacts/engine/android-arm64-profile" "${pkgdir}/usr/lib/${_group}/bin/cache/artifacts/engine" + + cp -ra "${srcdir}/${_group}/bin/cache/artifacts/engine/android-x64" "${pkgdir}/usr/lib/${_group}/bin/cache/artifacts/engine" + cp -ra "${srcdir}/${_group}/bin/cache/artifacts/engine/android-x64-release" "${pkgdir}/usr/lib/${_group}/bin/cache/artifacts/engine" + cp -ra "${srcdir}/${_group}/bin/cache/artifacts/engine/android-x64-profile" "${pkgdir}/usr/lib/${_group}/bin/cache/artifacts/engine" + + cp -ra "${srcdir}/${_group}/bin/cache/artifacts/engine/android-x86" "${pkgdir}/usr/lib/${_group}/bin/cache/artifacts/engine" +} + +_package-artifacts-dart-google-bin() { + pkgdesc="${_pkgdesc} - Dart SDK" + depends=( + "glibc" + ) + provides=( + "dart=${_dartver}" + ) + conflicts=( + "dart" + ) + + install -dm755 "${pkgdir}/opt" + install -dm755 "${pkgdir}/usr/bin" + install -Dm755 "${srcdir}/dart/LICENSE.dart_sdk_archive.md" "${pkgdir}/usr/share/licenses/dart/LICENSE" + + cp -ra "${srcdir}/dart/dart-sdk" "${pkgdir}/opt/dart-sdk" + + chmod -R ugo+rX "${pkgdir}/opt" + + ln -sf "/opt/dart-sdk/bin/dart" "${pkgdir}/usr/bin/dart" + ln -sf "/opt/dart-sdk/bin/dartaotruntime" "${pkgdir}/usr/bin/dartaotruntime" +} + +pkgname=("${pkgbase}" "${pkgbase}-common" "${pkgbase}-gradle" "${pkgbase}-tool" "${pkgbase}-devel" "${pkgbase}-target-linux" "${pkgbase}-target-android" "${pkgbase}-target-web" "${pkgbase}-intellij-patch" "${pkgbase}-artifacts-engine-common-google-bin" "${pkgbase}-artifacts-engine-linux-google-bin" "${pkgbase}-artifacts-engine-web-google-bin" "${pkgbase}-artifacts-engine-android-google-bin" "${pkgbase}-artifacts-sky-engine-google-bin" "${pkgbase}-artifacts-material-fonts-google-bin" "${pkgbase}-artifacts-gradle-google-bin" "${pkgbase}-artifacts-dart-google-bin") + +for _p in "${pkgname[@]}"; do + eval "package_$_p() { + $(declare -f "_package${_p#$pkgbase}") + _package${_p#$pkgbase} + }" +done + diff --git a/flutter-new/doctor.patch b/flutter-new/doctor.patch new file mode 100644 index 0000000..b1044ad --- /dev/null +++ b/flutter-new/doctor.patch @@ -0,0 +1,18 @@ +--- a/packages/flutter_tools/lib/src/doctor.dart ++++ b/packages/flutter_tools/lib/src/doctor.dart +@@ -703,15 +703,6 @@ + '$flutterBinDir to your path.', + ); + } +- final String resolvedFlutterPath = flutterBin.resolveSymbolicLinksSync(); +- if (!_filePathContainsDirPath(flutterRoot, resolvedFlutterPath)) { +- final hint = +- 'Warning: `$binary` on your path resolves to ' +- '$resolvedFlutterPath, which is not inside your current Flutter ' +- 'SDK checkout at $flutterRoot. Consider adding $flutterBinDir to ' +- 'the front of your path.'; +- return ValidationMessage.hint(hint); +- } + return null; + } + diff --git a/flutter-new/flutter-common.install b/flutter-new/flutter-common.install new file mode 100644 index 0000000..74db8fe --- /dev/null +++ b/flutter-new/flutter-common.install @@ -0,0 +1,36 @@ +pre_install() { + NEW=$1 + OLD=$2 + + MAJOR=$(echo $OLD | awk -F '.' '{print $1}') + MINOR=$(echo $OLD | awk -F '.' '{print $2}') + PATCH=$(echo $OLD | awk -F '+' '{print $1}' | awk -F '.' '{print $3}') + + #if [[ $MAJOR == 3 && $MINOR -le 19 && $MINOR -le 4]]; then + if [ -d "/opt/flutter" ]; then + echo "Removing leftovers of previous Flutter installation in /opt/flutter." + rm -rf "/opt/flutter" + fi + if [ -d "/usr/lib/flutter/.git" ]; then + echo "Removing unwanted git-refs in /usr/lib/flutter/.git." + rm -rf "/usr/lib/flutter/.git" + fi + #fi +} + +post_install() { + NEW=$1 + OLD=$2 + + MAJOR=$(echo $OLD | awk -F '.' '{print $1}') + MINOR=$(echo $OLD | awk -F '.' '{print $2}') + PATCH=$(echo $OLD | awk -F '+' '{print $1}' | awk -F '.' '{print $3}') + + #if [[ $MAJOR == 3 && $MINOR -lt 8 ]]; then + if grep -q "flutterusers" /etc/group; then + echo "Removing group flutterusers as no longer needed." + groupdel "flutterusers" + fi + #fi +} + diff --git a/flutter-new/flutter.sh b/flutter-new/flutter.sh new file mode 100755 index 0000000..65c79ae --- /dev/null +++ b/flutter-new/flutter.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +# adapted by lnl from project's repo + +# To debug the tool, you can pass the following env to enable debug +# mode and set an observatory port: +# FLUTTER_TOOL_ARGS="$FLUTTER_TOOL_ARGS --enable-asserts --observe=65432" + +set -e + +# this is required in case people try to run with `aur/dart-sdk-dev` instead of `extra/dart` +DART_BINARY=$(readlink $(which dart)) +export DART_ROOT=${DART_ROOT:-${DART_BINARY/\/bin\/dart/}} +export FLUTTER_ROOT="${FLUTTER_ROOT:-/usr/lib/flutter}" + +FLUTTER_TOOLS_DIR="$FLUTTER_ROOT/packages/flutter_tools" +SNAPSHOT_PATH="$FLUTTER_ROOT/bin/cache/flutter_tools.snapshot" + +# Test if running as superuser – but don't warn if running within Docker or CI. +if [ "$(id -u)" = "0" ] && ! [ -f /.dockerenv ] && [ "$CI" != "true" ] && [ "$BOT" != "true" ] && [ "$CONTINUOUS_INTEGRATION" != "true" ]; then + >&2 echo " Woah! You appear to be trying to run flutter as root." + >&2 echo " We strongly recommend running the flutter tool without superuser privileges." + >&2 echo " /" + >&2 echo "πŸ“Ž" +fi + +exec dart --disable-dart-dev --packages="$FLUTTER_TOOLS_DIR/.dart_tool/package_config.json" $FLUTTER_TOOL_ARGS "$SNAPSHOT_PATH" "$@" + diff --git a/flutter-new/gradle-user-home.patch b/flutter-new/gradle-user-home.patch new file mode 100644 index 0000000..01dd00b --- /dev/null +++ b/flutter-new/gradle-user-home.patch @@ -0,0 +1,34 @@ +--- ./packages/flutter_tools/gradle/build.gradle.kts.orig ++++ ./packages/flutter_tools/gradle/build.gradle.kts +@@ -7,6 +7,8 @@ + `groovy` + } + ++project.buildDir = file(project.gradle.gradleUserHomeDir.path + "/flutter/build") ++ + group = "dev.flutter.plugin" + version = "1.0.0" + +--- ./packages/flutter_tools/lib/src/android/gradle.dart.orig ++++ ./packages/flutter_tools/lib/src/android/gradle.dart +@@ -2,6 +2,7 @@ + // Use of this source code is governed by a BSD-style license that can be + // found in the LICENSE file. + ++import 'dart:io' as io show Platform; + import 'dart:math'; + + import 'package:crypto/crypto.dart'; +@@ -276,6 +276,12 @@ + int? maxRetries, + _OutputParser? outputParser, + }) async { ++ final gradleUserHome = io.Platform.environment['GRADLE_USER_HOME'] ?? ++ io.Platform.environment['HOME']! + '/.gradle'; ++ options = [ ++ '--project-cache-dir=$gradleUserHome/flutter/.gradle', ++ ...options, ++ ]; + final bool usesAndroidX = isAppUsingAndroidX(project.android.hostAppGradleRoot); + if (usesAndroidX) { + _analytics.send(Event.flutterBuildInfo(label: 'app-using-android-x', buildType: 'gradle')); diff --git a/flutter-new/no-lock.patch b/flutter-new/no-lock.patch new file mode 100644 index 0000000..ca2a3c5 --- /dev/null +++ b/flutter-new/no-lock.patch @@ -0,0 +1,20 @@ +--- a/packages/flutter_tools/lib/src/cache.dart ++++ b/packages/flutter_tools/lib/src/cache.dart +@@ -319,7 +319,7 @@ + var fatalStorageWarning = true; + + static RandomAccessFile? _lock; +- static var _lockEnabled = true; ++ static var _lockEnabled = false; + + /// Turn off the [lock]/[releaseLock] mechanism. + /// +@@ -722,7 +722,6 @@ + } + + void setStampFor(String artifactName, String version) { +- getStampFileFor(artifactName).writeAsStringSync(version); + } + + File getStampFileFor(String artifactName) { + diff --git a/flutter-new/no-runtime-download.patch b/flutter-new/no-runtime-download.patch new file mode 100644 index 0000000..ba93a3d --- /dev/null +++ b/flutter-new/no-runtime-download.patch @@ -0,0 +1,44 @@ +--- a/packages/flutter_tools/lib/src/cache.dart ++++ b/packages/flutter_tools/lib/src/cache.dart +@@ -1010,31 +1010,6 @@ + } + + Future checkForArtifacts(String? engineVersion) async { +- engineVersion ??= version; +- final url = '${cache.storageBaseUrl}/flutter_infra_release/flutter/$engineVersion/'; +- +- var exists = false; +- for (final String pkgName in getPackageDirs()) { +- exists = await cache.doesRemoteExist( +- 'Checking package $pkgName is available...', +- Uri.parse('$url$pkgName.zip'), +- ); +- if (!exists) { +- return false; +- } +- } +- +- for (final List toolsDir in getBinaryDirs()) { +- final String cacheDir = toolsDir[0]; +- final String urlPath = toolsDir[1]; +- exists = await cache.doesRemoteExist( +- 'Checking $cacheDir tools are available...', +- Uri.parse(url + urlPath), +- ); +- if (!exists) { +- return false; +- } +- } + return true; + } + +@@ -1135,6 +1110,8 @@ + Directory location, + void Function(File, Directory) extractor, + ) async { ++ throwToolExit('Tried to download $url. Report on aur.'); ++ + final String downloadPath = flattenNameSubdirs(url, _fileSystem); + final File tempFile = _createDownloadFile(downloadPath); + Status status; + diff --git a/flutter-new/opt-in-analytics.patch b/flutter-new/opt-in-analytics.patch new file mode 100644 index 0000000..17fae21 --- /dev/null +++ b/flutter-new/opt-in-analytics.patch @@ -0,0 +1,22 @@ +--- a/packages/flutter_tools/lib/src/reporting/usage.dart ++++ b/packages/flutter_tools/lib/src/reporting/usage.dart +@@ -218,7 +218,7 @@ + if (globals.platform.environment.containsKey('FLUTTER_HOST')) { + analytics.setSessionValue('aiid', globals.platform.environment['FLUTTER_HOST']); + } +- analytics.analyticsOpt = AnalyticsOpt.optOut; ++ analytics.analyticsOpt = AnalyticsOpt.optIn; + } + + return _DefaultUsage._( +--- a/packages/flutter_tools/lib/src/reporting/first_run.dart ++++ b/packages/flutter_tools/lib/src/reporting/first_run.dart +@@ -37,6 +37,8 @@ + β•‘ See Google's privacy policy: β•‘ + β•‘ https://policies.google.com/privacy β•‘ + β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β• ++arch linux aur overrides: reporting is disabled by default. Opt-out is not a sent event. ++Run 'flutter config --analytics' to opt in to reports. + '''; + + /// The first run messenger determines whether the first run license terms diff --git a/flutter-new/system-dart.patch b/flutter-new/system-dart.patch new file mode 100644 index 0000000..2e59af2 --- /dev/null +++ b/flutter-new/system-dart.patch @@ -0,0 +1,173 @@ +--- ./packages/flutter_tools/bin/tool_backend.dart.orig ++++ ./packages/flutter_tools/bin/tool_backend.dart +@@ -73,9 +73,9 @@ + exit(1); + } + final String flutterExecutable = pathJoin([ +- flutterRoot, ++ '/usr', + 'bin', +- if (Platform.isWindows) 'flutter.bat' else 'flutter', ++ 'flutter', + ]); + final String bundlePlatform = targetPlatform; + final String target = '${buildMode}_bundle_${bundlePlatform}_assets'; +--- ./packages/flutter_tools/bin/tool_backend.sh.orig ++++ ./packages/flutter_tools/bin/tool_backend.sh +@@ -3,7 +3,4 @@ + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. + +-readonly flutter_bin_dir="${FLUTTER_ROOT}/bin" +-readonly dart_bin_dir="${flutter_bin_dir}/cache/dart-sdk/bin" +- +-exec "${dart_bin_dir}/dart" "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.dart" "${@:1}" ++exec "${DART_ROOT:-"/opt/dart-sdk"}/bin/dart" "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.dart" "${@:1}" +--- ./packages/flutter_tools/gradle/src/main/kotlin/FlutterPlugin.kt.orig ++++ ./packages/flutter_tools/gradle/src/main/kotlin/FlutterPlugin.kt +@@ -50,7 +50,7 @@ + addTaskForLockfileGeneration(rootProject) + } + +- val flutterRootSystemVal: String? = System.getenv("FLUTTER_ROOT") ++ val flutterRootSystemVal: String? = System.getenv("FLUTTER_ROOT") ?: "/usr/bin/flutter" + val flutterRootPath: String = + resolveFlutterSdkProperty(flutterRootSystemVal) + ?: throw GradleException( +@@ -170,7 +170,7 @@ + + val flutterExecutableName = getExecutableNameForPlatform("flutter") + flutterExecutable = +- Paths.get(flutterRoot!!.absolutePath, "bin", flutterExecutableName).toFile() ++ Paths.get("/usr", "bin", flutterExecutableName).toFile() + + // Validate that the provided Gradle, Java, AGP, and KGP versions are all within our + // supported range. +--- ./packages/flutter_tools/lib/src/artifacts.dart.orig ++++ ./packages/flutter_tools/lib/src/artifacts.dart +@@ -2,6 +2,8 @@ + // Use of this source code is governed by a BSD-style license that can be + // found in the LICENSE file. + ++import 'dart:io' as io show Platform; ++ + import 'package:file/memory.dart'; + import 'package:meta/meta.dart'; + import 'package:process/process.dart'; +@@ -1308,24 +1308,7 @@ + } + + String _getDartSdkPath() { +- final String builtPath = _fileSystem.path.join(_hostEngineOutPath, 'dart-sdk'); +- if (_fileSystem.isDirectorySync(_fileSystem.path.join(builtPath, 'bin'))) { +- return builtPath; +- } +- +- // If we couldn't find a built dart sdk, let's look for a prebuilt one. +- final String prebuiltPath = _fileSystem.path.join( +- _getFlutterPrebuiltsPath(), +- _getPrebuiltTarget(), +- 'dart-sdk', +- ); +- if (_fileSystem.isDirectorySync(prebuiltPath)) { +- return prebuiltPath; +- } +- +- throwToolExit( +- 'Unable to find a built dart sdk at: "$builtPath" or a prebuilt dart sdk at: "$prebuiltPath"', +- ); ++ return io.Platform.environment['DART_ROOT'] ?? '/opt/dart-sdk'; + } + + String _getFlutterPrebuiltsPath() { +@@ -1382,7 +1343,7 @@ + + /// Locate the Dart SDK. + String _dartSdkPath(Cache cache) { +- return cache.getRoot().childDirectory('dart-sdk').path; ++ return io.Platform.environment['DART_ROOT'] ?? '/opt/dart-sdk'; + } + + class _TestArtifacts implements Artifacts { +--- ./packages/flutter_tools/lib/src/cache.dart.orig ++++ ./packages/flutter_tools/lib/src/cache.dart +@@ -3,6 +3,7 @@ + // found in the LICENSE file. + + import 'dart:async'; ++import 'dart:io' as io show Platform; + + import 'package:crypto/crypto.dart'; + import 'package:file/memory.dart'; +@@ -421,8 +421,8 @@ + + String get devToolsVersion { + if (_devToolsVersion == null) { +- const devToolsDirPath = 'dart-sdk/bin/resources/devtools'; +- final Directory devToolsDir = getCacheDir(devToolsDirPath, shouldCreate: false); ++ final String dartSdkRoot = io.Platform.environment['DART_ROOT'] ?? '/opt/dart-sdk'; ++ final Directory devToolsDir = _fileSystem.directory(dartSdkRoot + '/bin/resources/devtools'); + if (!devToolsDir.existsSync()) { + throw Exception('Could not find directory at ${devToolsDir.path}'); + } +--- ./packages/flutter_tools/lib/src/commands/create_base.dart.orig ++++ ./packages/flutter_tools/lib/src/commands/create_base.dart +@@ -2,6 +2,8 @@ + // Use of this source code is governed by a BSD-style license that can be + // found in the LICENSE file. + ++import 'dart:io' as io show Platform; ++ + import 'package:meta/meta.dart'; + import 'package:uuid/uuid.dart'; + +@@ -341,7 +341,7 @@ + 'linuxIdentifier': linuxIdentifier, + 'windowsIdentifier': windowsIdentifier, + 'description': projectDescription, +- 'dartSdk': '$flutterRoot/bin/cache/dart-sdk', ++ 'dartSdk': io.Platform.environment['DART_ROOT'] ?? '/opt/dart-sdk', + 'androidMinApiLevel': gradle.minSdkVersion, + 'androidSdkVersion': gradle.minSdkVersion, + 'pluginClass': pluginClass, +--- ./packages/flutter_tools/lib/src/dart/pub.dart.orig ++++ ./packages/flutter_tools/lib/src/dart/pub.dart +@@ -3,6 +3,7 @@ + // found in the LICENSE file. + + import 'dart:async'; ++import 'dart:io' as io show Platform; + + import 'package:meta/meta.dart'; + import 'package:package_config/package_config.dart'; +@@ -545,10 +546,7 @@ + List _computePubCommand() { + // TODO(zanderso): refactor to use artifacts. + final String sdkPath = _fileSystem.path.joinAll([ +- Cache.flutterRoot!, +- 'bin', +- 'cache', +- 'dart-sdk', ++ io.Platform.environment['DART_ROOT'] ?? '/opt/dart-sdk', + 'bin', + 'dart', + ]); +--- ./packages/flutter_tools/lib/src/dart/language_version.dart.orig ++++ ./packages/flutter_tools/lib/src/dart/language_version.dart +@@ -3,6 +3,7 @@ + // found in the LICENSE file. + + import 'dart:async'; ++import 'dart:io' as io show Platform; + + import 'package:file/file.dart'; + import 'package:package_config/package_config.dart'; +@@ -27,7 +27,7 @@ + // Either reading the file or parsing the version could fail on a corrupt Dart SDK. + // let it crash so it shows up in crash logging. + final File versionFile = fileSystem.file( +- fileSystem.path.join(flutterRoot, 'bin', 'cache', 'dart-sdk', 'version'), ++ (io.Platform.environment['DART_ROOT'] ?? '/opt/dart-sdk') + '/version', + ); + if (!versionFile.existsSync() && _inUnitTest()) { + return LanguageVersion(2, 12); diff --git a/flutter-new/update-artifact-versions.sh b/flutter-new/update-artifact-versions.sh new file mode 100755 index 0000000..7906e47 --- /dev/null +++ b/flutter-new/update-artifact-versions.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +set -e + +makepkg -ofC + +readonly ENGINE_VERSION="$(cat src/flutter/bin/internal/engine.version)" + +readonly MATERIAL_FONTS_VERSION="$(cat src/flutter/bin/internal/material_fonts.version | cut -d '/' -f4)" +readonly GRADLE_WRAPPER_VERSION="$(cat src/flutter/bin/internal/gradle_wrapper.version | cut -d '/' -f3)" +readonly LIBIMOBILEDEVICE_VERSION="$(cat src/flutter/bin/internal/libimobiledevice.version)" +readonly USBMUXD_VERSION="$(cat src/flutter/bin/internal/libusbmuxd.version)" +readonly LIBPLIST_VERSION="$(cat src/flutter/bin/internal/libplist.version)" +readonly OPENSSL_VERSION="$(cat src/flutter/bin/internal/openssl.version)" +readonly IOS_DEPLOY_VERSION="$(cat src/flutter/bin/internal/ios-deploy.version)" +readonly SDK_VERSION="$(cat src/dart/dart-sdk/version)" +readonly SDK_STRING="$(grep sdk src/flutter/packages/flutter_tools/pubspec.yaml | awk -F "'" '{print $2}')" +readonly SDK_MIN="$(echo $SDK_STRING | awk -F '=' '{print $2}' | awk -F '-' '{print $1}')" +readonly SDK_MAX="$(echo $SDK_STRING | awk -F '<' '{print $2}' | awk -F '-' '{print $1}')" + +sed -i 's/_dartver=.*/_dartver="'"${SDK_VERSION}"'"/g' PKGBUILD +sed -i 's/_enginever=.*/_enginever='"${ENGINE_VERSION}"'/g' PKGBUILD +sed -i 's/_materialfontsver=.*/_materialfontsver='"${MATERIAL_FONTS_VERSION}"'/g' PKGBUILD +sed -i 's/_gradlewver=.*/_gradlewver='"${GRADLE_WRAPPER_VERSION}"'/g' PKGBUILD diff --git a/flutter-new/version.patch b/flutter-new/version.patch new file mode 100644 index 0000000..1d01172 --- /dev/null +++ b/flutter-new/version.patch @@ -0,0 +1,122 @@ +--- ./packages/flutter_tools/lib/src/version.dart.orig ++++ ./packages/flutter_tools/lib/src/version.dart +@@ -79,7 +79,7 @@ + }) { + final File versionFile = getVersionFile(fs, flutterRoot); + +- if (!fetchTags && versionFile.existsSync()) { ++ if (versionFile.existsSync()) { + final _FlutterVersionFromFile? version = _FlutterVersionFromFile.tryParseFromFile( + versionFile, + git: git, +@@ -99,10 +99,7 @@ + } + } + +- final String frameworkRevision = git +- .logSync(['-n', '1', '--pretty=format:%H'], workingDirectory: flutterRoot) +- .stdout +- .trim(); ++ final String frameworkRevision = "archlinuxaur0000000000000000000000000000"; + + return FlutterVersion.fromRevision( + clock: clock, +@@ -137,7 +134,8 @@ + workingDirectory: flutterRoot, + fetchTags: fetchTags, + ); +- final String frameworkVersion = gitTagVersion.frameworkVersionFor(frameworkRevision); ++ final String frameworkVersion = ++ globals.fs.file(globals.fs.path.join(Cache.flutterRoot!, 'version')).readAsStringSync(); + final result = _FlutterVersionGit._( + clock: clock, + flutterRoot: flutterRoot, +@@ -222,10 +220,7 @@ + final String flutterRoot; + + String _getTimeSinceCommit({String? revision}) { +- return _git +- .logSync(['-n', '1', '--pretty=format:%ar', ?revision], workingDirectory: flutterRoot) +- .stdout +- .trim(); ++ return 'unknown (arch linux aur package)'; + } + + // TODO(fujino): calculate this relative to frameworkCommitDate for +@@ -345,6 +340,7 @@ + /// Returns `null` if the cached version is out-of-date or missing, and we are + /// unable to reach the server to get the latest version. + Future _getLatestAvailableFlutterDate() async { ++ return null; + globals.cache.checkLockAcquired(); + final VersionCheckStamp versionCheckStamp = await VersionCheckStamp.load( + globals.cache, +@@ -464,6 +460,14 @@ + required Git git, + required String? workingDirectory, + }) { ++ final File versionFile = globals.fs.file( ++ globals.fs.path.join(workingDirectory!, 'bin', 'cache', 'flutter.version.json'), ++ ); ++ ++ final _FlutterVersionFromFile version = ++ _FlutterVersionFromFile.tryParseFromFile(versionFile, flutterRoot: workingDirectory, git: git)!; ++ return version.frameworkCommitDate; ++ + final RunResult result = git.logSync([ + gitRef, + '-n', +@@ -592,9 +596,7 @@ + final String devToolsVersion; + + @override +- void ensureVersionFile() { +- _ensureLegacyVersionFile(fs: fs, flutterRoot: flutterRoot, frameworkVersion: frameworkVersion); +- } ++ void ensureVersionFile() {} + } + + class _FlutterVersionGit extends FlutterVersion { +@@ -708,16 +710,7 @@ + required FileSystem fs, + required String flutterRoot, + required String frameworkVersion, +-}) { +- // TODO(matanlurey): https://github.com/flutter/flutter/issues/171900. +- if (featureFlags.isOmitLegacyVersionFileEnabled) { +- return; +- } +- final File legacyVersionFile = fs.file(fs.path.join(flutterRoot, 'version')); +- if (!legacyVersionFile.existsSync()) { +- legacyVersionFile.writeAsStringSync(frameworkVersion); +- } +-} ++}) {} + + /// Checks if the provided [version] is tracking a standard remote. + /// +@@ -743,6 +736,7 @@ + /// + /// Returns [VersionCheckError] if the tracking remote is not standard. + VersionCheckError? run() { ++ return null; + final String? flutterGit = platform.environment['FLUTTER_GIT_URL']; + final String? repositoryUrl = version.repositoryUrl; + +@@ -950,7 +944,7 @@ + if (revision == null) { + return ''; + } +- return revision.length > 10 ? revision.substring(0, 10) : revision; ++ return revision.length > 12 ? revision.substring(0, 12) : revision; + } + + /// Version of Flutter SDK parsed from Git. +@@ -1011,6 +1005,7 @@ + bool fetchTags = false, + String gitRef = 'HEAD', + }) { ++ return parse(globals.fs.file(globals.fs.path.join(Cache.flutterRoot!, 'version')).readAsStringSync()); + if (fetchTags) { + final String channel = git + .runSync(['symbolic-ref', '--short', 'HEAD'], workingDirectory: workingDirectory)