commit: d4a8b52421aba358faa238cc94fded0c1bcff400 Author: Azamat H. Hackimov <azamat.hackimov <AT> gmail <DOT> com> AuthorDate: Sat Jan 10 17:20:22 2026 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Thu Jan 15 18:56:49 2026 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d4a8b524
dev-games/aseprite: add 1.3.16.1 Closes: https://bugs.gentoo.org/947849 Closes: https://bugs.gentoo.org/968776 Signed-off-by: Azamat H. Hackimov <azamat.hackimov <AT> gmail.com> Part-of: https://github.com/gentoo/gentoo/pull/45322 Closes: https://github.com/gentoo/gentoo/pull/45322 Signed-off-by: Sam James <sam <AT> gentoo.org> dev-games/aseprite/Manifest | 3 + dev-games/aseprite/aseprite-1.3.16.1.ebuild | 250 +++++++++++++++++++++ .../files/aseprite-1.3.16.1_laf_fixes.patch | 35 +++ .../files/aseprite-1.3.16.1_shared_fmt.patch | 43 ++++ .../files/aseprite-1.3.16.1_shared_icu.patch | 29 +++ .../files/aseprite-1.3.16.1_shared_json11.patch | 45 ++++ .../aseprite-1.3.16.1_shared_libarchive.patch | 65 ++++++ .../aseprite-1.3.16.1_shared_libjpeg-turbo.patch | 30 +++ .../files/aseprite-1.3.16.1_shared_tinyxml2.patch | 18 ++ .../files/aseprite-1.3.16.1_shared_webp.patch | 71 ++++++ 10 files changed, 589 insertions(+) diff --git a/dev-games/aseprite/Manifest b/dev-games/aseprite/Manifest index 865c441504e3..3c4812de4463 100644 --- a/dev-games/aseprite/Manifest +++ b/dev-games/aseprite/Manifest @@ -1,3 +1,6 @@ DIST Aseprite-v1.3.13-Source.zip 73753124 BLAKE2B 08e4c48fd1b443ca32685323ac15ba60cf14c248011006b73d0de77c846ccbda2e69e9d6fb0866106b721142b0f4e815e572508f3edd86a4008c8643f8611cad SHA512 50b72593afe9bd136e283ed99ac37e7482d300da32e891ac4aefdf077f9f49dca1a1c3b57850d22ba72ed3d1ddb95306ceac209ead598aa77ba113015fd956f4 +DIST Aseprite-v1.3.16.1-Source.zip 80095985 BLAKE2B 09918ce72b33ec6182c415b9745be2c3c4107d7a04ee75b243bb248845cb91097a40e6474cbb7665d42b283611cd8cd7282c90452d63ceb1d6845e032689063f SHA512 bb677e71faca8b21d209bc566da2156235f6c77fdf0e408bdf2004d4b4c8300aac40a286e808f1b1a8cfb117e160ed08fcaba2eacb78265bb33abf4d07dd891f DIST Aseprite-v1.3.5-Source.zip 64189695 BLAKE2B f796f688f0ba565ae32fde2e8d84e39b610f451054440ced078ce1fc847a9208460b45aa6efa059a56c9e0603b4fd156cc476a2c40715ec2c37181e39c06a401 SHA512 885386e84c55b84cc85ffbf16f7269ac1640458abe973c3aa2e3eabd807ea3e1e06ee6e6dfaffff9dd7b09d3b37bd9ac41821152838cd80742edd4d53302c0e3 +DIST Skia-Linux-Release-x64-m124-08a5439a6b.zip 35293958 BLAKE2B cff433ad435fef9e4d445579ff97f566ff53a997e00104a546eed7501a9ed60cdcbe7e3a9ed8d01ff1eafacfd0c878f32c795ee49befc5df3b4c188b3a48a416 SHA512 69f11a1db7bb214679b87537097b26514f5c0a534a7fd7e4f1165f9318d8f056311cce938f9b431a64a088560f480cdddf6cd9afc4f28ebae5c384755fa36f4b DIST skia-m102-3338e90707323d2cd3a150276acb9f39933deee2.gh.tar.gz 53944562 BLAKE2B 9da3e8386cd7a18a6ee9362743bee4146c41038af8868a6f5e8a2dce468e4dc4669b488861d117da8d1bd8461b2ad47bfc300774a33a84153bca345d63a929a7 SHA512 9ae0032ee3861ce4958af6eb7047273d28b1faa3823576ef568e3c7faed7f49a9976540a72c3fa38234a4ae6319ac381324eff807938f9763781fd33ad67d075 +DIST skia-m124-08a5439a6b-aseprite.tar.gz 65486346 BLAKE2B 0e13f001707db70b8b949f3d8766cc05f37ea10942fd3e6c02b47190d9296564451c027cde2b86e59ff9338c19f1423dc042da210e54db0595174529baf5c43c SHA512 d4257c872a98691df12cd11786b3bd3a0d4c94dbe063d7100a7ffe4397f8ff93cbcfa924a7fcc0dd95dfa52969745b8bdb2bde55b1cfbfb8b06e5ce59f3eed5d diff --git a/dev-games/aseprite/aseprite-1.3.16.1.ebuild b/dev-games/aseprite/aseprite-1.3.16.1.ebuild new file mode 100644 index 000000000000..ba672bc282cc --- /dev/null +++ b/dev-games/aseprite/aseprite-1.3.16.1.ebuild @@ -0,0 +1,250 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) + +inherit cmake desktop flag-o-matic python-any-r1 toolchain-funcs xdg-utils + +SKIA_VER="m124-08a5439a6b" + +DESCRIPTION="Animated sprite editor & pixel art tool" +HOMEPAGE="https://www.aseprite.org" +# Use forked skia sources with local shanges +# Precompiled skia required only for icudtl.dat +SRC_URI="https://github.com/aseprite/aseprite/releases/download/v$(ver_cut 1-3 ${PV})/Aseprite-v${PV}-Source.zip + https://github.com/aseprite/skia/archive/refs/tags/${SKIA_VER}.tar.gz -> + skia-${SKIA_VER}-aseprite.tar.gz + https://github.com/aseprite/skia/releases/download/${SKIA_VER}/Skia-Linux-Release-x64.zip -> + Skia-Linux-Release-x64-${SKIA_VER}.zip +" + +# See https://github.com/aseprite/aseprite#license +LICENSE="Aseprite-EULA BSD MIT" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +IUSE="test webp" + +RESTRICT="bindist mirror !test? ( test )" + +COMMON_DEPEND=" + app-arch/libarchive:= + app-text/cmark:= + dev-libs/icu:= + dev-libs/libfmt:= + dev-libs/tinyxml2:= + media-libs/fontconfig + media-libs/freetype + media-libs/giflib:= + media-libs/harfbuzz:=[truetype] + media-libs/libjpeg-turbo:= + media-libs/libpng:= + net-misc/curl + virtual/zlib:= + virtual/opengl + x11-libs/libX11 + x11-libs/libXcursor + x11-libs/libXi + x11-libs/libxcb:= + webp? ( media-libs/libwebp:= ) +" +RDEPEND=" + ${COMMON_DEPEND} + gnome-extra/zenity +" +DEPEND=" + ${COMMON_DEPEND} + x11-base/xorg-proto" +BDEPEND=" + ${PYTHON_DEPS} + test? ( dev-cpp/gtest ) + app-arch/unzip + dev-build/gn + virtual/pkgconfig +" + +DOCS=( + docs/ase-file-specs.md + docs/gpl-palette-extension.md + README.md +) + +PATCHES=( + "${FILESDIR}/aseprite-1.3.16.1_shared_libarchive.patch" + "${FILESDIR}/aseprite-1.3.16.1_shared_json11.patch" + "${FILESDIR}/aseprite-1.3.16.1_shared_webp.patch" + "${FILESDIR}/aseprite-1.3.16.1_laf_fixes.patch" + "${FILESDIR}/aseprite-1.3.16.1_shared_fmt.patch" + "${FILESDIR}/aseprite-1.3.16.1_shared_tinyxml2.patch" + "${FILESDIR}/aseprite-1.3.16.1_shared_libjpeg-turbo.patch" + "${FILESDIR}/aseprite-1.3.16.1_shared_icu.patch" +) + +src_unpack() { + mkdir "${S}" || die + pushd "${S}" > /dev/null || die + default + popd > /dev/null || die +} + +src_prepare() { + cmake_src_prepare + # Skia: remove custom optimizations + sed -i -e 's:"\/\/gn\/skia\:optimize",::g' \ + "skia-${SKIA_VER}/gn/BUILDCONFIG.gn" || die + # Aseprite: don't install targets from third_party projects + sed -i -e \ + 's:add_subdirectory(tga):add_subdirectory(tga EXCLUDE_FROM_ALL):g' \ + src/CMakeLists.txt || die + sed -i \ + -e 's:add_subdirectory(json11):add_subdirectory(json11 EXCLUDE_FROM_ALL):g' \ + -e 's:add_subdirectory(TinyEXIF):add_subdirectory(TinyEXIF EXCLUDE_FROM_ALL):g' \ + third_party/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 + # Move icudtl.dat to expected location + mkdir -p "skia-${SKIA_VER}/third_party/externals/icu/flutter" || die + cp third_party/externals/icu/flutter/icudtl.dat \ + "skia-${SKIA_VER}/third_party/externals/icu/flutter" || die +} + +src_configure() { + # -Werror=strict-aliasing, -Werror=odr, -Werror=lto-type-mismatch + # https://bugs.gentoo.org/924692 + # https://github.com/aseprite/aseprite/issues/4413 + # + # There is a bundled skia that fails with ODR errors. When excluding just + # skia from testing, aseprite itself failed with strict-aliasing (before + # upstream PR#84), and when that is disabled, fails again with ODR and + # lto-type-mismatch issues. + # + # There are a lot of issues, so don't trust any fixes without thorough + # testing. + filter-lto + + einfo "Skia configuration" + pushd "skia-${SKIA_VER}" > /dev/null || 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_wuffs=false + + skia_enable_pdf=false + skia_enable_svg=false + skia_enable_skunicode=true + skia_use_expat=false + skia_use_ffmpeg=false + skia_use_fontconfig=true + skia_use_freetype=true + skia_use_gl=true + skia_use_harfbuzz=true + skia_use_icu=true + 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 + popd > /dev/null || die + + einfo "Aseprite configuration" + local mycmakeargs=( + -DENABLE_CCACHE=OFF + -DENABLE_DESKTOP_INTEGRATION=ON + -DENABLE_I18N_STRINGS=OFF + -DENABLE_SCRIPTING=OFF + -DENABLE_STEAM=OFF + -DENABLE_TESTS="$(usex test)" + -DENABLE_QT_THUMBNAILER=OFF + -DENABLE_UPDATER=OFF + -DENABLE_WEBP="$(usex webp)" + -DLAF_WITH_EXAMPLES=OFF + -DLAF_WITH_TESTS="$(usex test)" + -DFULLSCREEN_PLATFORM=ON + -DSKIA_DIR="${S}/skia-${SKIA_VER}/" + -DSKIA_LIBRARY_DIR="${S}/skia-${SKIA_VER}/out/Static/" + -DSKIA_LIBRARY="${S}/skia-${SKIA_VER}/out/Static/libskia.a" + -DSKSHAPER_LIBRARY="${S}/skia-${SKIA_VER}/out/Static/libskshaper.a" + -DSKUNICODE_LIBRARY="${S}/skia-${SKIA_VER}/out/Static/libskunicode.a" + -DUSE_SHARED_CMARK=ON + -DUSE_SHARED_CURL=ON + -DUSE_SHARED_FMT=ON + -DUSE_SHARED_FREETYPE=ON + -DUSE_SHARED_GIFLIB=ON + -DUSE_SHARED_HARFBUZZ=ON + -DUSE_SHARED_JSON11=OFF # Custom methods added to bundled version + -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" + pushd "skia-${SKIA_VER}" > /dev/null || die + eninja -C out/Static + popd > /dev/null || die + + einfo "Aseprite compilation" + 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.3.16.1_laf_fixes.patch b/dev-games/aseprite/files/aseprite-1.3.16.1_laf_fixes.patch new file mode 100644 index 000000000000..43dea028b8c2 --- /dev/null +++ b/dev-games/aseprite/files/aseprite-1.3.16.1_laf_fixes.patch @@ -0,0 +1,35 @@ +From https://github.com/winterheart/aseprite/tree/v1.3.16.1-unbundle +--- a/laf/cmake/FindSkia.cmake ++++ b/laf/cmake/FindSkia.cmake +@@ -172,18 +172,13 @@ if(NOT PNG_LIBRARIES) + set(PNG_INCLUDE_DIRS "${SKIA_DIR}/third_party/externals/libpng") + 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} ++ ${HARFBUZZ_LIBRARIES} ++ ${PNG_LIBRARIES} ++ ${WEBP_LIBRARIES} + CACHE INTERNAL "Skia libraries") + + add_library(skia INTERFACE) +@@ -191,6 +186,8 @@ target_include_directories(skia INTERFACE + ${SKIA_DIR} + ${FREETYPE_INCLUDE_DIRS} + ${HARFBUZZ_INCLUDE_DIRS} ++ ${PNG_INCLUDE_DIRS} ++ ${WEBP_INCLUDE_DIRS} + ${PNG_INCLUDE_DIRS}) + target_link_libraries(skia INTERFACE ${SKIA_LIBRARIES}) + target_compile_definitions(skia INTERFACE diff --git a/dev-games/aseprite/files/aseprite-1.3.16.1_shared_fmt.patch b/dev-games/aseprite/files/aseprite-1.3.16.1_shared_fmt.patch new file mode 100644 index 000000000000..f999d0b54a58 --- /dev/null +++ b/dev-games/aseprite/files/aseprite-1.3.16.1_shared_fmt.patch @@ -0,0 +1,43 @@ +From https://github.com/winterheart/aseprite/tree/v1.3.16.1-unbundle +From: "Azamat H. Hackimov" <[email protected]> +Date: Tue, 2 Jan 2024 20:00:12 +0300 +Subject: [PATCH 4/7] Use shared fmt library + +Added option -DUSE_SHARED_FMT +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -66,6 +66,7 @@ enable_testing() + + 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_FMT "Use your installed copy of libfmt" off) + option(USE_SHARED_GIFLIB "Use your installed copy of giflib" off) + option(USE_SHARED_JSON11 "Use your installed copy of json11" off) + option(USE_SHARED_ZLIB "Use your installed copy of zlib" off) +@@ -226,6 +227,10 @@ if(NOT USE_SHARED_CURL) + set(CURL_STATICLIB ON BOOL) + endif() + ++if(USE_SHARED_FMT) ++ find_package(fmt REQUIRED) ++endif() ++ + # zlib + if(USE_SHARED_ZLIB) + find_package(ZLIB REQUIRED) +--- a/third_party/CMakeLists.txt ++++ b/third_party/CMakeLists.txt +@@ -115,7 +115,9 @@ if(NOT USE_SHARED_HARFBUZZ AND NOT LAF_BACKEND STREQUAL "skia") + endif() + + add_subdirectory(simpleini) +-add_subdirectory(fmt) ++if(NOT USE_SHARED_FMT) ++ add_subdirectory(fmt) ++endif() + + # Add cmark without tests + if(NOT USE_SHARED_CMARK) +-- +2.51.2 + diff --git a/dev-games/aseprite/files/aseprite-1.3.16.1_shared_icu.patch b/dev-games/aseprite/files/aseprite-1.3.16.1_shared_icu.patch new file mode 100644 index 000000000000..a41aecefd3be --- /dev/null +++ b/dev-games/aseprite/files/aseprite-1.3.16.1_shared_icu.patch @@ -0,0 +1,29 @@ +From https://github.com/winterheart/aseprite/tree/v1.3.16.1-unbundle +From: "Azamat H. Hackimov" <[email protected]> +Date: Sat, 10 Jan 2026 04:58:38 +0300 +Subject: [PATCH 7/7] Use shared ICU library (required for skia) + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -370,6 +370,8 @@ if(REQUIRE_CURL) + include_directories(${CURL_INCLUDE_DIRS}) + endif() + ++find_package(ICU COMPONENTS uc) ++ + # simpleini + include_directories(${SIMPLEINI_DIR}) + +--- a/src/app/CMakeLists.txt ++++ b/src/app/CMakeLists.txt +@@ -788,6 +788,7 @@ target_link_libraries(app-lib + ${ZLIB_LIBRARIES} + libjpeg-turbo::jpeg + ${LibArchive_LIBRARIES} ++ ICU::uc + json11 + fmt + tinyexpr +-- +2.51.2 + diff --git a/dev-games/aseprite/files/aseprite-1.3.16.1_shared_json11.patch b/dev-games/aseprite/files/aseprite-1.3.16.1_shared_json11.patch new file mode 100644 index 000000000000..54d15f0a44c0 --- /dev/null +++ b/dev-games/aseprite/files/aseprite-1.3.16.1_shared_json11.patch @@ -0,0 +1,45 @@ +From https://github.com/winterheart/aseprite/tree/v1.3.16.1-unbundle +From: "Azamat H. Hackimov" <[email protected]> +Date: Sun, 10 Jul 2022 19:53:06 +0300 +Subject: [PATCH 2/7] Use shared json11 library + +Added option -DUSE_SHARED_JSON11 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -67,6 +67,7 @@ enable_testing() + 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_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) +@@ -335,6 +336,12 @@ include_directories(${GIF_INCLUDE_DIRS}) + # libjpeg-turbo + find_package(JpegTurbo) + ++if(USE_SHARED_JSON11) ++ find_package(PkgConfig QUIET) ++ pkg_check_modules(JSON11 json11) ++ include_directories(${JSON11_INCLUDE_DIRS}) ++endif() ++ + # cmark + if(USE_SHARED_CMARK) + find_library(CMARK_LIBRARIES NAMES cmark) +--- a/third_party/CMakeLists.txt ++++ b/third_party/CMakeLists.txt +@@ -125,7 +125,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.51.2 + diff --git a/dev-games/aseprite/files/aseprite-1.3.16.1_shared_libarchive.patch b/dev-games/aseprite/files/aseprite-1.3.16.1_shared_libarchive.patch new file mode 100644 index 000000000000..5aef39ddb5d0 --- /dev/null +++ b/dev-games/aseprite/files/aseprite-1.3.16.1_shared_libarchive.patch @@ -0,0 +1,65 @@ +From https://github.com/winterheart/aseprite/tree/v1.3.16.1-unbundle +From: "Azamat H. Hackimov" <[email protected]> +Date: Fri, 9 Oct 2020 02:18:36 +0300 +Subject: [PATCH 1/7] Make LibArchive as shared library dependency + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -68,6 +68,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_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_TINYEXIF "Use your installed copy of TinyEXIF" off) + option(USE_SHARED_TINYXML "Use your installed copy of tinyxml" off) +@@ -237,6 +238,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) +--- a/src/app/CMakeLists.txt ++++ b/src/app/CMakeLists.txt +@@ -787,8 +787,8 @@ target_link_libraries(app-lib + ${PNG_LIBRARIES} + ${ZLIB_LIBRARIES} + libjpeg-turbo ++ ${LibArchive_LIBRARIES} + json11 +- archive_static + fmt + tinyexpr + qoi) +--- a/third_party/CMakeLists.txt ++++ b/third_party/CMakeLists.txt +@@ -128,6 +128,7 @@ endif() + add_subdirectory(json11) + + # libarchive ++if(NOT USE_SHARED_LIBARCHIVE) + set(HAVE_WCSCPY 1) + set(HAVE_WCSLEN 1) + +@@ -151,6 +152,7 @@ set(WINDOWS_VERSION "WS08" CACHE STRING "Set Windows Vista as the target version + add_subdirectory(libarchive) + target_include_directories(archive_static INTERFACE + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/libarchive/libarchive>) ++endif() + + # benchmark + if(ENABLE_BENCHMARKS) +-- +2.51.2 + diff --git a/dev-games/aseprite/files/aseprite-1.3.16.1_shared_libjpeg-turbo.patch b/dev-games/aseprite/files/aseprite-1.3.16.1_shared_libjpeg-turbo.patch new file mode 100644 index 000000000000..8e8a05eefb5c --- /dev/null +++ b/dev-games/aseprite/files/aseprite-1.3.16.1_shared_libjpeg-turbo.patch @@ -0,0 +1,30 @@ +From https://github.com/winterheart/aseprite/tree/v1.3.16.1-unbundle +From: "Azamat H. Hackimov" <[email protected]> +Date: Fri, 9 Jan 2026 02:24:47 +0300 +Subject: [PATCH 6/7] Use shared libjpeg-turbo library + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -341,7 +341,7 @@ endif() + include_directories(${GIF_INCLUDE_DIRS}) + + # libjpeg-turbo +-find_package(JpegTurbo) ++find_package(libjpeg-turbo) + + if(USE_SHARED_JSON11) + find_package(PkgConfig QUIET) +--- a/src/app/CMakeLists.txt ++++ b/src/app/CMakeLists.txt +@@ -786,7 +786,7 @@ target_link_libraries(app-lib + ${GIF_LIBRARIES} + ${PNG_LIBRARIES} + ${ZLIB_LIBRARIES} +- libjpeg-turbo ++ libjpeg-turbo::jpeg + ${LibArchive_LIBRARIES} + json11 + fmt +-- +2.51.2 + diff --git a/dev-games/aseprite/files/aseprite-1.3.16.1_shared_tinyxml2.patch b/dev-games/aseprite/files/aseprite-1.3.16.1_shared_tinyxml2.patch new file mode 100644 index 000000000000..983f62cd8676 --- /dev/null +++ b/dev-games/aseprite/files/aseprite-1.3.16.1_shared_tinyxml2.patch @@ -0,0 +1,18 @@ +From https://github.com/winterheart/aseprite/tree/v1.3.16.1-unbundle +From: "Azamat H. Hackimov" <[email protected]> +Date: Sat, 29 Mar 2025 02:36:18 +0300 +Subject: [PATCH 5/7] Fix linking with third_party library + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -282,6 +282,7 @@ add_definitions(-DPNG_NO_MMX_CODE) # Do not use MMX optimizations in PNG code + if(USE_SHARED_TINYXML) + find_library(TINYXML_LIBRARY NAMES tinyxml2) + find_path(TINYXML_INCLUDE_DIR NAMES tinyxml2.h) ++ find_package(tinyxml2 REQUIRED) + else() + set(TINYXML_LIBRARY tinyxml2) + set(TINYXML_INCLUDE_DIR ${TINYXML_DIR}) +-- +2.51.2 + diff --git a/dev-games/aseprite/files/aseprite-1.3.16.1_shared_webp.patch b/dev-games/aseprite/files/aseprite-1.3.16.1_shared_webp.patch new file mode 100644 index 000000000000..a06728246312 --- /dev/null +++ b/dev-games/aseprite/files/aseprite-1.3.16.1_shared_webp.patch @@ -0,0 +1,71 @@ +From https://github.com/winterheart/aseprite/tree/v1.3.16.1-unbundle +From: "Azamat H. Hackimov" <[email protected]> +Date: Sun, 10 Jul 2022 20:14:00 +0300 +Subject: [PATCH 3/7] Use shared webp library + +Added option -DUSE_SHARED_WEBP +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -74,6 +74,7 @@ option(USE_SHARED_LIBPNG "Use your installed copy of libpng" off) + option(USE_SHARED_TINYEXIF "Use your installed copy of TinyEXIF" 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 "Use 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) +@@ -383,21 +384,27 @@ add_subdirectory(laf) + + # libwebp + if(ENABLE_WEBP) +- # Use libwebp from Skia +- if(LAF_BACKEND STREQUAL "skia") +- find_library(WEBP_LIBRARIES webp +- NAMES libwebp # required for Windows +- PATHS "${SKIA_LIBRARY_DIR}" NO_DEFAULT_PATH) +- set(WEBP_INCLUDE_DIR "${SKIA_DIR}/third_party/externals/libwebp/src") +- if(WEBP_LIBRARIES) +- set(WEBP_FOUND ON) ++ if(USE_SHARED_WEBP) ++ find_package(PkgConfig QUIET) ++ pkg_check_modules(WEBP libwebp libwebpdemux libwebpmux) ++ include_directories(${WEBP_INCLUDE_DIR}) ++ else() ++ # Use libwebp from Skia ++ if(LAF_BACKEND STREQUAL "skia") ++ find_library(WEBP_LIBRARIES webp ++ NAMES libwebp # required for Windows ++ PATHS "${SKIA_LIBRARY_DIR}" NO_DEFAULT_PATH) ++ set(WEBP_INCLUDE_DIR "${SKIA_DIR}/third_party/externals/libwebp/src") ++ if(WEBP_LIBRARIES) ++ set(WEBP_FOUND ON) ++ else() ++ set(WEBP_FOUND OFF) ++ endif() + else() +- set(WEBP_FOUND OFF) ++ set(WEBP_FOUND ON) ++ set(WEBP_LIBRARIES webp webpdemux libwebpmux) ++ set(WEBP_INCLUDE_DIR ${LIBWEBP_DIR}/src) + endif() +- else() +- set(WEBP_FOUND ON) +- set(WEBP_LIBRARIES webp webpdemux libwebpmux) +- set(WEBP_INCLUDE_DIR ${LIBWEBP_DIR}/src) + endif() + endif() + +--- a/third_party/CMakeLists.txt ++++ b/third_party/CMakeLists.txt +@@ -31,7 +31,7 @@ if(NOT USE_SHARED_GIFLIB) + add_subdirectory(giflib) + endif() + +-if(ENABLE_WEBP AND NOT LAF_BACKEND STREQUAL "skia") ++if(ENABLE_WEBP AND NOT USE_SHARED_WEBP AND NOT LAF_BACKEND STREQUAL "skia") + 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.") +-- +2.51.2 +
