From 9078bc1fac8f3ef0ea659a94417a8c96eb0688e9 Mon Sep 17 00:00:00 2001 From: ISSOtm Date: Thu, 13 Jan 2022 19:24:40 +0100 Subject: [PATCH] Fix build Use more recent `gn` Disable some functionality to broke the build (whether we should enable it back remains TBD) Change Skia flags to fix up dependencies Apply patch so missing Skia deps don't break Aseprite's build Many of these changes were imported from my work on `aseprite-git` https://github.com/ISSOtm/PKGBUILDs/tree/aseprite-git/aseprite-git --- .SRCINFO | 5 +++-- .gitignore | 1 + PKGBUILD | 26 +++++++++++++------------- shared-skia-deps.patch | 21 +++++++++++++++++++++ 4 files changed, 38 insertions(+), 15 deletions(-) create mode 100644 shared-skia-deps.patch diff --git a/.SRCINFO b/.SRCINFO index 0068a37..88add27 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -11,6 +11,7 @@ pkgbase = aseprite makedepends = python makedepends = libxi makedepends = pixman + makedepends = gn makedepends = harfbuzz-icu depends = cmark depends = libcurl.so @@ -33,21 +34,21 @@ pkgbase = aseprite noextract = Aseprite-v1.2.31-Source.zip source = https://github.com/aseprite/aseprite/releases/download/v1.2.31/Aseprite-v1.2.31-Source.zip source = git+https://github.com/aseprite/skia.git#branch=aseprite-m96 - source = gn.zip::https://chrome-infra-packages.appspot.com/dl/gn/gn/linux-amd64/+/git_revision:d62642c920e6a0d1756316d225a90fd6faa9e21e source = git+https://chromium.googlesource.com/chromium/buildtools.git#commit=505de88083136eefd056e5ee4ca0f01fe9b33de8 source = git+https://skia.googlesource.com/common.git#commit=9737551d7a52c3db3262db5856e6bcd62c462b92 source = is_clang.py source = shared-libarchive.patch source = shared-libwebp.patch + source = shared-skia-deps.patch source = optional-pixman.patch sha256sums = 966bd940e1072ed24b70e211ca2bb1eb9aa6432ca12972a8e1df5f1e0150213d sha256sums = SKIP - sha256sums = 0ef7a431fa1bfd2d12edd1f6ceffac7e2b6ed89dcfae9aea9bf681d42a068347 sha256sums = SKIP sha256sums = SKIP sha256sums = cb901aaf479bcf1a2406ce21eb31e43d3581712a9ea245672ffd8fbcd9190441 sha256sums = e42675504bfbc17655aef1dca957041095026cd3dd4e6981fb6df0a363948aa7 sha256sums = 2d6b5f33f23adc4f9912511ac35311a776ce34519ef40e9db3659e4c5457f055 + sha256sums = eb9f544e68b41b5cb1a9ab7a6648db51587e67e94f1a452cb5a84f3d224bf5d0 sha256sums = c2d14f9738a96a9db3695c00ac3d14b1312b6a595b151bd56e19422c86517654 pkgname = aseprite diff --git a/.gitignore b/.gitignore index 3b15a45..95f1d6a 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,5 @@ !/is_clang.py !/shared-libarchive.patch !/shared-libwebp.patch +!/shared-skia-deps.patch !/optional-pixman.patch diff --git a/PKGBUILD b/PKGBUILD index 2de6978..edc7120 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -32,13 +32,10 @@ makedepends=(# "Meta" dependencies # Aseprite (including e.g. LAF) libxi pixman # Skia - harfbuzz-icu) + gn harfbuzz-icu) source=("https://github.com/aseprite/aseprite/releases/download/v$pkgver/Aseprite-v$pkgver-Source.zip" # Which branch a given build of Aseprite requires is noted in its `INSTALL.md` "git+https://github.com/aseprite/skia.git#branch=aseprite-m96" - # `gn` executable required to configure Skia, pulled from `skia/bin/fetch-gn` - # Normally we'd use the Arch-provided one, but it has API incompatibilities - "gn.zip::https://chrome-infra-packages.appspot.com/dl/gn/gn/linux-amd64/+/git_revision:d62642c920e6a0d1756316d225a90fd6faa9e21e" # Skia dependencies, determined from `skia/DEPS` # Only pulling what we need, though "git+https://chromium.googlesource.com/chromium/buildtools.git#commit=505de88083136eefd056e5ee4ca0f01fe9b33de8" @@ -49,16 +46,17 @@ source=("https://github.com/aseprite/aseprite/releases/download/v$pkgver/Aseprit shared-libarchive.patch # Based on https://patch-diff.githubusercontent.com/raw/aseprite/aseprite/pull/2523.patch shared-libwebp.patch + shared-skia-deps.patch optional-pixman.patch) noextract=("${source[0]##*/}") # Don't extract Aseprite sources at the root sha256sums=('966bd940e1072ed24b70e211ca2bb1eb9aa6432ca12972a8e1df5f1e0150213d' 'SKIP' - '0ef7a431fa1bfd2d12edd1f6ceffac7e2b6ed89dcfae9aea9bf681d42a068347' 'SKIP' 'SKIP' 'cb901aaf479bcf1a2406ce21eb31e43d3581712a9ea245672ffd8fbcd9190441' 'e42675504bfbc17655aef1dca957041095026cd3dd4e6981fb6df0a363948aa7' '2d6b5f33f23adc4f9912511ac35311a776ce34519ef40e9db3659e4c5457f055' + 'eb9f544e68b41b5cb1a9ab7a6648db51587e67e94f1a452cb5a84f3d224bf5d0' 'c2d14f9738a96a9db3695c00ac3d14b1312b6a595b151bd56e19422c86517654') prepare() { @@ -75,34 +73,36 @@ prepare() { for _dep in "${!_skiadeps[@]}"; do ln -svfT "$(realpath $_dep)" "skia/${_skiadeps[$_dep]}" done - bsdtar -xf gn.zip gn - chmod 755 gn # Replace `is_clang.py` with Python 3-compliant version cp -v is_clang.py skia/gn # Allow using shared libarchive (the bundled version prevents using the `None` build type...) env -C aseprite patch -tp1