# Copyright 2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # Flutter's pinned pub dependencies for flutter_tools are generated by # scripts/generate_flutter_ebuild.py. Do not edit the generated block. EAPI=8 inherit multiprocessing DESCRIPTION="Flutter SDK - cross-platform UI framework (built from source)" HOMEPAGE="https://flutter.dev/ https://github.com/flutter/flutter" FLUTTER_GIT_COMMIT="d3b14c876900e553bc736ca19295fc09e3853e8e" FLUTTER_ENGINE_REV="a804b261645ef8c13eb3d5c44a5c2fb0340c5539" # BEGIN GENERATED FLUTTER PUB DEPS FLUTTER_FONTS_REV="3012db47f3130e62f7cc0beabff968a33cbec8d8" FLUTTER_GRADLE_REV="fd5c1f2c013565a3bea56ada6df9d2b8e96d56aa" FLUTTER_GCS="https://storage.googleapis.com/flutter_infra_release" PUB_URI="https://pub.dev/api/archives" SRC_URI=" https://github.com/flutter/flutter/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz ${FLUTTER_GCS}/flutter/fonts/${FLUTTER_FONTS_REV}/fonts.zip -> flutter-material-fonts-3012db47.zip ${FLUTTER_GCS}/gradle-wrapper/${FLUTTER_GRADLE_REV}/gradle-wrapper.tgz -> flutter-gradle-wrapper-fd5c1f2c.tgz ${PUB_URI}/_fe_analyzer_shared-95.0.0.tar.gz ${PUB_URI}/analyzer-10.1.0.tar.gz ${PUB_URI}/archive-3.6.1.tar.gz ${PUB_URI}/args-2.7.0.tar.gz ${PUB_URI}/async-2.13.1.tar.gz ${PUB_URI}/boolean_selector-2.1.2.tar.gz ${PUB_URI}/browser_launcher-1.1.3.tar.gz ${PUB_URI}/built_collection-5.1.1.tar.gz ${PUB_URI}/built_value-8.12.6.tar.gz ${PUB_URI}/checked_yaml-2.0.4.tar.gz ${PUB_URI}/cli_config-0.2.0.tar.gz ${PUB_URI}/clock-1.1.2.tar.gz ${PUB_URI}/code_assets-1.2.1.tar.gz ${PUB_URI}/code_builder-4.11.1.tar.gz ${PUB_URI}/collection-1.19.1.tar.gz ${PUB_URI}/completion-1.0.2.tar.gz ${PUB_URI}/convert-3.1.2.tar.gz ${PUB_URI}/coverage-1.15.1.tar.gz ${PUB_URI}/crypto-3.0.7.tar.gz ${PUB_URI}/csslib-1.0.2.tar.gz ${PUB_URI}/dap-1.4.0.tar.gz ${PUB_URI}/dart_service_protocol_shared-0.0.3.tar.gz ${PUB_URI}/dart_style-3.1.7.tar.gz ${PUB_URI}/data_assets-0.20.0.tar.gz ${PUB_URI}/dds-5.3.0.tar.gz ${PUB_URI}/dds_service_extensions-2.1.0.tar.gz ${PUB_URI}/devtools_shared-12.1.0.tar.gz ${PUB_URI}/dtd-4.0.0.tar.gz ${PUB_URI}/dwds-27.1.2.tar.gz ${PUB_URI}/extension_discovery-2.1.0.tar.gz ${PUB_URI}/fake_async-1.3.3.tar.gz ${PUB_URI}/ffi-2.2.0.tar.gz ${PUB_URI}/file-7.0.1.tar.gz ${PUB_URI}/file_testing-3.0.2.tar.gz ${PUB_URI}/fixnum-1.1.1.tar.gz ${PUB_URI}/flutter_template_images-5.0.0.tar.gz ${PUB_URI}/frontend_server_client-4.0.0.tar.gz ${PUB_URI}/glob-2.1.3.tar.gz ${PUB_URI}/graphs-2.3.2.tar.gz ${PUB_URI}/hooks-2.0.2.tar.gz ${PUB_URI}/hooks_runner-1.5.0.tar.gz ${PUB_URI}/html-0.15.6.tar.gz ${PUB_URI}/http-1.6.0.tar.gz ${PUB_URI}/http_multi_server-3.2.2.tar.gz ${PUB_URI}/http_parser-4.1.2.tar.gz ${PUB_URI}/intl-0.20.3.tar.gz ${PUB_URI}/io-1.0.5.tar.gz ${PUB_URI}/js-0.7.2.tar.gz ${PUB_URI}/json_annotation-4.12.0.tar.gz ${PUB_URI}/json_rpc_2-4.1.0.tar.gz ${PUB_URI}/logging-1.3.0.tar.gz ${PUB_URI}/matcher-0.12.20.tar.gz ${PUB_URI}/meta-1.18.3.tar.gz ${PUB_URI}/mime-2.0.0.tar.gz ${PUB_URI}/multicast_dns-0.3.3+1.tar.gz ${PUB_URI}/mustache_template-2.0.5.tar.gz ${PUB_URI}/native_stack_traces-0.6.1.tar.gz ${PUB_URI}/node_preamble-2.0.2.tar.gz ${PUB_URI}/package_config-2.2.0.tar.gz ${PUB_URI}/path-1.9.1.tar.gz ${PUB_URI}/petitparser-7.0.2.tar.gz ${PUB_URI}/platform-3.1.6.tar.gz ${PUB_URI}/pool-1.5.2.tar.gz ${PUB_URI}/process-5.0.5.tar.gz ${PUB_URI}/pub_semver-2.2.0.tar.gz ${PUB_URI}/pubspec_parse-1.5.0.tar.gz ${PUB_URI}/record_use-0.6.0.tar.gz ${PUB_URI}/shelf-1.4.2.tar.gz ${PUB_URI}/shelf_packages_handler-3.0.2.tar.gz ${PUB_URI}/shelf_proxy-1.0.5.tar.gz ${PUB_URI}/shelf_static-1.1.3.tar.gz ${PUB_URI}/shelf_web_socket-3.0.0.tar.gz ${PUB_URI}/source_map_stack_trace-2.1.2.tar.gz ${PUB_URI}/source_maps-0.10.13.tar.gz ${PUB_URI}/source_span-1.10.2.tar.gz ${PUB_URI}/sprintf-7.0.0.tar.gz ${PUB_URI}/sse-4.2.0.tar.gz ${PUB_URI}/stack_trace-1.12.1.tar.gz ${PUB_URI}/standard_message_codec-0.0.1+5.tar.gz ${PUB_URI}/stream_channel-2.1.4.tar.gz ${PUB_URI}/string_scanner-1.4.1.tar.gz ${PUB_URI}/sync_http-0.3.1.tar.gz ${PUB_URI}/term_glyph-1.2.2.tar.gz ${PUB_URI}/test-1.31.1.tar.gz ${PUB_URI}/test_api-0.7.12.tar.gz ${PUB_URI}/test_core-0.6.18.tar.gz ${PUB_URI}/typed_data-1.4.0.tar.gz ${PUB_URI}/unified_analytics-8.0.15.tar.gz ${PUB_URI}/uuid-4.5.3.tar.gz ${PUB_URI}/vm_service-15.2.0.tar.gz ${PUB_URI}/vm_service_interface-2.0.1.tar.gz ${PUB_URI}/vm_snapshot_analysis-0.7.6.tar.gz ${PUB_URI}/watcher-1.2.1.tar.gz ${PUB_URI}/web-1.1.1.tar.gz ${PUB_URI}/web_socket-1.0.1.tar.gz ${PUB_URI}/web_socket_channel-3.0.3.tar.gz ${PUB_URI}/webdriver-3.1.0.tar.gz ${PUB_URI}/webkit_inspection_protocol-1.2.1.tar.gz ${PUB_URI}/xml-6.6.1.tar.gz ${PUB_URI}/yaml-3.1.3.tar.gz ${PUB_URI}/yaml_edit-2.2.4.tar.gz " # END GENERATED FLUTTER PUB DEPS LICENSE="BSD Apache-2.0" SLOT="0" KEYWORDS="~amd64" IUSE="" RDEPEND=" !dev-lang/flutter-bin ~dev-libs/flutter-engine-3.47.2 virtual/dart app-arch/tar app-arch/unzip dev-vcs/git sys-apps/coreutils sys-apps/util-linux sys-apps/which " BDEPEND=" app-arch/tar app-arch/unzip virtual/dart dev-vcs/git sys-apps/which " PATCHES=( "${FILESDIR}/flutter-xdg-cache.patch" ) src_unpack() { unpack "${P}.tar.gz" local pub_cache="${S}/.pub-cache" mkdir -p "${pub_cache}/hosted/pub.dev" \ "${pub_cache}/hosted-hashes/pub.dev" || die mkdir -p "${S}/bin/cache/artifacts/material_fonts" \ "${S}/bin/cache/artifacts/gradle_wrapper" || die unzip -q "${DISTDIR}/flutter-material-fonts-3012db47.zip" \ -d "${S}/bin/cache/artifacts/material_fonts" || die tar -xzf "${DISTDIR}/flutter-gradle-wrapper-fd5c1f2c.tgz" \ -C "${S}/bin/cache/artifacts/gradle_wrapper" || die local archive pkg_file base pkg_dir for archive in ${A}; do case "${archive}" in "${P}.tar.gz"|"flutter-material-fonts-"*|"flutter-gradle-wrapper-"*) ;; *.tar.gz) pkg_file="${archive}" base="${pkg_file%.tar.gz}" pkg_dir="${pub_cache}/hosted/pub.dev/${base}" mkdir -p "${pkg_dir}" || die tar -xzf "${DISTDIR}/${pkg_file}" -C "${pkg_dir}" || die sha256sum "${DISTDIR}/${pkg_file}" | cut -d' ' -f1 > \ "${pub_cache}/hosted-hashes/pub.dev/${base}.sha256" || die ;; esac done } src_prepare() { default echo "${PV}" > "${S}/version" || die echo "${FLUTTER_ENGINE_REV}" > "${S}/bin/internal/engine.version" || die touch "${S}/.git" || die local cache_dir="${S}/bin/cache" mkdir -p "${cache_dir}" || die local rev="${FLUTTER_ENGINE_REV}" printf '%s\n' "${rev}" > "${cache_dir}/engine.stamp" || die printf '%s\n' "${rev}" > "${cache_dir}/engine-dart-sdk.stamp" || die printf '%s\n' "${rev}" > "${cache_dir}/linux-sdk.stamp" || die printf '%s\n' "${rev}" > "${cache_dir}/flutter_sdk.stamp" || die printf '%s\n' "${rev}" > "${cache_dir}/font-subset.stamp" || die printf '%s\n' "${rev}" > "${cache_dir}/engine_stamp.stamp" || die cat "${S}/bin/internal/material_fonts.version" \ > "${cache_dir}/material_fonts.stamp" || die cat "${S}/bin/internal/gradle_wrapper.version" \ > "${cache_dir}/gradle_wrapper.stamp" || die printf '%s:\n' "${FLUTTER_GIT_COMMIT}" \ > "${cache_dir}/flutter_tools.stamp" || die cat <<-EOF > "${cache_dir}/flutter.version.json" || die { "frameworkVersion": "${PV}", "channel": "stable", "repositoryUrl": "https://github.com/flutter/flutter.git", "frameworkRevision": "${FLUTTER_GIT_COMMIT}", "frameworkCommitDate": "2026-02-12 14:14:02 -0800", "engineRevision": "${FLUTTER_ENGINE_REV}", "engineCommitDate": "2026-08-26 11:46:13.000Z", "engineContentHash": "${FLUTTER_ENGINE_REV}", "engineBuildDate": "2026-08-26 11:46:13.000", "dartSdkVersion": "3.13.3", "devToolsVersion": "2.60.0", "flutterVersion": "${PV}" } EOF cat <<-EOF > "${cache_dir}/engine_stamp.json" || die { "build_date": "2026-08-26T11:46:13", "build_time_ms": 1787744773000, "git_revision": "${FLUTTER_ENGINE_REV}", "git_revision_date": "2026-08-26 11:46:13-07:00", "content_hash": "${FLUTTER_ENGINE_REV}" } EOF # Symlink Dart SDK into Flutter cache ln -s /opt/dart-sdk "${cache_dir}/dart-sdk" || die # Wire Engine artifacts from dev-libs/flutter-engine local engine_root="/usr/lib/flutter-engine/${PV}" local engine_art="${cache_dir}/artifacts/engine" mkdir -p "${engine_art}/common" "${cache_dir}/pkg" || die ln -s "${engine_root}/linux-x64" "${engine_art}/linux-x64" || die ln -s "${engine_root}/linux-x64-profile" \ "${engine_art}/linux-x64-profile" || die ln -s "${engine_root}/linux-x64-release" \ "${engine_art}/linux-x64-release" || die ln -s "${engine_root}/common/flutter_patched_sdk" \ "${engine_art}/common/flutter_patched_sdk" || die ln -s "${engine_root}/common/flutter_patched_sdk_product" \ "${engine_art}/common/flutter_patched_sdk_product" || die ln -s "${engine_root}/pkg/sky_engine" "${cache_dir}/pkg/sky_engine" || die ln -s "${engine_root}/pkg/flutter_gpu" "${cache_dir}/pkg/flutter_gpu" || die } src_compile() { export FLUTTER_ROOT="${S}" export PUB_CACHE="${S}/.pub-cache" export FLUTTER_CACHE_DIR="${S}/bin/cache" local dart_bin="/opt/dart-sdk/bin/dart" if [[ ! -x "${dart_bin}" ]]; then dart_bin="$(type -P dart || die 'dart binary not found')" fi cd "${S}/packages/flutter_tools" || die "${dart_bin}" pub get --offline || die local tools_cfg="${S}/packages/flutter_tools/.dart_tool/package_config.json" "${dart_bin}" \ --packages="${tools_cfg}" \ --snapshot="${S}/bin/cache/flutter_tools.snapshot" \ bin/flutter_tools.dart || die sed -i \ -e "s|file://${S}/.pub-cache|file:///opt/flutter/.pub-cache|g" \ -e "s|file://${S}|file:///opt/flutter|g" \ "${tools_cfg}" || die } src_install() { dodir /opt/flutter cp -a "${S}/." "${ED}/opt/flutter/" || die fperms 0755 /opt/flutter/bin/flutter fperms 0755 /opt/flutter/bin/dart sed -e "s/@PV@/${PV}/g" -e "s/@PVR@/${PVR}/g" \ "${FILESDIR}/flutter-wrapper" > "${T}/flutter" || die dobin "${T}/flutter" dodir /opt/bin dosym ../../usr/bin/flutter /opt/bin/flutter }