# Maintainer: Imperator Storm <30777770+ImperatorStorm@users.noreply.github.com> # Co-Maintainer: Eldred Habert # Contributor: Fredrick Brennan # Contributor: Andrew Bueide # Contributor: rouhannb # Contributor: Wilson E. Alvarez # Contributor: Benoit Favre # Contributor: Alexander Rødseth # Contributor: Kamil Biduś pkgname=aseprite pkgver=1.2.31 pkgrel=1 pkgdesc='Create animated sprites and pixel art' arch=('x86_64') url="https://www.aseprite.org/" license=('custom') depends=(# ~ Aseprite's direct dependencies ~ # pixman is not linked to because we use Skia instead # harfbuzz is linked statically because Aseprite expects an older version cmark libcurl.so libgif.so libjpeg.so zlib libpng tinyxml libfreetype.so libarchive.so libwebp.so libwebpmux.so libwebpdemux.so hicolor-icon-theme # For installing Aseprite's icons # ~ Skia deps ~ # (Skia links dynamically to HarfBuzz, only Aseprite itself doesn't. >_<) libexpat.so=1-64 libharfbuzz.so=0-64 libgl # Already required by Aseprite: libjpeg-turbo libpng zlib freetype2 # These two are only reported by Namcap, but don't seem to be direct dependencies? libfontconfig.so libxcursor) makedepends=(# "Meta" dependencies cmake ninja git python # Aseprite (including e.g. LAF) libxi pixman # Skia 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" "git+https://skia.googlesource.com/common.git#commit=9737551d7a52c3db3262db5856e6bcd62c462b92" # Python 3-compliant version of the script is_clang.py # Based on https://patch-diff.githubusercontent.com/raw/aseprite/aseprite/pull/2535.patch shared-libarchive.patch # Based on https://patch-diff.githubusercontent.com/raw/aseprite/aseprite/pull/2523.patch shared-libwebp.patch optional-pixman.patch) noextract=("${source[0]##*/}") # Don't extract Aseprite sources at the root sha256sums=('966bd940e1072ed24b70e211ca2bb1eb9aa6432ca12972a8e1df5f1e0150213d' 'SKIP' '0ef7a431fa1bfd2d12edd1f6ceffac7e2b6ed89dcfae9aea9bf681d42a068347' 'SKIP' 'SKIP' 'cb901aaf479bcf1a2406ce21eb31e43d3581712a9ea245672ffd8fbcd9190441' 'e42675504bfbc17655aef1dca957041095026cd3dd4e6981fb6df0a363948aa7' '2d6b5f33f23adc4f9912511ac35311a776ce34519ef40e9db3659e4c5457f055' 'c2d14f9738a96a9db3695c00ac3d14b1312b6a595b151bd56e19422c86517654') prepare() { # Extract Aseprite's sources mkdir -p aseprite bsdtar -xf "${noextract[0]}" -C aseprite # Symlink Skia's build dependencies # Sort of emulating `skia/tools/git-sync-deps`, but only grabbing what we need mkdir -p skia/third_party/externals # Key = repo name (from above), value = path under `src/skia/` local -A _skiadeps=([buildtools]=buildtools [common]=common) _dep 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