mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-07-23 03:05:48 +03:00
218 lines
6.5 KiB
Text
218 lines
6.5 KiB
Text
# Contributor: Lauren N. Liberda <lauren@selfisekai.rocks>
|
|
# Maintainer: Lauren N. Liberda <lauren@selfisekai.rocks>
|
|
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
|
|
"
|