# Contributor: Lauren N. Liberda # Maintainer: Lauren N. Liberda pkgname=dart pkgver=2.19.3 _bootstrap=2.18.0 pkgrel=1 pkgdesc="Dart is a client-optimized language for fast apps on any platform" url="https://dart.dev/" arch="x86_64" license="BSD-3-Clause" makedepends=" clang curl dart-bootstrap gn icu-dev lld llvm python3 ripgrep samurai sed " subpackages=" $pkgname-dev $pkgname-devtools $pkgname-sdk " source=" https://s3.sakamoto.pl/lnl-aports-snapshots/dart-sdk-$pkgver.tar.xz host-compiler.patch musl-sigsetjmp.patch no-analytics.patch no-werror.patch musl-reinterpret.patch shim-headers.patch fix-pkg-config.patch unbundle-icu.patch dart2js " builddir="$srcdir/dart-sdk-$pkgver" provides="dart-bootstrap" provider_priority=100 # gclient comes from teapot-tools snapshot() { mkdir -p "$srcdir" cd "$srcdir" echo " solutions = [{ 'name': 'sdk', 'url': 'https://dart.googlesource.com/sdk.git@$pkgver', }] target_cpu = ['x64', 'x86', 'arm64', 'arm', 'ppc64', 'riscv64', 's390x'] target_cpu_only = True " > .gclient gclient sync --no-history --nohooks --tpot-cipd-ignore-platformed for elf in $(scanelf -RA -F "%F" sdk); do rm -f "$elf" done mv sdk dart-sdk-$pkgver msg "generating tarball.." tar -cf dart-sdk-$pkgver.tar \ --exclude="ChangeLog*" \ --exclude="sdk/buildtools/*/clang" \ --exclude="third_party/fuchsia/sdk/linux/arch" \ --exclude=".build-id" \ --exclude-backups \ --exclude-caches-all \ --exclude-vcs \ dart-sdk-$pkgver xz -T0 -e -9 -vv -k dart-sdk-$pkgver.tar } case "$CARCH" in aarch64) _arch="arm64" ;; armv7) _arch="armv7" ;; x86) _arch="ia32" ;; x86_64) _arch="x64" ;; esac prepare() { default_prepare # xD https://github.com/dart-lang/sdk/blob/2.18.0/build/toolchain/linux/BUILD.gn#L24-L30 case "$CARCH" in aarch64) clang_arch="arm64" ;; *) clang_arch="x64" ;; esac mkdir -p .git/logs echo '' > .git/logs/HEAD # shut up on clang mkdir -p buildtools/linux-$clang_arch/clang/.versions echo '{"instance_id":"system"}' > buildtools/linux-$clang_arch/clang/.versions/clang.cipd_version # bind bootstrapped interpreter mkdir -p tools/sdks/dart-sdk/bin/ ln -s /usr/bin/dart tools/sdks/dart-sdk/bin/dart ln -s /usr/bin/dart2js tools/sdks/dart-sdk/bin/dart2js # gclient hooks python3 tools/generate_package_config.py python3 tools/generate_sdk_version_file.py # google analytics, doubleclick echo '' > tools/bots/dartdoc_footer.html rm third_party/devtools/web/devtools_analytics.js # disarm analytics for sure rg --no-ignore -l '(?:\.|/)google-analytics\.com' . \ | while read line; do [[ "$line" == *".js.map" ]] || echo "$line"; done \ | xargs sed -i -E 's|([^/]+\.)?google-analytics\.com|0\.0\.0\.0|g' rg --no-ignore -l 'UA-[0-9]+-[0-9]+' . \ | xargs sed -i -E 's|UA-[0-9]+-[0-9]+|UA-2137-0|g' sed -i 's/Unknown timestamp/'"$(date -uIm)"'/' tools/make_version.py # reusable system library settings local use_system=" icu " for _lib in $use_system; do msg "Removing buildscripts for system provided $_lib" find . -type f -path "*third_party/$_lib/*" \ \! -path "*third_party/$_lib/chromium/*" \ \! -path "*third_party/$_lib/google/*" \ \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \ -delete done # no workflow replacement - handled by `use_system_*` gn args } build() { local gn_args=" dart_debug=false dart_platform_sdk=false dart_runtime_mode=\"release\" dart_target_arch=\"$_arch\" dart_use_tcmalloc=false dart_version_git_info=false is_clang=true is_debug=false is_product=true is_release=true target_cpu=\"$_arch\" use_system_icu=true verify_sdk_hash=false " msg "Generating ninja files" gn gen out --args="$(echo $gn_args)" msg "Building" ninja -C out create_sdk runtime_precompiled gen_kernel } check() { # check sanity ./out/dart --version } package() { install -Dm755 out/dart "$pkgdir"/usr/lib/dart/bin/dart install -Dm755 out/dart-sdk/bin/dartaotruntime "$pkgdir"/usr/lib/dart/bin/dartaotruntime cp -r out/dart-sdk/lib "$pkgdir"/usr/lib/dart/lib mkdir -p "$pkgdir"/usr/lib/dart/bin/resources/ cp -r out/devtools "$pkgdir"/usr/lib/dart/bin/resources/devtools cp -r out/dart-sdk/bin/snapshots "$pkgdir"/usr/lib/dart/bin/snapshots install -Dm755 out/gen_snapshot "$pkgdir"/usr/lib/dart/bin/utils/gen_snapshot mkdir -p "$pkgdir"/usr/include cp -r out/dart-sdk/include "$pkgdir"/usr/include/dart mkdir -p "$pkgdir"/usr/bin ln -s /usr/lib/dart/bin/dart "$pkgdir"/usr/bin/dart ln -s /usr/lib/dart/bin/dartaotruntime "$pkgdir"/usr/bin/dartaotruntime find "$pkgdir"/usr/lib/dart/bin/resources/devtools -type f -exec chmod 644 {} \; echo "$pkgver" > "$pkgdir"/usr/lib/dart/version } sdk() { depends="$pkgname=$pkgver-r$pkgrel" for snap in analysis_server dart2js dartdevc dds frontend_server gen_kernel kernel-service kernel_worker; do amove usr/lib/dart/bin/snapshots/$snap.dart.snapshot done amove usr/lib/dart/bin/utils amove usr/lib/dart/lib install -Dm755 "$srcdir"/dart2js "$pkgdir"/usr/bin/dart2js } devtools() { amove usr/lib/dart/bin/resources/devtools } sha512sums=" 908cad2f833843ef3a9860741fca673be103efdd190163bcb73e45192e2c9ba5892924922530e0ab7df2a251f45355d0337bd8e1435dcd6a15ae78bcf28eff25 dart-sdk-2.19.3.tar.xz d8d3c9a1d37a13043952d662a6477eb2427f87f4456b47fe6602426a636c598979e8b12bfe32e8e668c97ef551fa22febfe15e81d232ba31187e7e8ce741d9dc host-compiler.patch 28f1c2fc2cfdaac4c0ee55e7cfe13c7802d34b6dd0f1f9c6bf35eff6088eb551d860b1a9cfc14ee8323ae3a8342c471b7cc7a3582a4897c52a6a2a044436750a musl-sigsetjmp.patch 960d3c971d7b66e25c5e52c3189edd5356bc66a1aebc51b927b25abad238ec91b367f6c3ddb43ae6ab0d82180cba69ef9529903d5a7dce18dd75ef2bff2ae1d4 no-analytics.patch b3aeb574042fe515a3f1cf7fc240f5976d9a86d599b33700caf23fd78f0b937b2ac7e0bdc590281ca18751b02a8e46899e6cdff2d498d23718588eadb1d84366 no-werror.patch 7ca0cd9e370679ee7d34225342db2dbc394f7355f4c06e7e81afb066be9cbb1c2c48fd56d9dfc15bbf8e9ddf6458d2c33ed3db1dace370cdb8dcbfbb240f75b3 musl-reinterpret.patch f15e70279d383ebd2b202a123d7dd452ae0212022b372795cdfac530476d017c59352db136e673a06b9cacdbda0c152ce6c19735da637ebd366616f23a752ce4 shim-headers.patch a55e52d5b8266d18c743cbd95eb6e2531623ca95a3c91a6a5193ffeabebce5979578b50c00bbbe93c0e5cb88fddd00184fded54ef845fefef4d76d972f4e78a9 fix-pkg-config.patch 6bd02f8a597c823021f8c5ec4e1f739dd8bceaf9817dd292245c01c5d25b5cc7ac6b9dac3c13e553e1b6fc81cf436b3f161973ff3a76188143b223dfbb48a9f8 unbundle-icu.patch 68487e1c9bf2caf6791e0ec996e107c23ac2bae7352e9772a7d96f6e467bfbb2c0094e18266081c04e2be67d40d8a9ae8a4bc9a0de93005cd82589839576b5f2 dart2js "