summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD191
1 files changed, 144 insertions, 47 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 1fd0d1a271b5..831643866591 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -12,28 +12,12 @@ _flutterarch=$(uname -m | sed s/aarch64/arm64/ | sed s/x86_64/x64/)
# 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=7
+pkgrel=8
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://${pkgbase}.dev"
license=("custom" "BSD" "CCPL")
-depends=(
- # instead of bundled Gradle Wrapper
- "gradle"
- # 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"
- # runtime shared libraries
- "libglvnd" # https://github.com/flutter/engine/pull/16924
-)
makedepends=(
"dart>=${_dartver}"
"jq"
@@ -328,15 +312,11 @@ _package() {
}
_package-common() {
- pkgdesc="${_pkgdesc} - common files"
- depends=(
- "glu" # libGLU.so.1 required for flutter test
- )
+ pkgdesc="${_pkgdesc} - common SDK files and pub cache"
install -Dm644 "${srcdir}/${pkgbase}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgbase}/LICENSE"
install -dm755 "${pkgdir}/usr/lib/${pkgbase}"
- install -dm755 "${pkgdir}/usr/lib/${pkgbase}/bin/cache/artifacts/engine"
install -dm755 "${pkgdir}/usr/lib/${pkgbase}/packages/flutter"
install -dm755 "${pkgdir}/usr/lib/${pkgbase}/packages/flutter_driver"
install -dm755 "${pkgdir}/usr/lib/${pkgbase}/packages/flutter_goldens"
@@ -346,10 +326,6 @@ _package-common() {
install -dm755 "${pkgdir}/usr/lib/${pkgbase}/packages/fuchsia_remote_debug_protocol"
install -dm755 "${pkgdir}/usr/lib/${pkgbase}/packages/integration_test"
- cp -ra "${srcdir}/${pkgbase}/bin/cache/artifacts/engine/common" "${pkgdir}/usr/lib/${pkgbase}/bin/cache/artifacts/engine/common"
- cp -ra "${srcdir}/${pkgbase}/bin/cache/artifacts/material_fonts" "${pkgdir}/usr/lib/${pkgbase}/bin/cache/artifacts/material_fonts"
- cp -ra "${srcdir}/${pkgbase}/bin/cache/pkg" "${pkgdir}/usr/lib/${pkgbase}/bin/cache/pkg"
-
cp -ra "${srcdir}/${pkgbase}/packages/flutter/"{pubspec.yaml,lib} "${pkgdir}/usr/lib/${pkgbase}/packages/flutter"
cp -ra "${srcdir}/${pkgbase}/packages/flutter_driver/"{pubspec.yaml,lib} "${pkgdir}/usr/lib/${pkgbase}/packages/flutter_driver"
cp -ra "${srcdir}/${pkgbase}/packages/flutter_goldens/"{pubspec.yaml,lib} "${pkgdir}/usr/lib/${pkgbase}/packages/flutter_goldens"
@@ -358,57 +334,163 @@ _package-common() {
cp -ra "${srcdir}/${pkgbase}/packages/flutter_web_plugins/"{pubspec.yaml,lib} "${pkgdir}/usr/lib/${pkgbase}/packages/flutter_web_plugins"
cp -ra "${srcdir}/${pkgbase}/packages/fuchsia_remote_debug_protocol/"{pubspec.yaml,lib} "${pkgdir}/usr/lib/${pkgbase}/packages/fuchsia_remote_debug_protocol"
cp -ra "${srcdir}/${pkgbase}/packages/integration_test/"{pubspec.yaml,lib} "${pkgdir}/usr/lib/${pkgbase}/packages/integration_test"
+}
+
+_package-engine-common-google-bin() {
+ pkgdesc="${_pkgdesc} - common engine files"
+ depends=(
+ "${pkgbase}-common"
+ "${pkgbase}-sky-engine"
+ "${pkgbase}-material-fonts"
+ )
+ provides=(
+ "${pkgbase}-engine-common"
+ )
+ conflicts=(
+ "${pkgbase}-engine-common"
+ )
+
+ install -dm755 "${pkgdir}/usr/lib/${pkgbase}/bin/cache/artifacts/engine"
+ install -dm755 "${pkgdir}/usr/lib/${pkgbase}/bin/internal"
+
+ cp -ra "${srcdir}/${pkgbase}/bin/cache/artifacts/engine/common" "${pkgdir}/usr/lib/${pkgbase}/bin/cache/artifacts/engine/common"
+
+ install -Dm644 "${srcdir}/${pkgbase}/bin/internal/engine.version" "${pkgdir}/usr/lib/${pkgbase}/bin/internal/engine.version"
+ install -Dm644 "${srcdir}/${pkgbase}/bin/internal/engine.realm" "${pkgdir}/usr/lib/${pkgbase}/bin/internal/engine.realm"
+
+}
+
+_package-sky-engine-google-bin() {
+ pkgdesc="${_pkgdesc} - sky-engine"
+ depends=(
+ "${pkgbase}-common"
+ )
+ provides=(
+ "${pkgbase}-sky-engine"
+ )
+ conflicts=(
+ "${pkgbase}-sky-engine"
+ )
+
+ install -dm755 "${pkgdir}/usr/lib/${pkgbase}"
+ install -dm755 "${pkgdir}/usr/lib/${pkgbase}/bin/cache"
cp -ra "${srcdir}/${pkgbase}/bin/cache/pkg" "${pkgdir}/usr/lib/${pkgbase}/bin/cache/pkg"
- cp -ra "${srcdir}/${pkgbase}/pub-cache" "${pkgdir}/usr/lib/${pkgbase}/pub-cache"
+}
+
+_package-material-fonts() {
+ pkgdesc="${_pkgdesc} - material fonts"
+ depends=(
+ "${pkgbase}-common"
+ )
+
+ install -dm755 "${pkgdir}/usr/lib/${pkgbase}"
+ install -dm755 "${pkgdir}/usr/lib/${pkgbase}/bin/cache/artifacts"
+
+ cp -ra "${srcdir}/${pkgbase}/bin/cache/artifacts/material_fonts" "${pkgdir}/usr/lib/${pkgbase}/bin/cache/artifacts/material_fonts"
}
_package-target-linux() {
pkgdesc="${_pkgdesc} - linux target files"
depends=(
"${pkgbase}-tool"
+ "${pkgbase}-engine-linux"
+ "dart>=${_dartver}"
"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/${pkgbase}/bin/cache/artifacts/engine"
install -dm755 "${pkgdir}/usr/lib/${pkgbase}/packages/flutter_tools/bin"
+ cp -ra "${srcdir}/${pkgbase}/packages/flutter_tools/bin/tool_backend.sh" "${pkgdir}/usr/lib/${pkgbase}/packages/flutter_tools/bin"
+ cp -ra "${srcdir}/${pkgbase}/packages/flutter_tools/bin/tool_backend.dart" "${pkgdir}/usr/lib/${pkgbase}/packages/flutter_tools/bin"
+}
+
+_package-engine-linux-google-bin() {
+ pkgdesc="${_pkgdesc} - linux engine"
+ depends=(
+ "${pkgbase}-engine-common"
+ )
+ provides=(
+ "${pkgbase}-engine-linux"
+ )
+ conflicts=(
+ "${pkgbase}-engine-linux"
+ )
+
+ install -dm755 "${pkgdir}/usr/lib/${pkgbase}/bin/cache/artifacts/engine"
+
cp -ra "${srcdir}/${pkgbase}/bin/cache/artifacts/engine/linux-${_flutterarch}" "${pkgdir}/usr/lib/${pkgbase}/bin/cache/artifacts/engine"
cp -ra "${srcdir}/${pkgbase}/bin/cache/artifacts/engine/linux-${_flutterarch}-profile" "${pkgdir}/usr/lib/${pkgbase}/bin/cache/artifacts/engine"
cp -ra "${srcdir}/${pkgbase}/bin/cache/artifacts/engine/linux-${_flutterarch}-release" "${pkgdir}/usr/lib/${pkgbase}/bin/cache/artifacts/engine"
-
- cp -ra "${srcdir}/${pkgbase}/packages/flutter_tools/bin/tool_backend.sh" "${pkgdir}/usr/lib/${pkgbase}/packages/flutter_tools/bin"
- cp -ra "${srcdir}/${pkgbase}/packages/flutter_tools/bin/tool_backend.dart" "${pkgdir}/usr/lib/${pkgbase}/packages/flutter_tools/bin"
}
_package-target-web() {
pkgdesc="${_pkgdesc} - web target files"
- depends=("${pkgbase}-tool")
+ depends=(
+ "${pkgbase}-tool"
+ "${pkgbase}-engine-web"
+ )
+
+ install -dm755 "${pkgdir}/usr/lib/${pkgbase}/packages/flutter_tools/lib/src/web"
+
+ cp -ra "${srcdir}/${pkgbase}/packages/flutter_tools/lib/src/web/file_generators" "${pkgdir}/usr/lib/${pkgbase}/packages/flutter_tools/lib/src/web"
+}
+_package-engine-web-google-bin() {
+ pkgdesc="${_pkgdesc} - web engine"
+ depends=(
+ "${pkgbase}-engine-common"
+ )
+ provides=(
+ "${pkgbase}-engine-web"
+ )
+ conflicts=(
+ "${pkgbase}-engine-web"
+ )
install -dm755 "${pkgdir}/usr/lib/${pkgbase}/bin/cache"
- install -dm755 "${pkgdir}/usr/lib/${pkgbase}/packages/flutter_tools/lib/src/web"
cp -ra "${srcdir}/${pkgbase}/bin/cache/flutter_web_sdk" "${pkgdir}/usr/lib/${pkgbase}/bin/cache"
- cp -ra "${srcdir}/${pkgbase}/packages/flutter_tools/lib/src/web/file_generators" "${pkgdir}/usr/lib/${pkgbase}/packages/flutter_tools/lib/src/web"
}
_package-target-android() {
pkgdesc="${_pkgdesc} - android target files"
- depends=("${pkgbase}-tool")
+ depends=(
+ "${pkgbase}-tool"
+ "${pkgbase}-engine-android"
+ )
optdepends=("android-sdk: develop for Android devices"
"java-environment: develop for Android devices"
)
+ install -dm755 "${pkgdir}/usr/lib/${pkgbase}/bin/cache/artifacts"
+ install -dm755 "${pkgdir}/usr/lib/${pkgbase}/packages/flutter_tools"
+
+ cp -ra "${srcdir}/${pkgbase}/bin/cache/artifacts/gradle_wrapper" "${pkgdir}/usr/lib/${pkgbase}/bin/cache/artifacts"
+ cp -ra "${srcdir}/${pkgbase}/packages/flutter_tools/gradle" "${pkgdir}/usr/lib/${pkgbase}/packages/flutter_tools"
+}
+
+
+_package-engine-android-google-bin() {
+ pkgdesc="${_pkgdesc} - android engine"
+ depends=(
+ "${pkgbase}-engine-common"
+ )
+ provides=(
+ "${pkgbase}-engine-android"
+ )
+ conflicts=(
+ "${pkgbase}-engine-android"
+ )
install -dm755 "${pkgdir}/usr/lib/${pkgbase}/bin/cache/artifacts/engine"
- install -dm755 "${pkgdir}/usr/lib/${pkgbase}/packages/flutter_tools"
- install -dm755 "${pkgdir}/usr/lib/${pkgbase}/bin/internal"
cp -ra "${srcdir}/${pkgbase}/bin/cache/artifacts/engine/android-arm" "${pkgdir}/usr/lib/${pkgbase}/bin/cache/artifacts/engine"
cp -ra "${srcdir}/${pkgbase}/bin/cache/artifacts/engine/android-arm-release" "${pkgdir}/usr/lib/${pkgbase}/bin/cache/artifacts/engine"
@@ -424,17 +506,26 @@ _package-target-android() {
cp -ra "${srcdir}/${pkgbase}/bin/cache/artifacts/engine/android-x86" "${pkgdir}/usr/lib/${pkgbase}/bin/cache/artifacts/engine"
cp -ra "${srcdir}/${pkgbase}/bin/cache/artifacts/engine/android-x86-jit-release" "${pkgdir}/usr/lib/${pkgbase}/bin/cache/artifacts/engine"
-
- cp -ra "${srcdir}/${pkgbase}/bin/cache/artifacts/gradle_wrapper" "${pkgdir}/usr/lib/${pkgbase}/bin/cache/artifacts"
- cp -ra "${srcdir}/${pkgbase}/packages/flutter_tools/gradle" "${pkgdir}/usr/lib/${pkgbase}/packages/flutter_tools"
-
- install -Dm644 "${srcdir}/${pkgbase}/bin/internal/engine.version" "${pkgdir}/usr/lib/${pkgbase}/bin/internal/engine.version"
- install -Dm644 "${srcdir}/${pkgbase}/bin/internal/engine.realm" "${pkgdir}/usr/lib/${pkgbase}/bin/internal/engine.realm"
}
_package-tool() {
pkgdesc="${_pkgdesc} - CLI tool (for packaging only)"
- depends=("${pkgbase}-common")
+ depends=(
+ "${pkgbase}-common"
+ # TODO: completely compile Flutter tool standalone and drop dependency
+ "dart>=${_dartver}"
+ # 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/${pkgbase}"
@@ -454,14 +545,20 @@ _package-tool() {
_package-devel() {
pkgdesc="${_pkgdesc} - CLI tool (for application development)"
- depends=("${pkgbase}-tool")
-
+ depends=(
+ "${pkgbase}-tool"
+ "dart>=${_dartver}"
+ )
+ replaces=("${pkgbase}-tool-developer")
install -dm755 "${pkgdir}/usr/lib/${pkgbase}"
install -dm755 "${pkgdir}/usr/lib/${pkgbase}/packages/flutter_tools"
cp -ra "${srcdir}/${pkgbase}/examples" "${pkgdir}/usr/lib/${pkgbase}"
cp -ra "${srcdir}/${pkgbase}/packages/flutter_tools/templates" "${pkgdir}/usr/lib/${pkgbase}/packages/flutter_tools"
+
+ # TODO: patch `flutter create` to run without pub cache
+ cp -ra "${srcdir}/${pkgbase}/pub-cache" "${pkgdir}/usr/lib/${pkgbase}/pub-cache"
}
_package-intellij-patch() {
@@ -480,7 +577,7 @@ _package-intellij-patch() {
ln -sf "${DART_ROOT:-"/opt/dart-sdk"}" "${pkgdir}/usr/lib/${pkgbase}/bin/cache/dart-sdk"
}
-pkgname=("${pkgbase}" "${pkgbase}-tool" "${pkgbase}-devel" "${pkgbase}-target-linux" "${pkgbase}-common" "${pkgbase}-target-android" "${pkgbase}-target-web" "${pkgbase}-intellij-patch")
+pkgname=("${pkgbase}" "${pkgbase}-common" "${pkgbase}-engine-common-google-bin" "${pkgbase}-engine-linux-google-bin" "${pkgbase}-engine-web-google-bin" "${pkgbase}-engine-android-google-bin" "${pkgbase}-sky-engine-google-bin" "${pkgbase}-material-fonts" "${pkgbase}-tool" "${pkgbase}-devel" "${pkgbase}-target-linux" "${pkgbase}-target-android" "${pkgbase}-target-web" "${pkgbase}-intellij-patch")
for _p in "${pkgname[@]}"; do
eval "package_$_p() {