summaryrefslogtreecommitdiff
path: root/dev-games/aseprite
diff options
context:
space:
mode:
Diffstat (limited to 'dev-games/aseprite')
-rw-r--r--dev-games/aseprite/Manifest9
-rw-r--r--dev-games/aseprite/aseprite-1.2.35.ebuild213
-rw-r--r--dev-games/aseprite/files/aseprite-1.2.35_check_colorSpace.patch25
-rw-r--r--dev-games/aseprite/files/aseprite-1.2.35_laf_fixes.patch40
-rw-r--r--dev-games/aseprite/files/aseprite-1.2.35_shared_json11.patch54
-rw-r--r--dev-games/aseprite/files/aseprite-1.2.35_shared_libarchive.patch106
-rw-r--r--dev-games/aseprite/files/aseprite-1.2.35_shared_webp.patch90
-rw-r--r--dev-games/aseprite/files/skia-m102_remove_angle2.patch15
8 files changed, 552 insertions, 0 deletions
diff --git a/dev-games/aseprite/Manifest b/dev-games/aseprite/Manifest
index 6e2242d875a8..7d85b5b00ca0 100644
--- a/dev-games/aseprite/Manifest
+++ b/dev-games/aseprite/Manifest
@@ -1,4 +1,13 @@
AUX aseprite-1.1.7_type-punned_pointer.patch 836 BLAKE2B ca46926a87411fa74c7d66830bd4fc43dc3ae5130342bbb4300398c11a810949ccc530a8a7e66ae6265b2f89fe0bd667557ee7c647491e93d52768d74a340554 SHA512 c01ca8dc6bcee6276f3f4c7f7f141d8528372f0cbbb33c036b89ba64e639966d9b9955a78ec917ef7ebeda2148abc817bc4df7c1fe02818734f51cd7452df9ca
+AUX aseprite-1.2.35_check_colorSpace.patch 968 BLAKE2B a9c9e4b7b2e604e741ad0a50569e4cf0b4ea8dcdf8d66988973908e4b814e2bfe2164db0505ba24dd3a1860a6bdf322188bc5e07dd426c13709f729d3d373e81 SHA512 5647dc3a1faa6cd0ced4a781e1a9461cf499fb1f4420b6790e52a346cce6d245f3123539702976dfc66a6f5c2eda151e5aae03a91d5ebf127fa99896db512efd
+AUX aseprite-1.2.35_laf_fixes.patch 1265 BLAKE2B 9c0c7ab527f15fdce6de34351c2f4b0a35f889f27c37cfce545dd36a7077cc9050b6922d14071713a2fd3d2afed94daea3df1c200f89ff8cf934c818155c53e2 SHA512 c8c55b3272d0caa367a8614d46ef0b6d684dd80e03d865f44ffaa71f097f7a53b193bf497ee6288c0b10b6eb7de1f521aea6212fd483a19b0d059f0cd2a8d3ba
+AUX aseprite-1.2.35_shared_json11.patch 1786 BLAKE2B e2ceb13497e61f8fa9d9025ded3ee8e0ffd12dfe2024a7a14d6210c712ec8574c9be3e932b0c04a7a2aad8ebb127e303f6f8d1f29e14177103b686f645210350 SHA512 f67a7d65567204e17c134d99e79f5a7bf29e9d17d28953ebadcc3921cdb80a9dd865979878138eb7c664486706a094dbcf8c105127ba833b049c5a59eb6af1cf
+AUX aseprite-1.2.35_shared_libarchive.patch 5056 BLAKE2B b681461ccc86889fe387fe0a061e4f785f45f2d46a28dd08144a8458bf19ef19f73bea7937515f74363f77655976761c512a198ac9a562d2e2acfb116875bafe SHA512 51ba9b5fb31a2eaa5bfdff61b2ca77aeb94aa080d3b894f641bcbf46b44c81a7310c4da426b69d9399c1b414a5f843b0633466d0eec5eb9048cd8f6b5d944f9c
+AUX aseprite-1.2.35_shared_webp.patch 3815 BLAKE2B 4d7b5e66c2f8c6a53e8f35e0373ac224caaad3e1da927e1e8979d23e9106f49c8f105bd100aea06ca49b8ad5d2bbf5b868725eb9939b46fc5f69453246b1752f SHA512 b4a452b1ab1f94e4b47d0f567a7d9f35ffafc477372479701a3ba5ce2cf9860751f0f6db2d30eed9911a24959e07c2c1ba6c919f863248dbccd35b07b111b6b5
+AUX skia-m102_remove_angle2.patch 562 BLAKE2B c4140e33bac4fb929510ca2317c73c3643bca02f975af84342cf23ecd9b440e8042942489d23f81eb3e37e93593a81630784134dbe8d0a8d9800c32211d8f209 SHA512 2099a86ff03bbe12dc83a691557f19b6e56889032203c5b3e17e533f7dd8ff38f2c4f28a4b25c320c501a7d29617f8190d73cf195a1150f0b867b84c587c9816
DIST Aseprite-v1.1.9-Source.zip 11746265 BLAKE2B fa16be059a7bb3b83705c56e7e93cbbb71676617a8d0798f0e481b09199ae069b85826615f8609acabb10a4e9a9da0857f2f99b03c2b913f26eee6d4dfdc0f0a SHA512 44c5878c67e69d2510c862e8f6869d727aa47b3d23d41d4e7318eca54c6d72fc5f89e72c70c160ce6da78fa091e11eedefa74e0273dc4cea59b2fe16c8851d9e
+DIST Aseprite-v1.2.35-Source.zip 61972632 BLAKE2B f9e24d04a19756f65041cb9c96a4142fe5078a4f6d8b48f69e79501822ff8a5070f350cf9016e5500fec5aeb82d4d8eb2c8d8b42a73fd8bc73aecab185d002fe SHA512 2577a683516adc9c601300da15e9099d6fa698fec32f4b62ce95c46412c1dd26b0538cc23996e0a1060ac4a4de47c2538124c4a01ade375f3b4efcbc99fbbdc8
+DIST skia-m102-3338e90707323d2cd3a150276acb9f39933deee2.tar.gz 53866802 BLAKE2B c8a67c96a78bb09802b54536f994a0964ba46f1996cc1e7f41757c08802519ec0c7fe22c667b546e7d9cdee6b0d257f8629f2294b880ff9b5acac6a7f3bf18bf SHA512 15c44ffe7d1e9c678ab80826e4a76e783014859b05f1dc9410077e1a1a45b8b3bcc80bd99237e7b1a7e7301f73abdb51f7ddb10010ffe97418b2fc1356ea55e9
EBUILD aseprite-1.1.9.ebuild 2751 BLAKE2B 6c5780619c95e893e181291c0fbce2f826f8ac6ba2cc559fd33c1461432e2498461f02496031b0ffc50bd974dc64ae47301c4546d600c823d809a7f162c74e64 SHA512 4178e2fb7f9c8b6b267cae0bc83d9887718057c99c4f6dd9acf7c2f41f484e463e75df78a60fbd7f8699de5ae2ee221e476148bf2bb5e93e7c064b66f6b1ac2e
+EBUILD aseprite-1.2.35.ebuild 4985 BLAKE2B 1ed04db758abf125ef2d9129dbae42d740ad2fa8d7c381b5dca5520933f546427129bf3f4b7035f2c9131f64cc80813e9c54d2b604180fe10d3a175c51090e0d SHA512 9634c1dcebf92950383dca7beff05d423322f3db4de1e142db3aadaa83f90d3503edadc46fd560395bb505d506ec59ba0be9e4c0298ad9658c0a36ef00dbb38d
MISC metadata.xml 684 BLAKE2B a1ad6d72f940738634ce874c50abaadaee4f897a1a694170da97d4403a9fa69383934fff7392c1417b9b954c3c98a4f138a9da1921e01171a8ebf1ab91d9f256 SHA512 a4d1efc2228d170e868d8328d64a8195fec01807ca4a4424e44f55354d57ab1949c827dbadf6b8a2037979fa684cb6445d95feb37a61b4d3ac637620699f9a77
diff --git a/dev-games/aseprite/aseprite-1.2.35.ebuild b/dev-games/aseprite/aseprite-1.2.35.ebuild
new file mode 100644
index 000000000000..367e97fc2ace
--- /dev/null
+++ b/dev-games/aseprite/aseprite-1.2.35.ebuild
@@ -0,0 +1,213 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake desktop ninja-utils toolchain-funcs xdg-utils
+
+SKIA_VER="m102"
+# Last commit in ${SKIA_VER} feature branch
+SKIA_REV="3338e90707323d2cd3a150276acb9f39933deee2"
+
+DESCRIPTION="Animated sprite editor & pixel art tool"
+HOMEPAGE="https://www.aseprite.org"
+SRC_URI="https://github.com/aseprite/aseprite/releases/download/v${PV}/Aseprite-v${PV}-Source.zip
+ https://skia.googlesource.com/skia/+archive/${SKIA_REV}.tar.gz -> skia-${SKIA_VER}-${SKIA_REV}.tar.gz"
+
+# See https://github.com/aseprite/aseprite#license
+LICENSE="Aseprite-EULA"
+SLOT="0"
+KEYWORDS="~amd64"
+
+IUSE="kde test webp"
+RESTRICT="bindist mirror !test? ( test )"
+
+RDEPEND="
+ app-arch/libarchive:=
+ app-text/cmark:=
+ dev-cpp/json11
+ dev-libs/tinyxml
+ media-libs/freetype
+ media-libs/giflib:=
+ media-libs/harfbuzz:=
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ net-misc/curl
+ sys-libs/zlib:=
+ virtual/opengl
+ x11-libs/libX11
+ x11-libs/libXcursor
+ x11-libs/libxcb:=
+ kde? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ kde-frameworks/kio:5
+ )
+ webp? ( media-libs/libwebp:= )"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ test? ( dev-cpp/gtest )
+ app-arch/unzip
+ dev-util/gn
+ virtual/pkgconfig"
+
+DOCS=(
+ docs/ase-file-specs.md
+ docs/gpl-palette-extension.md
+ README.md
+)
+
+S="${WORKDIR}"
+
+PATCHES=(
+ "${FILESDIR}/skia-${SKIA_VER}_remove_angle2.patch"
+ "${FILESDIR}/${P}_check_colorSpace.patch"
+ "${FILESDIR}/${P}_shared_libarchive.patch"
+ "${FILESDIR}/${P}_shared_json11.patch"
+ "${FILESDIR}/${P}_shared_webp.patch"
+ "${FILESDIR}/${P}_laf_fixes.patch"
+)
+
+src_unpack() {
+ unpack "Aseprite-v${PV}-Source.zip"
+ # Unpack skia into separate dir
+ mkdir -p "${WORKDIR}/skia" || die
+ cd "${WORKDIR}/skia" || die
+ unpack "skia-${SKIA_VER}-${SKIA_REV}.tar.gz"
+}
+
+src_prepare() {
+ cmake_src_prepare
+ # Skia: remove custom optimizations
+ sed -i -e 's:"\/\/gn\/skia\:optimize",::g' skia/gn/BUILDCONFIG.gn || die
+ # Aseprite: don't install tga bundled library
+ sed -i -e '/install/d' src/tga/CMakeLists.txt || die
+ # Aseprite: don't use bundled gtest
+ sed -i -e '/add_subdirectory(googletest)/d' \
+ laf/third_party/CMakeLists.txt || die
+ # Fix shebang in thumbnailer
+ sed -i -e 's:#!/usr/bin/sh:#!/bin/sh:' \
+ src/desktop/linux/aseprite-thumbnailer || die
+}
+
+src_configure() {
+ einfo "Skia configuration"
+ cd "${WORKDIR}/skia" || die
+
+ tc-export AR CC CXX
+
+ passflags() {
+ local _f _x
+ _f=( ${1} )
+ _x="[$(printf '"%s", ' "${_f[@]}")]"
+ myconf_gn+=( ${2}="${_x}" )
+ }
+
+ local myconf_gn=(
+ ar=\"${AR}\"
+ cc=\"${CC}\"
+ cxx=\"${CXX}\"
+
+ is_official_build=true
+ is_component_build=false
+ is_debug=false
+
+ skia_use_egl=false
+ skia_use_dawn=false
+ skia_use_dng_sdk=false
+ skia_use_metal=false
+ skia_use_sfntly=false
+ skia_use_wuffs=false
+
+ skia_enable_pdf=false
+ skia_enable_svg=false
+ skia_use_expat=false
+ skia_use_ffmpeg=false
+ skia_use_fontconfig=false
+ skia_use_freetype=true
+ skia_use_gl=true
+ skia_use_harfbuzz=true
+ skia_use_icu=false
+ skia_use_libjpeg_turbo_decode=true
+ skia_use_libjpeg_turbo_encode=true
+ skia_use_libpng_decode=true
+ skia_use_libpng_encode=true
+ skia_use_libwebp_decode=$(usex webp true false)
+ skia_use_libwebp_encode=$(usex webp true false)
+ skia_use_lua=false
+ skia_use_vulkan=false
+ skia_use_x11=false
+ skia_use_xps=false
+ skia_use_zlib=true
+ )
+
+ passflags "${CFLAGS}" extra_cflags_c
+ passflags "${CXXFLAGS}" extra_cflags_cc
+ passflags "${LDFLAGS}" extra_ldflags
+ myconf_gn="${myconf_gn[@]}"
+ set -- gn gen --args="${myconf_gn% }" out/Static
+ echo "$@"
+ "$@" || die
+
+ einfo "Aseprite configuration"
+ cd "${WORKDIR}" || die
+
+ local mycmakeargs=(
+ -DENABLE_CCACHE=OFF
+ -DENABLE_DESKTOP_INTEGRATION=ON
+ -DENABLE_STEAM=OFF
+ -DENABLE_TESTS="$(usex test)"
+ -DENABLE_QT_THUMBNAILER="$(usex kde)"
+ -DENABLE_UPDATER=OFF
+ -DENABLE_UI=ON
+ -DENABLE_WEBP="$(usex webp)"
+ -DLAF_WITH_EXAMPLES=OFF
+ -DLAF_WITH_TESTS="$(usex test)"
+ -DFULLSCREEN_PLATFORM=ON
+ -DSKIA_DIR="${WORKDIR}/skia/"
+ -DSKIA_LIBRARY_DIR="${WORKDIR}/skia/out/Static/"
+ -DSKIA_LIBRARY="${WORKDIR}/skia/out/Static/libskia.a"
+ -DSKSHAPER_LIBRARY="${WORKDIR}/skia/out/Static/libskshaper.a"
+ -DUSE_SHARED_CMARK=ON
+ -DUSE_SHARED_CURL=ON
+ -DUSE_SHARED_FREETYPE=ON
+ -DUSE_SHARED_GIFLIB=ON
+ -DUSE_SHARED_HARFBUZZ=ON
+ -DUSE_SHARED_JPEGLIB=ON
+ -DUSE_SHARED_JSON11=ON
+ -DUSE_SHARED_LIBARCHIVE=ON
+ -DUSE_SHARED_LIBPNG=ON
+ -DUSE_SHARED_PIXMAN=ON
+ -DUSE_SHARED_TINYXML=ON
+ -DUSE_SHARED_WEBP=ON
+ -DUSE_SHARED_ZLIB=ON
+ )
+ cmake_src_configure
+}
+
+src_compile() {
+ einfo "Skia compilation"
+ cd "${WORKDIR}/skia" || die
+ eninja -C out/Static
+
+ einfo "Aseprite compilation"
+ cd "${WORKDIR}" || die
+ cmake_src_compile
+}
+
+src_install() {
+ newicon -s 64 "${S}/data/icons/ase64.png" "${PN}.png"
+ cmake_src_install
+}
+
+pkg_postinst() {
+ xdg_desktop_database_update
+ xdg_icon_cache_update
+ xdg_mimeinfo_database_update
+}
+
+pkg_postrm() {
+ xdg_desktop_database_update
+ xdg_icon_cache_update
+ xdg_mimeinfo_database_update
+}
diff --git a/dev-games/aseprite/files/aseprite-1.2.35_check_colorSpace.patch b/dev-games/aseprite/files/aseprite-1.2.35_check_colorSpace.patch
new file mode 100644
index 000000000000..e674d1409699
--- /dev/null
+++ b/dev-games/aseprite/files/aseprite-1.2.35_check_colorSpace.patch
@@ -0,0 +1,25 @@
+From 7ce4c04bce391ed16b8b8eeafc1b27c36638014c Mon Sep 17 00:00:00 2001
+From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com>
+Date: Sun, 10 Jul 2022 19:33:44 +0300
+Subject: [PATCH] Check colorSpace before accessing
+
+In some cases internal surface may not have a colorspace.
+---
+ src/app/ui/color_selector.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/app/ui/color_selector.cpp b/src/app/ui/color_selector.cpp
+index 50ca45476..0aefaa52b 100644
+--- a/src/app/ui/color_selector.cpp
++++ b/src/app/ui/color_selector.cpp
+@@ -447,6 +447,7 @@ void ColorSelector::onPaint(ui::PaintEvent& ev)
+ bool isSRGB;
+ // TODO compare both color spaces
+ if (get_current_color_space()->isSRGB() &&
++ g->getInternalSurface()->colorSpace() &&
+ g->getInternalSurface()->colorSpace()->isSRGB()) {
+ // We can render directly in the ui::Graphics surface
+ canvas = &static_cast<os::SkiaSurface*>(g->getInternalSurface())->canvas();
+--
+2.35.1
+
diff --git a/dev-games/aseprite/files/aseprite-1.2.35_laf_fixes.patch b/dev-games/aseprite/files/aseprite-1.2.35_laf_fixes.patch
new file mode 100644
index 000000000000..31a9ab5b3be9
--- /dev/null
+++ b/dev-games/aseprite/files/aseprite-1.2.35_laf_fixes.patch
@@ -0,0 +1,40 @@
+diff --git a/cmake/FindSkia.cmake b/cmake/FindSkia.cmake
+index 2d18c12..2e37f22 100644
+--- a/laf/cmake/FindSkia.cmake
++++ b/laf/cmake/FindSkia.cmake
+@@ -122,25 +122,25 @@ if(NOT ZLIB_LIBRARIES)
+ set(ZLIB_LIBRARIES ${ZLIB_LIBRARY})
+ endif()
+
+-set(FREETYPE_FOUND ON)
+-find_library(FREETYPE_LIBRARY freetype2 PATH "${SKIA_LIBRARY_DIR}" NO_DEFAULT_PATH)
+-set(FREETYPE_LIBRARIES ${FREETYPE_LIBRARY})
+-set(FREETYPE_INCLUDE_DIRS "${SKIA_DIR}/third_party/externals/freetype/include")
+-
+-find_library(HARFBUZZ_LIBRARY harfbuzz PATH "${SKIA_LIBRARY_DIR}" NO_DEFAULT_PATH)
+-set(HARFBUZZ_LIBRARIES ${HARFBUZZ_LIBRARY})
+-set(HARFBUZZ_INCLUDE_DIRS "${SKIA_DIR}/third_party/externals/harfbuzz/src")
+-
+ set(SKIA_LIBRARIES
+ ${SKIA_LIBRARY}
+ ${SKIA_OPENGL_LIBRARY}
++ ${FREETYPE_LIBRARIES}
++ ${JPEG_LIBRARIES}
++ ${HARFBUZZ_LIBRARIES}
++ ${PNG_LIBRARIES}
++ ${WEBP_LIBRARIES}
+ CACHE INTERNAL "Skia libraries")
+
+ add_library(skia INTERFACE)
+ target_include_directories(skia INTERFACE
+ ${SKIA_DIR}
+ ${FREETYPE_INCLUDE_DIRS}
+- ${HARFBUZZ_INCLUDE_DIRS})
++ ${JPEG_INCLUDE_DIRS}
++ ${HARFBUZZ_INCLUDE_DIRS}
++ ${PNG_INCLUDE_DIRS}
++ ${WEBP_INCLUDE_DIRS}
++)
+ target_link_libraries(skia INTERFACE ${SKIA_LIBRARIES})
+ target_compile_definitions(skia INTERFACE
+ SK_INTERNAL
diff --git a/dev-games/aseprite/files/aseprite-1.2.35_shared_json11.patch b/dev-games/aseprite/files/aseprite-1.2.35_shared_json11.patch
new file mode 100644
index 000000000000..ef962c507609
--- /dev/null
+++ b/dev-games/aseprite/files/aseprite-1.2.35_shared_json11.patch
@@ -0,0 +1,54 @@
+From b7b1563f0a7b913bac62673b1629755eb2adafc3 Mon Sep 17 00:00:00 2001
+From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com>
+Date: Sun, 10 Jul 2022 19:53:06 +0300
+Subject: [PATCH] Use shared json11 library
+
+Added option -DUSE_SHARED_JSON11
+---
+ CMakeLists.txt | 7 +++++++
+ third_party/CMakeLists.txt | 4 +++-
+ 2 files changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 26e09c418..306049917 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -50,6 +50,7 @@ option(USE_SHARED_CMARK "Use your installed copy of cmark" off)
+ 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_JSON11 "Use your installed copy of json11" 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)
+@@ -308,6 +309,12 @@ else()
+ endif()
+ include_directories(${JPEG_INCLUDE_DIRS})
+
++if(USE_SHARED_JSON11)
++ find_package(PkgConfig QUIET)
++ pkg_check_modules(JSON11 json11)
++ include_directories(${JSON11_INCLUDE_DIRS})
++endif()
++
+ if(USE_SHARED_CMARK)
+ find_library(CMARK_LIBRARIES NAMES cmark)
+ find_path(CMARK_INCLUDE_DIRS NAMES cmark.h)
+diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt
+index 12017190f..f499545b6 100644
+--- a/third_party/CMakeLists.txt
++++ b/third_party/CMakeLists.txt
+@@ -123,7 +123,9 @@ if(NOT USE_SHARED_CMARK)
+ endif()
+
+ # JSON
+-add_subdirectory(json11)
++if(NOT USE_SHARED_JSON11)
++ add_subdirectory(json11)
++endif()
+
+ # libarchive
+ if(NOT USE_SHARED_LIBARCHIVE)
+--
+2.35.1
+
diff --git a/dev-games/aseprite/files/aseprite-1.2.35_shared_libarchive.patch b/dev-games/aseprite/files/aseprite-1.2.35_shared_libarchive.patch
new file mode 100644
index 000000000000..0e0e1bd0e98f
--- /dev/null
+++ b/dev-games/aseprite/files/aseprite-1.2.35_shared_libarchive.patch
@@ -0,0 +1,106 @@
+From ddc7f2c19fd104e99bc49210b1f6ac3f5cec1548 Mon Sep 17 00:00:00 2001
+From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com>
+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 | 38 ++++++++++++++++++++------------------
+ 3 files changed, 32 insertions(+), 19 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1e7692679..26e09c418 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -51,6 +51,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)
+@@ -210,6 +211,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 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/libarchive/libarchive>)
++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 c42768ff6..e0495f98f 100644
+--- a/src/app/CMakeLists.txt
++++ b/src/app/CMakeLists.txt
+@@ -670,8 +670,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 2c0a08248..12017190f 100644
+--- a/third_party/CMakeLists.txt
++++ b/third_party/CMakeLists.txt
+@@ -126,24 +126,26 @@ endif()
+ add_subdirectory(json11)
+
+ # 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)")
+-set(ENABLE_LZ4 OFF CACHE BOOL "Enable the use of the system LZ4 library if found")
+-set(ENABLE_LZO OFF CACHE BOOL "Enable the use of the system LZO library if found")
+-set(ENABLE_LZMA OFF CACHE BOOL "Enable the use of the system LZMA library if found")
+-set(ENABLE_ZSTD OFF CACHE BOOL "Enable the use of the system zstd library if found")
+-set(ENABLE_CNG OFF CACHE BOOL "Enable the use of CNG(Crypto Next Generation)")
+-set(ENABLE_BZip2 OFF CACHE BOOL "Enable the use of the system BZip2 library if found")
+-set(ENABLE_EXPAT OFF CACHE BOOL "Enable the use of the system EXPAT library if found")
+-set(ENABLE_LIBXML2 OFF CACHE BOOL "Enable the use of the system libxml2 library if found")
+-set(ENABLE_CAT OFF CACHE BOOL "Enable cat building")
+-set(ENABLE_TAR OFF CACHE BOOL "Enable tar building")
+-set(ENABLE_CPIO OFF CACHE BOOL "Enable cpio building")
+-set(ENABLE_LIBB2 OFF CACHE BOOL "Enable the use of the system LIBB2 library if found")
+-add_subdirectory(libarchive)
+-target_include_directories(archive_static INTERFACE
+- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/libarchive/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)")
++ set(ENABLE_LZ4 OFF CACHE BOOL "Enable the use of the system LZ4 library if found")
++ set(ENABLE_LZO OFF CACHE BOOL "Enable the use of the system LZO library if found")
++ set(ENABLE_LZMA OFF CACHE BOOL "Enable the use of the system LZMA library if found")
++ set(ENABLE_ZSTD OFF CACHE BOOL "Enable the use of the system zstd library if found")
++ set(ENABLE_CNG OFF CACHE BOOL "Enable the use of CNG(Crypto Next Generation)")
++ set(ENABLE_BZip2 OFF CACHE BOOL "Enable the use of the system BZip2 library if found")
++ set(ENABLE_EXPAT OFF CACHE BOOL "Enable the use of the system EXPAT library if found")
++ set(ENABLE_LIBXML2 OFF CACHE BOOL "Enable the use of the system libxml2 library if found")
++ set(ENABLE_CAT OFF CACHE BOOL "Enable cat building")
++ set(ENABLE_TAR OFF CACHE BOOL "Enable tar building")
++ set(ENABLE_CPIO OFF CACHE BOOL "Enable cpio building")
++ set(ENABLE_LIBB2 OFF CACHE BOOL "Enable the use of the system LIBB2 library if found")
++ add_subdirectory(libarchive)
++ target_include_directories(archive_static INTERFACE
++ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/libarchive/libarchive>)
++endif()
+
+ # benchmark
+ if(ENABLE_BENCHMARKS)
+--
+2.35.1
+
diff --git a/dev-games/aseprite/files/aseprite-1.2.35_shared_webp.patch b/dev-games/aseprite/files/aseprite-1.2.35_shared_webp.patch
new file mode 100644
index 000000000000..0344c691a06c
--- /dev/null
+++ b/dev-games/aseprite/files/aseprite-1.2.35_shared_webp.patch
@@ -0,0 +1,90 @@
+From 848e031f0289c7fd67c2d6d098de26e479a40adb Mon Sep 17 00:00:00 2001
+From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com>
+Date: Sun, 10 Jul 2022 20:14:00 +0300
+Subject: [PATCH] Use shared webp library
+
+Added option -DUSE_SHARED_WEBP
+---
+ CMakeLists.txt | 13 ++++++++++---
+ third_party/CMakeLists.txt | 34 ++++++++++++++++++----------------
+ 2 files changed, 28 insertions(+), 19 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 306049917..0196a47f2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -56,6 +56,7 @@ 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)
++option(USE_SHARED_WEBP "User your installed copy of webp" off)
+ option(USE_SHARED_FREETYPE "Use shared FreeType library" off)
+ option(USE_SHARED_HARFBUZZ "Use shared HarfBuzz library" off)
+ option(ENABLE_ASEPRITE_EXE "Compile main Aseprite executable" on)
+@@ -241,9 +242,15 @@ add_definitions(-DPNG_NO_MMX_CODE) # Do not use MMX optimizations in PNG code
+
+ # libwebp
+ if(ENABLE_WEBP)
+- set(WEBP_LIBRARIES webp webpdemux libwebpmux)
+- set(WEBP_INCLUDE_DIR ${LIBWEBP_DIR}/src)
+- include_directories(${WEBP_INCLUDE_DIR})
++ if(USE_SHARED_WEBP)
++ find_package(PkgConfig QUIET)
++ pkg_check_modules(WEBP libwebp libwebpdemux libwebpmux)
++ include_directories(${WEBP_INCLUDE_DIR})
++ 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 f499545b6..6855fd6db 100644
+--- a/third_party/CMakeLists.txt
++++ b/third_party/CMakeLists.txt
+@@ -34,22 +34,24 @@ if(NOT USE_SHARED_GIFLIB)
+ endif()
+
+ if(ENABLE_WEBP)
+- set(WEBP_BUILD_EXTRAS OFF CACHE BOOL "Build extras.")
+- set(WEBP_BUILD_ANIM_UTILS OFF CACHE BOOL "Build animation utilities.")
+- set(WEBP_BUILD_CWEBP OFF CACHE BOOL "Build the cwebp command line tool.")
+- set(WEBP_BUILD_DWEBP OFF CACHE BOOL "Build the dwebp command line tool.")
+- set(WEBP_BUILD_GIF2WEBP OFF CACHE BOOL "Build the gif2webp conversion tool.")
+- set(WEBP_BUILD_IMG2WEBP OFF CACHE BOOL "Build the img2webp animation tool.")
+- set(WEBP_BUILD_VWEBP OFF CACHE BOOL "Build the vwebp viewer tool.")
+- set(WEBP_BUILD_WEBPINFO OFF CACHE BOOL "Build the webpinfo command line tool.")
+- set(WEBP_BUILD_WEBPMUX OFF CACHE BOOL "Build the webpmux command line tool.")
+-
+- add_subdirectory(libwebp)
+-
+- if(NOT USE_SHARED_LIBPNG)
+- add_dependencies(webp ${PNG_LIBRARY})
+- add_dependencies(webpdemux ${PNG_LIBRARY})
+- add_dependencies(libwebpmux ${PNG_LIBRARY})
++ if(NOT USE_SHARED_WEBP)
++ set(WEBP_BUILD_EXTRAS OFF CACHE BOOL "Build extras.")
++ set(WEBP_BUILD_ANIM_UTILS OFF CACHE BOOL "Build animation utilities.")
++ set(WEBP_BUILD_CWEBP OFF CACHE BOOL "Build the cwebp command line tool.")
++ set(WEBP_BUILD_DWEBP OFF CACHE BOOL "Build the dwebp command line tool.")
++ set(WEBP_BUILD_GIF2WEBP OFF CACHE BOOL "Build the gif2webp conversion tool.")
++ set(WEBP_BUILD_IMG2WEBP OFF CACHE BOOL "Build the img2webp animation tool.")
++ set(WEBP_BUILD_VWEBP OFF CACHE BOOL "Build the vwebp viewer tool.")
++ set(WEBP_BUILD_WEBPINFO OFF CACHE BOOL "Build the webpinfo command line tool.")
++ set(WEBP_BUILD_WEBPMUX OFF CACHE BOOL "Build the webpmux command line tool.")
++
++ add_subdirectory(libwebp)
++
++ if(NOT USE_SHARED_LIBPNG)
++ add_dependencies(webp ${PNG_LIBRARY})
++ add_dependencies(webpdemux ${PNG_LIBRARY})
++ add_dependencies(libwebpmux ${PNG_LIBRARY})
++ endif()
+ endif()
+ endif()
+
+--
+2.35.1
+
diff --git a/dev-games/aseprite/files/skia-m102_remove_angle2.patch b/dev-games/aseprite/files/skia-m102_remove_angle2.patch
new file mode 100644
index 000000000000..71b9bd6f3326
--- /dev/null
+++ b/dev-games/aseprite/files/skia-m102_remove_angle2.patch
@@ -0,0 +1,15 @@
+--- a/skia/third_party/zlib/BUILD.gn 2022-07-10 00:39:12.507321714 +0300
++++ b/skia/third_party/zlib/BUILD.gn 2022-07-10 00:40:49.175261689 +0300
+@@ -197,12 +197,3 @@
+ config("zlib_config") {
+ }
+
+-third_party("compression_utils_portable") {
+- visibility = [ "//third_party/externals/angle2:*" ]
+- public_include_dirs = [ "../externals/zlib/google" ]
+- sources = [
+- "../externals/zlib/google/compression_utils_portable.cc",
+- "../externals/zlib/google/compression_utils_portable.h",
+- ]
+- public_deps = [ ":zlib" ] # either system or from source
+-}