From d932a5b988d974528c195224080449ac8cdf60a3 Mon Sep 17 00:00:00 2001 From: ahriman Date: Mon, 5 Jan 2026 14:13:57 +0000 Subject: [PATCH] Autogenerated commit at 2026-01-05 14:13:57.838168+00:00 --- flutter/.SRCINFO | 258 ++++++++++ flutter/PKGBUILD | 716 ++++++++++++++++++++++++++++ flutter/doctor.patch | 18 + flutter/flutter-common.install | 36 ++ flutter/flutter.sh | 27 ++ flutter/gradle-user-home.patch | 34 ++ flutter/no-lock.patch | 20 + flutter/no-runtime-download.patch | 44 ++ flutter/opt-in-analytics.patch | 22 + flutter/system-dart.patch | 173 +++++++ flutter/update-artifact-versions.sh | 24 + flutter/version.patch | 122 +++++ 12 files changed, 1494 insertions(+) create mode 100644 flutter/.SRCINFO create mode 100644 flutter/PKGBUILD create mode 100644 flutter/doctor.patch create mode 100644 flutter/flutter-common.install create mode 100755 flutter/flutter.sh create mode 100644 flutter/gradle-user-home.patch create mode 100644 flutter/no-lock.patch create mode 100644 flutter/no-runtime-download.patch create mode 100644 flutter/opt-in-analytics.patch create mode 100644 flutter/system-dart.patch create mode 100755 flutter/update-artifact-versions.sh create mode 100644 flutter/version.patch diff --git a/flutter/.SRCINFO b/flutter/.SRCINFO new file mode 100644 index 0000000..c6a0074 --- /dev/null +++ b/flutter/.SRCINFO @@ -0,0 +1,258 @@ +pkgbase = flutter + pkgdesc = A new mobile app SDK to help developers and designers build modern mobile apps for iOS and Android. + pkgver = 3.38.1 + pkgrel = 3 + url = https://flutter.dev + arch = x86_64 + arch = aarch64 + groups = flutter + license = custom + license = BSD + license = CCPL + makedepends = dart>=3.10.0 + makedepends = dart<3.11.0 + makedepends = jq + makedepends = gradle + makedepends = unzip + makedepends = tar + noextract = material_fonts-3012db47f3130e62f7cc0beabff968a33cbec8d8.zip + noextract = gradle_wrapper-fd5c1f2c013565a3bea56ada6df9d2b8e96d56aa.tar.gz + noextract = android-x86-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = android-x64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = android-arm-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = android-arm-profile-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = android-arm-release-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = android-arm64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = android-arm64-profile-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = android-arm64-release-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = android-x64-profile-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = android-x64-release-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = flutter_web_sdk-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = sky_engine-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = flutter_patched_sdk-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = flutter_patched_sdk_product-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = android-arm-profile-linux-x64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = android-arm-release-linux-x64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = android-arm64-profile-linux-x64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = android-arm64-release-linux-x64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = android-x64-profile-linux-x64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = android-x64-release-linux-x64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = engine-x64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = gtk-debug-x64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = gtk-profile-x64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = gtk-release-x64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = font-subset-x64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = engine-arm64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = gtk-debug-arm64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = gtk-profile-arm64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = gtk-release-arm64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = font-subset-arm64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = dart-sdk-x64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + noextract = dart-sdk-arm64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip + options = !emptydirs + source = flutter-3.38.1.tar.xz::https://github.com/flutter/flutter/archive/refs/tags/3.38.1.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-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/android-x86/artifacts.zip + source = android-x64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/android-x64/artifacts.zip + source = android-arm-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/android-arm/artifacts.zip + source = android-arm-profile-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/android-arm-profile/artifacts.zip + source = android-arm-release-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/android-arm-release/artifacts.zip + source = android-arm64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/android-arm64/artifacts.zip + source = android-arm64-profile-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/android-arm64-profile/artifacts.zip + source = android-arm64-release-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/android-arm64-release/artifacts.zip + source = android-x64-profile-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/android-x64-profile/artifacts.zip + source = android-x64-release-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/android-x64-release/artifacts.zip + source = flutter_web_sdk-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/flutter-web-sdk.zip + source = sky_engine-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/sky_engine.zip + source = flutter_patched_sdk-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/flutter_patched_sdk.zip + source = flutter_patched_sdk_product-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/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 = 3acd76b6a4871fb797b5b3b5f184e9ae8114c533b4c3371a8fc98aae568adefc + sha256sums = e56fa8e9bb4589fde964be3de451f3e5b251e4a1eafb1dc98d94add034dd5a86 + sha256sums = 31e9428baf1a2b2f485f1110c5899f852649b33d46a2e9b07f9d17752d50190a + sha256sums = 73e3593d3fea1a91b1cc2fa5052e7bae989a5188a61a95fa265beb87846d89cd + sha256sums = b9571ae4e063787ce8d2e7bf5688ac9b85b553446d57f15144f320b94519e582 + sha256sums = 4ccbc8ebf2a4c5743bd671054b664a9d9e908fed2fa3d32f8be099bedc5d7df1 + sha256sums = 11d57b778d1d372c1750f8c5555f3aa88648243cdaa7b7bc26151d23e64524b4 + sha256sums = b477dea985c3d1797674ee10759938f0de51b09156c620456419137283d424d3 + sha256sums = 4760b508bccd6667fb850996035f11be19f7ed89a12a8f687bcda8482237ca88 + sha256sums = b04d6c47b34c7e618bbe4f28c5a2c497a997ef467ffd735350b0593e3901f9de + sha256sums = 9256774eedc9fd5d1e301aa03d6a3a866d2e841cd1ffa05ce6fd7c5fe68d2d71 + sha256sums = 8dbe0a33a7d305f419e92108f452ed7c05c2c9ca2c3374fbcb7bf2a28891d3e1 + sha256sums = d549c188daa9f0339006af80460fb9b6a08779577110c7e5f6fc74ff3b450663 + sha256sums = 044d029d0440cf519c68e885828c4de6deae94953667f3ab7c25327405b9fe69 + sha256sums = 74ecdf4e74ca29dd356588211168d418baa1bc45fb4e3c0b2b09bf141f3a6201 + sha256sums = 872110e387e87fa3e15dc98b2504f60781ea2cdd6007d26ce44d7a7c2bc13416 + sha256sums = 732cc50cc2a502726efd5ab230c5c81af76a07661f34a9a6327622d99de0f30f + sha256sums = 47bea61b2d62a4637d56f2807661afd7d427f1f48434d1d132b7e6e10ffb6aa8 + sha256sums = e41d25d8cba8b0bb51ee0b20cb6b730bfb2c491d67c669ab8e3550d60b37fb5c + sha256sums = b4c104129eb57e7e3edca2e23376b8b034de2d466189bdc1c3e2a304506889a3 + sha256sums = f0c88e34c130f243786f7673d4c5f8fb5d1089c84b0604085aeb35a7fa8b3682 + sha256sums = cadd32aaac6beeb91052174d50494bb7e16444759fcdc8224ea13550657f525f + sha256sums = e26c476ad75647fe4441d56888b95837f586db5feb0fada5e51005eb0582ce32 + sha256sums = 34b02703c48f6686ffb2691a510607cfbe69beff9e726b47834b3298839542ca + sha256sums = 1578e819b6ee479b6db7a095bcfa74372d3ff555642c6d6ea7112e97bb6f2027 + source_x86_64 = dart-sdk-x64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/dart-sdk-linux-x64.zip + source_x86_64 = android-arm-profile-linux-x64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/android-arm-profile/linux-x64.zip + source_x86_64 = android-arm-release-linux-x64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/android-arm-release/linux-x64.zip + source_x86_64 = android-arm64-profile-linux-x64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/android-arm64-profile/linux-x64.zip + source_x86_64 = android-arm64-release-linux-x64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/android-arm64-release/linux-x64.zip + source_x86_64 = android-x64-profile-linux-x64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/android-x64-profile/linux-x64.zip + source_x86_64 = android-x64-release-linux-x64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/android-x64-release/linux-x64.zip + source_x86_64 = engine-x64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/linux-x64/artifacts.zip + source_x86_64 = gtk-debug-x64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/linux-x64-debug/linux-x64-flutter-gtk.zip + source_x86_64 = gtk-profile-x64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/linux-x64-profile/linux-x64-flutter-gtk.zip + source_x86_64 = gtk-release-x64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/linux-x64-release/linux-x64-flutter-gtk.zip + source_x86_64 = font-subset-x64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/linux-x64/font-subset.zip + sha256sums_x86_64 = d7a72203bd9eb3b577f19660366577712dcd9750d678c7d006a37597eb2946fd + sha256sums_x86_64 = 2315a4bb6d2b8f916767339a3b718256ab205ca4ecafb2206a6617e3aa953728 + sha256sums_x86_64 = 02d6bb8f5643a3b7d01ccbb4729d0e7c283e47117b87a413e505a4e64ab2354c + sha256sums_x86_64 = 0c5172d2a4bf5c758826baeb8ad4e46dd1266e496f56d5ac2c300069a7297263 + sha256sums_x86_64 = 3c22a86e00b4afc5e26c9061599daa11a685af538ec78de272e57798490eea40 + sha256sums_x86_64 = 11a75a25cb0c1635734e2cb2104593b0da41d111d39461912af1f141474421ac + sha256sums_x86_64 = 280154880af3c4518cceb8c045a27f1c52f1fdaabe14385e4a08e7841420513e + sha256sums_x86_64 = ef6fd550e3e9c23593a2b3cd23751cf4595a8349ecdff4ae59e1e305d7672a71 + sha256sums_x86_64 = 5f4109c734800c2226a5fca6a55c4e5171f19f4c31c690d529a4da0729cac453 + sha256sums_x86_64 = bfce72ffc09df73ed26895574fb6297b5365c907ed17b8c02251676fcd177e1d + sha256sums_x86_64 = 60289fc0f424b8ed5df36b88457089c82f59cdebcbaaaf3d3c2e9f1123228cf0 + sha256sums_x86_64 = 100c1e411ff89872331fb4c82963ecebda525bbc0e1ff4ca8e1e9dd7ba2397d1 + source_aarch64 = dart-sdk-arm64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/dart-sdk-linux-arm64.zip + source_aarch64 = engine-arm64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/linux-arm64/artifacts.zip + source_aarch64 = gtk-debug-arm64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/linux-arm64-debug/linux-arm64-flutter-gtk.zip + source_aarch64 = gtk-profile-arm64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/linux-arm64-profile/linux-arm64-flutter-gtk.zip + source_aarch64 = gtk-release-arm64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/linux-arm64-release/linux-arm64-flutter-gtk.zip + source_aarch64 = font-subset-arm64-b5990e5ccc5e325fd24f0746e7d6689bbebc7c65.zip::https://storage.googleapis.com/flutter_infra_release/flutter/b5990e5ccc5e325fd24f0746e7d6689bbebc7c65/linux-arm64/font-subset.zip + sha256sums_aarch64 = e4f9a7856b7628d2aca06150c111fe55a38314f3f42012f7eb779aaa201cc760 + sha256sums_aarch64 = 7b411e6f7ef86b900c05e4156a57416740a574cb3c6ef3e9ad52d8d9bf121abd + sha256sums_aarch64 = 2187a8bdade05f18be75aef926c8b71a6f873a9014fd4e2fc28282f6b07d5666 + sha256sums_aarch64 = 53e2fccdc9a8a18fcf56d83ab637ce0e5f26382b99ed9a4c9914d6f95a992790 + sha256sums_aarch64 = d8a5c350a903b4671311a7d128edc2d3f49568fcd5a331dfed63e3245b07d5c3 + sha256sums_aarch64 = ae9e5df7d8fe07dc27e2144006b43934dad01eded2f028276604d2b8a1ef5649 + +pkgname = flutter + pkgdesc = Flutter SDK component - full installation of development tool and runtime + depends = flutter-devel + depends = flutter-target-linux + depends = flutter-target-android + depends = flutter-target-web + depends = flutter-intellij-patch + conflicts = flutter + +pkgname = flutter-common + pkgdesc = Flutter SDK component - common SDK files and pub cache + install = flutter-common.install + +pkgname = flutter-gradle + pkgdesc = Flutter SDK component - gradle wrapper + provides = flutter-gradle + conflicts = flutter-gradle + +pkgname = flutter-tool + pkgdesc = Flutter SDK component - CLI tool (for packaging only) + depends = flutter-common + depends = dart>=3.10.0 + depends = bash + depends = curl + depends = file + depends = git + depends = coreutils + depends = unzip + depends = which + depends = xz + depends = zip + depends = glu + +pkgname = flutter-devel + pkgdesc = Flutter SDK component - CLI tool (for application development) + depends = flutter-tool + depends = dart>=3.10.0 + replaces = flutter-tool-developer + +pkgname = flutter-target-linux + pkgdesc = Flutter SDK component - linux target files + depends = flutter-tool + depends = flutter-engine-linux + depends = dart>=3.10.0 + depends = clang + depends = cmake + depends = ninja + depends = pkgconf + depends = gtk3 + depends = libglvnd + +pkgname = flutter-target-android + pkgdesc = Flutter SDK component - android target files + depends = flutter-tool + depends = flutter-engine-android + depends = flutter-gradle + optdepends = android-sdk: develop for Android devices + optdepends = java-environment: develop for Android devices + +pkgname = flutter-target-web + pkgdesc = Flutter SDK component - web target files + depends = flutter-tool + depends = flutter-engine-web + +pkgname = flutter-intellij-patch + pkgdesc = Flutter SDK component - IntelliJ Flutter plugin hotfix + depends = flutter-common + optdepends = android-studio + optdepends = intellij-idea-community-edition + optdepends = intellij-idea-ultimate-edition + +pkgname = flutter-artifacts-engine-common-google-bin + pkgdesc = Flutter SDK component - common engine files + depends = flutter-common + depends = flutter-sky-engine + depends = flutter-material-fonts + depends = dart>=3.10.0 + provides = flutter-engine-common=3.38.1 + conflicts = flutter-engine-common + +pkgname = flutter-artifacts-engine-linux-google-bin + pkgdesc = Flutter SDK component - linux engine + depends = flutter-engine-common + provides = flutter-engine-linux=3.38.1 + conflicts = flutter-engine-linux + +pkgname = flutter-artifacts-engine-web-google-bin + pkgdesc = Flutter SDK component - web engine + depends = flutter-engine-common + provides = flutter-engine-web=3.38.1 + conflicts = flutter-engine-web + +pkgname = flutter-artifacts-engine-android-google-bin + pkgdesc = Flutter SDK component - android engine + depends = flutter-engine-common + provides = flutter-engine-android=3.38.1 + conflicts = flutter-engine-android + +pkgname = flutter-artifacts-sky-engine-google-bin + pkgdesc = Flutter SDK component - sky-engine + provides = flutter-sky-engine=3.38.1 + conflicts = flutter-sky-engine + +pkgname = flutter-artifacts-material-fonts-google-bin + pkgdesc = Flutter SDK component - material fonts + provides = flutter-material-fonts=3.38.1 + conflicts = flutter-material-fonts + +pkgname = flutter-artifacts-gradle-google-bin + pkgdesc = Flutter SDK component - gradle wrapper + depends = flutter-common + provides = flutter-gradle=3.38.1 + conflicts = flutter-gradle + +pkgname = flutter-artifacts-dart-google-bin + pkgdesc = Flutter SDK component - Dart SDK + depends = glibc + provides = dart=3.10.0 + conflicts = dart diff --git a/flutter/PKGBUILD b/flutter/PKGBUILD new file mode 100644 index 0000000..13850e4 --- /dev/null +++ b/flutter/PKGBUILD @@ -0,0 +1,716 @@ +# Maintainer: WithTheBraid +# Co-Maintainer: Polarian , Fredy GarcΓ­a +# Contributor: Philip Goto + +pkgbase=flutter +_group=flutter +groups=("$_group") +pkgver=3.38.1 +_enginever=b5990e5ccc5e325fd24f0746e7d6689bbebc7c65 +_materialfontsver=3012db47f3130e62f7cc0beabff968a33cbec8d8 +_gradlewver=fd5c1f2c013565a3bea56ada6df9d2b8e96d56aa +_flutterarch=$(echo "$CARCH" | sed s/aarch64/arm64/ | sed s/x86_64/x64/) +_dartver="3.10.0" +_dartmin="3.10.0" +_dartmax="3.11.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=3 +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=('3acd76b6a4871fb797b5b3b5f184e9ae8114c533b4c3371a8fc98aae568adefc' + 'e56fa8e9bb4589fde964be3de451f3e5b251e4a1eafb1dc98d94add034dd5a86' + '31e9428baf1a2b2f485f1110c5899f852649b33d46a2e9b07f9d17752d50190a' + '73e3593d3fea1a91b1cc2fa5052e7bae989a5188a61a95fa265beb87846d89cd' + 'b9571ae4e063787ce8d2e7bf5688ac9b85b553446d57f15144f320b94519e582' + '4ccbc8ebf2a4c5743bd671054b664a9d9e908fed2fa3d32f8be099bedc5d7df1' + '11d57b778d1d372c1750f8c5555f3aa88648243cdaa7b7bc26151d23e64524b4' + 'b477dea985c3d1797674ee10759938f0de51b09156c620456419137283d424d3' + '4760b508bccd6667fb850996035f11be19f7ed89a12a8f687bcda8482237ca88' + 'b04d6c47b34c7e618bbe4f28c5a2c497a997ef467ffd735350b0593e3901f9de' + '9256774eedc9fd5d1e301aa03d6a3a866d2e841cd1ffa05ce6fd7c5fe68d2d71' + '8dbe0a33a7d305f419e92108f452ed7c05c2c9ca2c3374fbcb7bf2a28891d3e1' + 'd549c188daa9f0339006af80460fb9b6a08779577110c7e5f6fc74ff3b450663' + '044d029d0440cf519c68e885828c4de6deae94953667f3ab7c25327405b9fe69' + '74ecdf4e74ca29dd356588211168d418baa1bc45fb4e3c0b2b09bf141f3a6201' + '872110e387e87fa3e15dc98b2504f60781ea2cdd6007d26ce44d7a7c2bc13416' + '732cc50cc2a502726efd5ab230c5c81af76a07661f34a9a6327622d99de0f30f' + '47bea61b2d62a4637d56f2807661afd7d427f1f48434d1d132b7e6e10ffb6aa8' + 'e41d25d8cba8b0bb51ee0b20cb6b730bfb2c491d67c669ab8e3550d60b37fb5c' + 'b4c104129eb57e7e3edca2e23376b8b034de2d466189bdc1c3e2a304506889a3' + 'f0c88e34c130f243786f7673d4c5f8fb5d1089c84b0604085aeb35a7fa8b3682' + 'cadd32aaac6beeb91052174d50494bb7e16444759fcdc8224ea13550657f525f' + 'e26c476ad75647fe4441d56888b95837f586db5feb0fada5e51005eb0582ce32' + '34b02703c48f6686ffb2691a510607cfbe69beff9e726b47834b3298839542ca' + '1578e819b6ee479b6db7a095bcfa74372d3ff555642c6d6ea7112e97bb6f2027') +sha256sums_x86_64=('d7a72203bd9eb3b577f19660366577712dcd9750d678c7d006a37597eb2946fd' + '2315a4bb6d2b8f916767339a3b718256ab205ca4ecafb2206a6617e3aa953728' + '02d6bb8f5643a3b7d01ccbb4729d0e7c283e47117b87a413e505a4e64ab2354c' + '0c5172d2a4bf5c758826baeb8ad4e46dd1266e496f56d5ac2c300069a7297263' + '3c22a86e00b4afc5e26c9061599daa11a685af538ec78de272e57798490eea40' + '11a75a25cb0c1635734e2cb2104593b0da41d111d39461912af1f141474421ac' + '280154880af3c4518cceb8c045a27f1c52f1fdaabe14385e4a08e7841420513e' + 'ef6fd550e3e9c23593a2b3cd23751cf4595a8349ecdff4ae59e1e305d7672a71' + '5f4109c734800c2226a5fca6a55c4e5171f19f4c31c690d529a4da0729cac453' + 'bfce72ffc09df73ed26895574fb6297b5365c907ed17b8c02251676fcd177e1d' + '60289fc0f424b8ed5df36b88457089c82f59cdebcbaaaf3d3c2e9f1123228cf0' + '100c1e411ff89872331fb4c82963ecebda525bbc0e1ff4ca8e1e9dd7ba2397d1') +sha256sums_aarch64=('e4f9a7856b7628d2aca06150c111fe55a38314f3f42012f7eb779aaa201cc760' + '7b411e6f7ef86b900c05e4156a57416740a574cb3c6ef3e9ad52d8d9bf121abd' + '2187a8bdade05f18be75aef926c8b71a6f873a9014fd4e2fc28282f6b07d5666' + '53e2fccdc9a8a18fcf56d83ab637ce0e5f26382b99ed9a4c9914d6f95a992790' + 'd8a5c350a903b4671311a7d128edc2d3f49568fcd5a331dfed63e3245b07d5c3' + 'ae9e5df7d8fe07dc27e2144006b43934dad01eded2f028276604d2b8a1ef5649') + +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") + conflicts=("${pkgbase}") +} + +_package-common() { + pkgdesc="${_pkgdesc} - common SDK files and pub cache" + install="${_group}-common.install" + + 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=( + "${_group}-tool" +"${_group}-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 + ) + + 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=( + "${_group}-tool" + "${_group}-engine-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=( + "${_group}-tool" + "${_group}-engine-android" + "${_group}-gradle" + ) + optdepends=("android-sdk: develop for Android devices" + "java-environment: develop for Android devices" + ) + + 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" + ) + 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=( + "${_group}-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 + ) + + + 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=( + "${_group}-tool" + "dart>=${_dartmin}" + ) + replaces=("${_group}-tool-developer") + + 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=("${_group}-common") + optdepends=( + "android-studio" + "intellij-idea-community-edition" + "intellij-idea-ultimate-edition" + ) + + # 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=( + "${_group}-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}" + ) + 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}" + ) + 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=( + "${_group}-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}" + ) + 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=("${_group}" "${_group}-common" "${_group}-gradle" "${_group}-tool" "${_group}-devel" "${_group}-target-linux" "${_group}-target-android" "${_group}-target-web" "${_group}-intellij-patch" "${_group}-artifacts-engine-common-google-bin" "${_group}-artifacts-engine-linux-google-bin" "${_group}-artifacts-engine-web-google-bin" "${_group}-artifacts-engine-android-google-bin" "${_group}-artifacts-sky-engine-google-bin" "${_group}-artifacts-material-fonts-google-bin" "${_group}-artifacts-gradle-google-bin" "${_group}-artifacts-dart-google-bin") + +for _p in "${pkgname[@]}"; do + eval "package_$_p() { + $(declare -f "_package${_p#$_group}") + _package${_p#$_group} + }" +done + diff --git a/flutter/doctor.patch b/flutter/doctor.patch new file mode 100644 index 0000000..b1044ad --- /dev/null +++ b/flutter/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/flutter-common.install b/flutter/flutter-common.install new file mode 100644 index 0000000..74db8fe --- /dev/null +++ b/flutter/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/flutter.sh b/flutter/flutter.sh new file mode 100755 index 0000000..65c79ae --- /dev/null +++ b/flutter/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/gradle-user-home.patch b/flutter/gradle-user-home.patch new file mode 100644 index 0000000..01dd00b --- /dev/null +++ b/flutter/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/no-lock.patch b/flutter/no-lock.patch new file mode 100644 index 0000000..ca2a3c5 --- /dev/null +++ b/flutter/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/no-runtime-download.patch b/flutter/no-runtime-download.patch new file mode 100644 index 0000000..ba93a3d --- /dev/null +++ b/flutter/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/opt-in-analytics.patch b/flutter/opt-in-analytics.patch new file mode 100644 index 0000000..17fae21 --- /dev/null +++ b/flutter/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/system-dart.patch b/flutter/system-dart.patch new file mode 100644 index 0000000..2e59af2 --- /dev/null +++ b/flutter/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/update-artifact-versions.sh b/flutter/update-artifact-versions.sh new file mode 100755 index 0000000..7906e47 --- /dev/null +++ b/flutter/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/version.patch b/flutter/version.patch new file mode 100644 index 0000000..1d01172 --- /dev/null +++ b/flutter/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)