diff --git a/.SRCINFO b/.SRCINFO index 9a8f6d6..b8a7c13 100644 --- a/.SRCINFO +++ b/.SRCINFO @@ -1,129 +1,55 @@ pkgbase = aseprite pkgdesc = Create animated sprites and pixel art pkgver = 1.2.30 - pkgrel = 3 - url = http://www.aseprite.org/ + pkgrel = 4 + url = https://www.aseprite.org/ arch = x86_64 license = custom makedepends = cmake makedepends = ninja makedepends = git - makedepends = python2 makedepends = python - makedepends = freeglut - makedepends = xorgproto makedepends = libxi + makedepends = pixman makedepends = harfbuzz-icu - makedepends = nettle depends = cmark - depends = curl - depends = giflib + depends = libcurl.so + depends = libgif.so + depends = libjpeg.so depends = zlib depends = libpng depends = tinyxml - depends = freetype2 - depends = fontconfig - depends = libxcursor + depends = libfreetype.so + depends = libarchive.so + depends = libwebp.so + depends = libwebpmux.so + depends = libwebpdemux.so depends = hicolor-icon-theme - conflicts = aseprite-git - conflicts = aseprite-gpl - conflicts = skia-git - noextract = aseprite-1.2.30-buildtools.tar.gz - noextract = aseprite-1.2.30-common.tar.gz - noextract = aseprite-1.2.30-angle2.tar.gz - noextract = aseprite-1.2.30-dawn.tar.gz - noextract = aseprite-1.2.30-dng_sdk.tar.gz - noextract = aseprite-1.2.30-egl-registry.tar.gz - noextract = aseprite-1.2.30-expat.tar.gz - noextract = aseprite-1.2.30-freetype.tar.gz - noextract = aseprite-1.2.30-harfbuzz.tar.gz - noextract = aseprite-1.2.30-icu.tar.gz - noextract = aseprite-1.2.30-imgui.tar.gz - noextract = aseprite-1.2.30-libgifcodec.tar.gz - noextract = aseprite-1.2.30-libjpeg-turbo.tar.gz - noextract = aseprite-1.2.30-libpng.tar.gz - noextract = aseprite-1.2.30-libwebp.tar.gz - noextract = aseprite-1.2.30-lua.tar.gz - noextract = aseprite-1.2.30-microhttpd.tar.gz - noextract = aseprite-1.2.30-opencl-lib.tar.gz - noextract = aseprite-1.2.30-opencl-registry.tar.gz - noextract = aseprite-1.2.30-opengl-registry.tar.gz - noextract = aseprite-1.2.30-piex.tar.gz - noextract = aseprite-1.2.30-sdl.tar.gz - noextract = aseprite-1.2.30-sfntly.tar.gz - noextract = aseprite-1.2.30-spirv-cross.tar.gz - noextract = aseprite-1.2.30-spirv-headers.tar.gz - noextract = aseprite-1.2.30-spirv-tools.tar.gz - noextract = aseprite-1.2.30-swiftshader.tar.gz - noextract = aseprite-1.2.30-wuffs.tar.gz - noextract = aseprite-1.2.30-zlib.tar.gz + depends = libexpat.so=1-64 + depends = libharfbuzz.so=0-64 + depends = libgl + depends = libfontconfig.so + depends = libxcursor + noextract = Aseprite-v1.2.30-Source.zip source = https://github.com/aseprite/aseprite/releases/download/v1.2.30/Aseprite-v1.2.30-Source.zip - source = aseprite.desktop - source = git+https://chromium.googlesource.com/chromium/tools/depot_tools.git source = git+https://github.com/aseprite/skia.git#branch=aseprite-m81 - source = aseprite-1.2.30-buildtools.tar.gz::https://chromium.googlesource.com/chromium/buildtools.git/+archive/505de88083136eefd056e5ee4ca0f01fe9b33de8.tar.gz - source = aseprite-1.2.30-common.tar.gz::https://skia.googlesource.com/common.git/+archive/9737551d7a52c3db3262db5856e6bcd62c462b92.tar.gz - source = aseprite-1.2.30-angle2.tar.gz::https://chromium.googlesource.com/angle/angle.git/+archive/ee07cb317579dfda40dabb5d6d9c209e0e9e0643.tar.gz - source = aseprite-1.2.30-dawn.tar.gz::https://dawn.googlesource.com/dawn.git/+archive/604072bc2ed01018eb03bcbbf9d94042f679af63.tar.gz - source = aseprite-1.2.30-dng_sdk.tar.gz::https://android.googlesource.com/platform/external/dng_sdk.git/+archive/c8d0c9b1d16bfda56f15165d39e0ffa360a11123.tar.gz - source = aseprite-1.2.30-egl-registry.tar.gz::https://skia.googlesource.com/external/github.com/KhronosGroup/EGL-Registry/+archive/a0bca08de07c7d7651047bedc0b653cfaaa4f2ae.tar.gz - source = aseprite-1.2.30-expat.tar.gz::https://android.googlesource.com/platform/external/expat.git/+archive/e5aa0a2cb0a5f759ef31c0819dc67d9b14246a4a.tar.gz - source = aseprite-1.2.30-freetype.tar.gz::https://skia.googlesource.com/third_party/freetype2.git/+archive/0a3d2bb99b45b72e1d45185ab054efa993d97210.tar.gz - source = aseprite-1.2.30-harfbuzz.tar.gz::https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git/+archive/3a74ee528255cc027d84b204a87b5c25e47bff79.tar.gz - source = aseprite-1.2.30-icu.tar.gz::https://chromium.googlesource.com/chromium/deps/icu.git/+archive/dbd3825b31041d782c5b504c59dcfb5ac7dda08c.tar.gz - source = aseprite-1.2.30-imgui.tar.gz::https://skia.googlesource.com/external/github.com/ocornut/imgui.git/+archive/d38d7c6628bebd02692cfdd6fa76b4d992a35b75.tar.gz - source = aseprite-1.2.30-libgifcodec.tar.gz::https://skia.googlesource.com/libgifcodec/+archive/38d9c73f49b861bb4a9829371ac311544b120023.tar.gz - source = aseprite-1.2.30-libjpeg-turbo.tar.gz::https://skia.googlesource.com/external/github.com/libjpeg-turbo/libjpeg-turbo.git/+archive/574f3a772c96dc9db2c98ef24706feb3f6dbda9a.tar.gz - source = aseprite-1.2.30-libpng.tar.gz::https://skia.googlesource.com/third_party/libpng.git/+archive/386707c6d19b974ca2e3db7f5c61873813c6fe44.tar.gz - source = aseprite-1.2.30-libwebp.tar.gz::https://chromium.googlesource.com/webm/libwebp.git/+archive/0fe1a89dbf1930fc2554dbe76adad5d962054ead.tar.gz - source = aseprite-1.2.30-lua.tar.gz::https://skia.googlesource.com/external/github.com/lua/lua.git/+archive/e354c6355e7f48e087678ec49e340ca0696725b1.tar.gz - source = aseprite-1.2.30-microhttpd.tar.gz::https://android.googlesource.com/platform/external/libmicrohttpd/+archive/748945ec6f1c67b7efc934ab0808e1d32f2fb98d.tar.gz - source = aseprite-1.2.30-opencl-lib.tar.gz::https://skia.googlesource.com/external/github.com/GPUOpen-Tools/common-lib-amd-APPSDK-3.0/+archive/4e6d30e406d2e5a65e1d65e404fe6df5f772a32b.tar.gz - source = aseprite-1.2.30-opencl-registry.tar.gz::https://skia.googlesource.com/external/github.com/KhronosGroup/OpenCL-Registry/+archive/932ed55c85f887041291cef8019e54280c033c35.tar.gz - source = aseprite-1.2.30-opengl-registry.tar.gz::https://skia.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry/+archive/14b80ebeab022b2c78f84a573f01028c96075553.tar.gz - source = aseprite-1.2.30-piex.tar.gz::https://android.googlesource.com/platform/external/piex.git/+archive/bb217acdca1cc0c16b704669dd6f91a1b509c406.tar.gz - source = aseprite-1.2.30-sdl.tar.gz::https://skia.googlesource.com/third_party/sdl/+archive/5d7cfcca344034aff9327f77fc181ae3754e7a90.tar.gz - source = aseprite-1.2.30-sfntly.tar.gz::https://chromium.googlesource.com/external/github.com/googlei18n/sfntly.git/+archive/b55ff303ea2f9e26702b514cf6a3196a2e3e2974.tar.gz - source = aseprite-1.2.30-spirv-cross.tar.gz::https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross/+archive/53ab2144b90abede33be5161aec5dfc94ddc3caf.tar.gz - source = aseprite-1.2.30-spirv-headers.tar.gz::https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers.git/+archive/29c11140baaf9f7fdaa39a583672c556bf1795a1.tar.gz - source = aseprite-1.2.30-spirv-tools.tar.gz::https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools.git/+archive/0c4feb643b89d1792b02f7cbef315e9d95633bd7.tar.gz - source = aseprite-1.2.30-swiftshader.tar.gz::https://swiftshader.googlesource.com/SwiftShader/+archive/430def835f9f85d52f4a96db9b715cd9a7403c9c.tar.gz - source = aseprite-1.2.30-wuffs.tar.gz::https://skia.googlesource.com/external/github.com/google/wuffs.git/+archive/4080840928c0b05a80cda0d14ac2e2615f679f1a.tar.gz - source = aseprite-1.2.30-zlib.tar.gz::https://chromium.googlesource.com/chromium/src/third_party/zlib/+archive/ea3ba903faac98b64b2bf8de5e98cd97b335a474.tar.gz source = gn::https://chromium-gn.storage-download.googleapis.com/3523d50538357829725d4ed74b777a572ce0ac74 + source = git+https://chromium.googlesource.com/chromium/buildtools.git#commit=505de88083136eefd056e5ee4ca0f01fe9b33de8 + source = git+https://skia.googlesource.com/common.git#commit=9737551d7a52c3db3262db5856e6bcd62c462b92 + source = aseprite.desktop + source = is_clang.py + source = shared-libarchive.patch + source = shared-libwebp.patch + source = optional-pixman.patch sha256sums = 9f4b098fe2327f2e9d73eb9f2aeebecad63e87ff2cf6fb6eeeee3c0778bb8874 + sha256sums = SKIP + sha256sums = c8c2d617f1a33d6eb27f25ebcc30bd8ba1e6a0aa980cada21dda2ad1401fa4a2 + sha256sums = SKIP + sha256sums = SKIP sha256sums = deaf646a615c79a4672b087562a09c44beef37e7acfc6f5f66a437d4f3b97a25 - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP - sha256sums = SKIP + sha256sums = cb901aaf479bcf1a2406ce21eb31e43d3581712a9ea245672ffd8fbcd9190441 + sha256sums = e42675504bfbc17655aef1dca957041095026cd3dd4e6981fb6df0a363948aa7 + sha256sums = 9a85e9b1b52c1d33d128cb87c12395d9a245049cfc10e148659ae2acd4cab3e6 + sha256sums = c2d14f9738a96a9db3695c00ac3d14b1312b6a595b151bd56e19422c86517654 pkgname = aseprite diff --git a/.gitignore b/.gitignore index 91bec31..3b15a45 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,9 @@ * -!.gitignore -!.SRCINFO -!aseprite.desktop -!PKGBUILD \ No newline at end of file +!/.gitignore +!/.SRCINFO +!/aseprite.desktop +!/PKGBUILD +!/is_clang.py +!/shared-libarchive.patch +!/shared-libwebp.patch +!/optional-pixman.patch diff --git a/PKGBUILD b/PKGBUILD index 53b153c..ae87442 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,4 +1,5 @@ # Maintainer: Imperator Storm <30777770+ImperatorStorm@users.noreply.github.com> +# Co-Maintainer: Eldred Habert # Contributor: Fredrick Brennan # Contributor: Andrew Bueide # Contributor: rouhannb @@ -9,213 +10,132 @@ pkgname=aseprite pkgver=1.2.30 -pkgrel=3 +pkgrel=4 pkgdesc='Create animated sprites and pixel art' arch=('x86_64') -url="http://www.aseprite.org/" +url="https://www.aseprite.org/" license=('custom') -depends=('cmark' 'curl' 'giflib' 'zlib' 'libpng' 'tinyxml' 'freetype2' 'fontconfig' 'libxcursor' - 'hicolor-icon-theme') -makedepends=('cmake' 'ninja' 'git' 'python2' 'python' 'freeglut' 'xorgproto' 'libxi' 'harfbuzz-icu' - 'nettle') -conflicts=("aseprite-git" "aseprite-gpl" "skia-git") -source=("https://github.com/${pkgname}/${pkgname}/releases/download/v${pkgver}/${pkgname^}-\ -v${pkgver}-Source.zip" -"${pkgname}.desktop" -"git+https://chromium.googlesource.com/chromium/tools/depot_tools.git" -"git+https://github.com/${pkgname}/skia.git#branch=${pkgname}-m81" -"${pkgname}-${pkgver}-buildtools.tar.gz::https://chromium.googlesource.com/chromium/buildtools.git/+archive/\ -505de88083136eefd056e5ee4ca0f01fe9b33de8.tar.gz" -"${pkgname}-${pkgver}-common.tar.gz::https://skia.googlesource.com/common.git/+archive/\ -9737551d7a52c3db3262db5856e6bcd62c462b92.tar.gz" -"${pkgname}-${pkgver}-angle2.tar.gz::https://chromium.googlesource.com/angle/angle.git/+archive/\ -ee07cb317579dfda40dabb5d6d9c209e0e9e0643.tar.gz" -"${pkgname}-${pkgver}-dawn.tar.gz::https://dawn.googlesource.com/dawn.git/+archive/\ -604072bc2ed01018eb03bcbbf9d94042f679af63.tar.gz" -"${pkgname}-${pkgver}-dng_sdk.tar.gz::https://android.googlesource.com/platform/external/dng_sdk.git/\ -+archive/c8d0c9b1d16bfda56f15165d39e0ffa360a11123.tar.gz" -"${pkgname}-${pkgver}-egl-registry.tar.gz::https://skia.googlesource.com/external/github.com/KhronosGroup\ -/EGL-Registry/+archive/a0bca08de07c7d7651047bedc0b653cfaaa4f2ae.tar.gz" -"${pkgname}-${pkgver}-expat.tar.gz::https://android.googlesource.com/platform/external/expat.git/+archive/\ -e5aa0a2cb0a5f759ef31c0819dc67d9b14246a4a.tar.gz" -"${pkgname}-${pkgver}-freetype.tar.gz::https://skia.googlesource.com/third_party/freetype2.git/+archive/\ -0a3d2bb99b45b72e1d45185ab054efa993d97210.tar.gz" -"${pkgname}-${pkgver}-harfbuzz.tar.gz::https://chromium.googlesource.com/external/github.com/harfbuzz/\ -harfbuzz.git/+archive/3a74ee528255cc027d84b204a87b5c25e47bff79.tar.gz" -"${pkgname}-${pkgver}-icu.tar.gz::https://chromium.googlesource.com/chromium/deps/icu.git/+archive/\ -dbd3825b31041d782c5b504c59dcfb5ac7dda08c.tar.gz" -"${pkgname}-${pkgver}-imgui.tar.gz::https://skia.googlesource.com/external/github.com/ocornut/imgui.git\ -/+archive/d38d7c6628bebd02692cfdd6fa76b4d992a35b75.tar.gz" -"${pkgname}-${pkgver}-libgifcodec.tar.gz::https://skia.googlesource.com/libgifcodec/+archive/\ -38d9c73f49b861bb4a9829371ac311544b120023.tar.gz" -"${pkgname}-${pkgver}-libjpeg-turbo.tar.gz::https://skia.googlesource.com/external/github.com/libjpeg-turbo\ -/libjpeg-turbo.git/+archive/574f3a772c96dc9db2c98ef24706feb3f6dbda9a.tar.gz" -"${pkgname}-${pkgver}-libpng.tar.gz::https://skia.googlesource.com/third_party/libpng.git/+archive/\ -386707c6d19b974ca2e3db7f5c61873813c6fe44.tar.gz" -"${pkgname}-${pkgver}-libwebp.tar.gz::https://chromium.googlesource.com/webm/libwebp.git/+archive/\ -0fe1a89dbf1930fc2554dbe76adad5d962054ead.tar.gz" -"${pkgname}-${pkgver}-lua.tar.gz::https://skia.googlesource.com/external/github.com/lua/lua.git/+archive/\ -e354c6355e7f48e087678ec49e340ca0696725b1.tar.gz" -"${pkgname}-${pkgver}-microhttpd.tar.gz::https://android.googlesource.com/platform/external/libmicrohttpd\ -/+archive/748945ec6f1c67b7efc934ab0808e1d32f2fb98d.tar.gz" -"${pkgname}-${pkgver}-opencl-lib.tar.gz::https://skia.googlesource.com/external/github.com/GPUOpen-Tools/\ -common-lib-amd-APPSDK-3.0/+archive/4e6d30e406d2e5a65e1d65e404fe6df5f772a32b.tar.gz" -"${pkgname}-${pkgver}-opencl-registry.tar.gz::https://skia.googlesource.com/external/github.com/\ -KhronosGroup/OpenCL-Registry/+archive/932ed55c85f887041291cef8019e54280c033c35.tar.gz" -"${pkgname}-${pkgver}-opengl-registry.tar.gz::https://skia.googlesource.com/external/github.com/\ -KhronosGroup/OpenGL-Registry/+archive/14b80ebeab022b2c78f84a573f01028c96075553.tar.gz" -"${pkgname}-${pkgver}-piex.tar.gz::https://android.googlesource.com/platform/external/piex.git/+archive/\ -bb217acdca1cc0c16b704669dd6f91a1b509c406.tar.gz" -"${pkgname}-${pkgver}-sdl.tar.gz::https://skia.googlesource.com/third_party/sdl/+archive/\ -5d7cfcca344034aff9327f77fc181ae3754e7a90.tar.gz" -"${pkgname}-${pkgver}-sfntly.tar.gz::https://chromium.googlesource.com/external/github.com/googlei18n/\ -sfntly.git/+archive/b55ff303ea2f9e26702b514cf6a3196a2e3e2974.tar.gz" -"${pkgname}-${pkgver}-spirv-cross.tar.gz::https://chromium.googlesource.com/external/github.com/\ -KhronosGroup/SPIRV-Cross/+archive/53ab2144b90abede33be5161aec5dfc94ddc3caf.tar.gz" -"${pkgname}-${pkgver}-spirv-headers.tar.gz::https://skia.googlesource.com/external/github.com/KhronosGroup/\ -SPIRV-Headers.git/+archive/29c11140baaf9f7fdaa39a583672c556bf1795a1.tar.gz" -"${pkgname}-${pkgver}-spirv-tools.tar.gz::https://skia.googlesource.com/external/github.com/KhronosGroup\ -/SPIRV-Tools.git/+archive/0c4feb643b89d1792b02f7cbef315e9d95633bd7.tar.gz" -"${pkgname}-${pkgver}-swiftshader.tar.gz::https://swiftshader.googlesource.com/SwiftShader/+archive/\ -430def835f9f85d52f4a96db9b715cd9a7403c9c.tar.gz" -"${pkgname}-${pkgver}-wuffs.tar.gz::https://skia.googlesource.com/external/github.com/google/wuffs.git\ -/+archive/4080840928c0b05a80cda0d14ac2e2615f679f1a.tar.gz" -"${pkgname}-${pkgver}-zlib.tar.gz::https://chromium.googlesource.com/chromium/src/third_party/zlib/+archive/\ -ea3ba903faac98b64b2bf8de5e98cd97b335a474.tar.gz" -"gn::https://chromium-gn.storage-download.googleapis.com/3523d50538357829725d4ed74b777a572ce0ac74" -) -_gitsrc=("${source[@]:4:29}") -noextract=("${_gitsrc[@]%%::*}") +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-m81" + # `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::https://chromium-gn.storage-download.googleapis.com/3523d50538357829725d4ed74b777a572ce0ac74" + # 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" + "$pkgname.desktop" + # 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=('9f4b098fe2327f2e9d73eb9f2aeebecad63e87ff2cf6fb6eeeee3c0778bb8874' + 'SKIP' + 'c8c2d617f1a33d6eb27f25ebcc30bd8ba1e6a0aa980cada21dda2ad1401fa4a2' + 'SKIP' + 'SKIP' 'deaf646a615c79a4672b087562a09c44beef37e7acfc6f5f66a437d4f3b97a25' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP' - 'SKIP') + 'cb901aaf479bcf1a2406ce21eb31e43d3581712a9ea245672ffd8fbcd9190441' + 'e42675504bfbc17655aef1dca957041095026cd3dd4e6981fb6df0a363948aa7' + '9a85e9b1b52c1d33d128cb87c12395d9a245049cfc10e148659ae2acd4cab3e6' + 'c2d14f9738a96a9db3695c00ac3d14b1312b6a595b151bd56e19422c86517654') prepare() { - cd "${srcdir}" + # Extract Aseprite's sources + mkdir -p aseprite + bsdtar -xf "${noextract[0]}" -C aseprite - # Install skia deps (essentially runs git-sync-deps with the files already downloaded) - mkdir --parents --verbose skia/third_party/externals + # 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 + chmod 755 gn - for _dep in buildtools common - do - mkdir --parents --verbose "skia/${_dep}" - tar --verbose --extract --file "${pkgname}-${pkgver}-${_dep}.tar.gz" --directory "skia/${_dep}" - done + # Replace `is_clang.py` with Python 3-compliant version + cp -v is_clang.py skia/gn - for _dep in angle2 dawn dng_sdk egl-registry expat freetype harfbuzz icu imgui opencl-registry \ - libjpeg-turbo libpng libwebp lua microhttpd opencl-lib opengl-registry piex \ - sdl sfntly spirv-cross spirv-headers spirv-tools swiftshader zlib wuffs - do - mkdir --parents --verbose "skia/third_party/externals/${_dep}" - tar --verbose --extract --file "${pkgname}-${pkgver}-${_dep}.tar.gz" --directory \ - "skia/third_party/externals/${_dep}" - done - - chmod u=rwx,g=rx,o=rx --verbose gn - mv --verbose gn skia/bin/gn - cp --verbose skia/bin/gn skia/buildtools/linux64/gn - - mkdir --parents --verbose binsub - ln --force --symbolic $(which python2) binsub/python + # Allow using shared libarchive (the bundled version prevents using the `None` build type...) + env -C aseprite patch -tp1 +Date: Fri, 9 Oct 2020 02:18:36 +0300 +Subject: [PATCH] Make LibArchive as shared library dependency + +--- + CMakeLists.txt | 11 +++++++++++ + src/app/CMakeLists.txt | 2 +- + third_party/CMakeLists.txt | 22 ++++++++++++---------- + 3 files changed, 24 insertions(+), 11 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 9cb5a2cdfb..9d95936f36 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -60,6 +60,7 @@ option(USE_SHARED_CURL "Use your installed copy of curl" off) + option(USE_SHARED_GIFLIB "Use your installed copy of giflib" off) + option(USE_SHARED_JPEGLIB "Use your installed copy of jpeglib" off) + option(USE_SHARED_ZLIB "Use your installed copy of zlib" off) ++option(USE_SHARED_LIBARCHIVE "Use your installed copy of libarchive" off) + option(USE_SHARED_LIBPNG "Use your installed copy of libpng" off) + option(USE_SHARED_TINYXML "Use your installed copy of tinyxml" off) + option(USE_SHARED_PIXMAN "Use your installed copy of pixman" off) +@@ -200,6 +201,16 @@ else() + endif() + include_directories(${ZLIB_INCLUDE_DIRS}) + ++# libarchive ++if(USE_SHARED_LIBARCHIVE) ++ find_package(LibArchive REQUIRED) ++else() ++ set(LibArchive_FOUND) ++ set(LibArchive_LIBRARIES archive_static) ++ set(LibArchive_INCLUDE_DIRS $) ++endif() ++include_directories(${LibArchive_INCLUDE_DIRS}) ++ + # libpng + if(USE_SHARED_LIBPNG) + find_package(PNG REQUIRED) +diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt +index e1e3bc1ae3..4a37838e95 100644 +--- a/src/app/CMakeLists.txt ++++ b/src/app/CMakeLists.txt +@@ -651,8 +651,8 @@ target_link_libraries(app-lib + ${ZLIB_LIBRARIES} + ${FREETYPE_LIBRARIES} + ${HARFBUZZ_LIBRARIES} ++ ${LibArchive_LIBRARIES} + json11 +- archive_static + fmt + tinyexpr) + +diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt +index ffd1c0cfcd..4839d4097c 100644 +--- a/third_party/CMakeLists.txt.orig ++++ b/third_party/CMakeLists.txt +@@ -110,6 +110,7 @@ endif() + add_subdirectory(json11) + + # libarchive ++if(NOT USE_SHARED_LIBARCHIVE) + set(ENABLE_WERROR OFF CACHE BOOL "Treat warnings as errors - default is ON for Debug, OFF otherwise.") + set(ENABLE_TEST OFF CACHE BOOL "Enable unit and regression tests") + set(ENABLE_COVERAGE OFF CACHE BOOL "Enable code coverage (GCC only, automatically sets ENABLE_TEST to ON)") +@@ -123,6 +124,7 @@ set(ENABLE_CPIO OFF CACHE BOOL "Enable cpio building") + add_subdirectory(libarchive) + target_include_directories(archive_static INTERFACE + $) ++endif() + + # benchmark + if(ENABLE_BENCHMARKS) diff --git a/shared-libwebp.patch b/shared-libwebp.patch new file mode 100644 index 0000000..65de0c6 --- /dev/null +++ b/shared-libwebp.patch @@ -0,0 +1,58 @@ +From ca9e20a87be6dcc8d9b97841535b2320d2eb2f91 Mon Sep 17 00:00:00 2001 +From: Drauthius +Date: Sat, 26 Sep 2020 10:40:13 +0200 +Subject: [PATCH] Shared webp library + +Making optional linking with shared system webp library with +-DUSE_SHARED_WEBP option. +--- + CMakeLists.txt | 12 +++++++++--- + third_party/CMakeLists.txt | 2 +- + 2 files changed, 10 insertions(+), 4 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f16f09660d..40065905d3 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -66,6 +66,7 @@ option(USE_SHARED_TINYXML "Use your installed copy of tinyxml" off) + option(USE_SHARED_PIXMAN "Use your installed copy of pixman" off) + option(USE_SHARED_FREETYPE "Use shared FreeType library" off) + option(USE_SHARED_HARFBUZZ "Use shared HarfBuzz library" off) ++option(USE_SHARED_WEBP "Use your installed copy of webp" off) + option(ENABLE_ASEPRITE_EXE "Compile main Aseprite executable" on) + option(ENABLE_MEMLEAK "Enable memory-leaks detector (only for developers)" off) + option(ENABLE_NEWS "Enable the news in Home tab" on) +@@ -229,9 +230,17 @@ add_definitions(-DPNG_NO_MMX_CODE) # Do not use MMX optimizations in PNG code + + # libwebp + if(WITH_WEBP_SUPPORT) +- set(WEBP_LIBRARIES webp webpdemux libwebpmux) +- set(WEBP_INCLUDE_DIR ${LIBWEBP_DIR}/src) +- include_directories(${WEBP_INCLUDE_DIR}) ++ if(USE_SHARED_WEBP) ++ find_library(WEBP_LIBRARY NAMES webp) ++ find_library(WEBPDEMUX_LIBRARY NAMES webpdemux) ++ find_library(WEBPMUX_LIBRARY NAMES webpmux) ++ set(WEBP_LIBRARIES ${WEBP_LIBRARY} ${WEBPDEMUX_LIBRARY} ${WEBPMUX_LIBRARY}) ++ find_path(WEBP_INCLUDE_DIRS NAMES decode.h PATH_SUFFIXES webp) ++ else() ++ set(WEBP_LIBRARIES webp webpdemux libwebpmux) ++ set(WEBP_INCLUDE_DIR ${LIBWEBP_DIR}/src) ++ include_directories(${WEBP_INCLUDE_DIR}) ++ endif() + endif() + + # tinyxml +diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt +index 4839d4097c..e8c3e83cbc 100644 +--- a/third_party/CMakeLists.txt ++++ b/third_party/CMakeLists.txt +@@ -32,7 +32,7 @@ if(NOT USE_SHARED_GIFLIB) + add_subdirectory(giflib) + endif() + +-if(WITH_WEBP_SUPPORT) ++if(WITH_WEBP_SUPPORT AND NOT USE_SHARED_WEBP) + set(WEBP_BUILD_EXTRAS OFF CACHE BOOL "Build extras.") + add_subdirectory(libwebp) + endif()