diff options
Diffstat (limited to 'dev-games/aseprite')
21 files changed, 1505 insertions, 354 deletions
diff --git a/dev-games/aseprite/Manifest b/dev-games/aseprite/Manifest index ef7855809398..731ec7f14de6 100644 --- a/dev-games/aseprite/Manifest +++ b/dev-games/aseprite/Manifest @@ -1,3 +1,3 @@ -DIST Aseprite-v1.1.6-Source.zip 11801981 BLAKE2B f20186a1669d7f9ab1453a2104a54228c22e2ef1703bba200f44c965b3fb3d9310c1ddd343db9c27ddca3564e4245352476c5228e171f1c0e74c553e5a59d419 SHA512 d87bcc5ece64cbc772ea5d4dc1edf29943d9038221905c0263511852afbb4e9119ce82468502a78c286729bb91389d08e3a8b7f358e4f6f8fe88507e7e69c9ac -DIST Aseprite-v1.1.7-Source.zip 11801711 BLAKE2B 282492c29ece6b5b5bed029c7f27aa0a287bcb475f60066b6c34f54607b2714f35540e4d6ef4737818712776c2202162ce47c5713ba26b756d9e1c1d8af9c904 SHA512 9a92853042c7de567a7eb33d10ddd38c6d6bd53acfe4b93dc96e11408a7bda39ef7503c159934c483f0455700933c541dfdc0cb4c505d3385778e40686e474e6 -DIST Aseprite-v1.1.9-Source.zip 11746265 BLAKE2B fa16be059a7bb3b83705c56e7e93cbbb71676617a8d0798f0e481b09199ae069b85826615f8609acabb10a4e9a9da0857f2f99b03c2b913f26eee6d4dfdc0f0a SHA512 44c5878c67e69d2510c862e8f6869d727aa47b3d23d41d4e7318eca54c6d72fc5f89e72c70c160ce6da78fa091e11eedefa74e0273dc4cea59b2fe16c8851d9e +DIST Aseprite-v1.2.40-Source.zip 61802371 BLAKE2B f6f586a3ca222de208e6639e3fc94a63f98e487e1975dccd2974ffa71f937384177639e3799fb81f064afaf1c4a048394fab32a30bcda353320ac55c38b17636 SHA512 0a548428a3362f49cb6cecaa061de8371ad3f0bc22d00bc957e21f22316772e854d7ad36ebb7e5b69274eea376bb62fa39abfd4bc02250524c3707f81a628b1f +DIST Aseprite-v1.3.5-Source.zip 64189695 BLAKE2B f796f688f0ba565ae32fde2e8d84e39b610f451054440ced078ce1fc847a9208460b45aa6efa059a56c9e0603b4fd156cc476a2c40715ec2c37181e39c06a401 SHA512 885386e84c55b84cc85ffbf16f7269ac1640458abe973c3aa2e3eabd807ea3e1e06ee6e6dfaffff9dd7b09d3b37bd9ac41821152838cd80742edd4d53302c0e3 +DIST skia-m102-3338e90707323d2cd3a150276acb9f39933deee2.gh.tar.gz 53944562 BLAKE2B 9da3e8386cd7a18a6ee9362743bee4146c41038af8868a6f5e8a2dce468e4dc4669b488861d117da8d1bd8461b2ad47bfc300774a33a84153bca345d63a929a7 SHA512 9ae0032ee3861ce4958af6eb7047273d28b1faa3823576ef568e3c7faed7f49a9976540a72c3fa38234a4ae6319ac381324eff807938f9763781fd33ad67d075 diff --git a/dev-games/aseprite/aseprite-1.1.6.ebuild b/dev-games/aseprite/aseprite-1.1.6.ebuild deleted file mode 100644 index e95b1dcdefed..000000000000 --- a/dev-games/aseprite/aseprite-1.1.6.ebuild +++ /dev/null @@ -1,92 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit cmake-utils eutils flag-o-matic - -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" - -# See https://github.com/aseprite/aseprite#credits -# Some bundled third-party packages built-in: -# gtest duktape modp_b64 simpleini -LICENSE="BSD GPL-2 MIT" -SLOT="0" -KEYWORDS="amd64 x86" - -IUSE="debug kde gtk3 test webp" -RESTRICT="!test? ( test )" - -RDEPEND="dev-libs/tinyxml - media-libs/allegro:0[X,png] - media-libs/freetype - media-libs/giflib:= - webp? ( media-libs/libwebp ) - media-libs/libpng:0= - net-misc/curl - sys-libs/zlib - virtual/jpeg:0 - x11-libs/libX11 - x11-libs/pixman - gtk3? ( dev-cpp/gtkmm:3.0 ) - kde? ( - dev-qt/qtcore:5 - kde-frameworks/kio:5 )" -DEPEND="${RDEPEND} - app-arch/unzip - gtk3? ( virtual/pkgconfig ) - webp? ( virtual/pkgconfig )" - -DOCS=( docs/files/ase.txt - docs/files/fli.txt - docs/files/msk.txt - docs/files/pic.txt - docs/files/picpro.txt - README.md ) - -S="${WORKDIR}" - -src_prepare() { - cmake-utils_src_prepare - - # Fix to make flag-o-matic work. - if use debug ; then - sed -i '/-DNDEBUG/d' CMakeLists.txt || die - fi - # Fix shebang in thumbnailer - sed -i -e 's:#!/usr/bin/sh:#!/bin/sh:' desktop/aseprite-thumbnailer || die -} - -src_configure() { - use debug && append-cppflags -DDEBUGMODE -D_DEBUG - - local mycmakeargs=( - -DENABLE_UPDATER=OFF - -DFULLSCREEN_PLATFORM=ON - -DUSE_SHARED_ALLEGRO4=ON - -DUSE_SHARED_CURL=ON - -DUSE_SHARED_FREETYPE=ON - -DUSE_SHARED_GIFLIB=ON - -DUSE_SHARED_JPEGLIB=ON - -DUSE_SHARED_LIBLOADPNG=ON - -DUSE_SHARED_LIBPNG=ON - -DUSE_SHARED_PIXMAN=ON - -DUSE_SHARED_TINYXML=ON - -DUSE_SHARED_ZLIB=ON - -DUSE_SHARED_LIBWEBP=ON - -DWITH_DESKTOP_INTEGRATION=ON - -DWITH_GTK_FILE_DIALOG_SUPPORT="$(usex gtk3)" - -DWITH_QT_THUMBNAILER="$(usex kde)" - -DWITH_WEBP_SUPPORT="$(usex webp)" - -DENABLE_TESTS="$(usex test)" - -DKDE_INSTALL_USE_QT_SYS_PATHS=ON - ) - cmake-utils_src_configure -} - -src_install() { - newicon "${S}/data/icons/ase64.png" "${PN}.png" - cmake-utils_src_install -} diff --git a/dev-games/aseprite/aseprite-1.1.7-r1.ebuild b/dev-games/aseprite/aseprite-1.1.7-r1.ebuild deleted file mode 100644 index c272fa35e70b..000000000000 --- a/dev-games/aseprite/aseprite-1.1.7-r1.ebuild +++ /dev/null @@ -1,111 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit cmake desktop flag-o-matic xdg-utils - -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" - -# See https://github.com/aseprite/aseprite#credits -# Some bundled third-party packages built-in: -# gtest duktape modp_b64 simpleini -LICENSE="BSD GPL-2 MIT" -SLOT="0" -KEYWORDS="~amd64 ~x86" - -IUSE="bundled-libs debug kde gtk3 test webp" -RESTRICT="!test? ( test )" - -RDEPEND=" - !bundled-libs? ( media-libs/allegro:0[X,png] ) - gtk3? ( dev-cpp/gtkmm:3.0 ) - kde? ( - dev-qt/qtcore:5 - kde-frameworks/kio:5 - ) - webp? ( media-libs/libwebp ) - dev-libs/tinyxml - media-libs/freetype - media-libs/giflib:= - media-libs/libpng:0= - net-misc/curl - sys-libs/zlib - virtual/jpeg:0 - x11-libs/libX11 - x11-libs/pixman" -BDEPEND=" - app-arch/unzip - gtk3? ( virtual/pkgconfig ) - webp? ( virtual/pkgconfig )" - -DOCS=( docs/files/ase.txt - docs/files/fli.txt - docs/files/msk.txt - docs/files/pic.txt - docs/files/picpro.txt - README.md ) - -S="${WORKDIR}" - -PATCHES=( "${FILESDIR}/${P}_type-punned_pointer.patch" ) - -src_prepare() { - cmake_src_prepare - - # Fix to make flag-o-matic work. - if use debug ; then - sed -i '/-DNDEBUG/d' CMakeLists.txt || die - fi - # Fix shebang in thumbnailer - sed -i -e 's:#!/usr/bin/sh:#!/bin/sh:' desktop/aseprite-thumbnailer || die -} - -src_configure() { - use debug && append-cppflags -DDEBUGMODE -D_DEBUG - - local mycmakeargs=( - -DENABLE_UPDATER=OFF - -DFULLSCREEN_PLATFORM=ON - -DUSE_SHARED_ALLEGRO4=$(usex !bundled-libs) - -DUSE_SHARED_CURL=ON - -DUSE_SHARED_FREETYPE=ON - -DUSE_SHARED_GIFLIB=ON - -DUSE_SHARED_JPEGLIB=ON - -DUSE_SHARED_LIBLOADPNG=ON - -DUSE_SHARED_LIBPNG=ON - -DUSE_SHARED_PIXMAN=ON - -DUSE_SHARED_TINYXML=ON - -DUSE_SHARED_ZLIB=ON - -DUSE_SHARED_LIBWEBP=ON - -DWITH_DESKTOP_INTEGRATION=ON - -DWITH_GTK_FILE_DIALOG_SUPPORT="$(usex gtk3)" - -DWITH_QT_THUMBNAILER="$(usex kde)" - -DWITH_WEBP_SUPPORT="$(usex webp)" - -DENABLE_TESTS="$(usex test)" - -DKDE_INSTALL_USE_QT_SYS_PATHS=ON - ) - cmake_src_configure -} - -src_install() { - newicon -s 64 "${S}/data/icons/ase64.png" "${PN}.png" - cmake_src_install -} - -pkg_postinst() { - if use !bundled-libs ; then - ewarn "Aseprite has been built with system-wide Allegro 4." - ewarn "Please note that you will not be able to resize the main window." - ewarn "For resizing support enable USE-flag bundled-libs and rebuild package." - fi - xdg_desktop_database_update - xdg_mimeinfo_database_update -} - -pkg_postrm() { - xdg_desktop_database_update - xdg_mimeinfo_database_update -} diff --git a/dev-games/aseprite/aseprite-1.1.9.ebuild b/dev-games/aseprite/aseprite-1.1.9.ebuild deleted file mode 100644 index b3ab60f8d324..000000000000 --- a/dev-games/aseprite/aseprite-1.1.9.ebuild +++ /dev/null @@ -1,113 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit cmake desktop flag-o-matic xdg-utils - -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" - -# See https://github.com/aseprite/aseprite#license -# Some bundled third-party packages built-in: -# gtest duktape modp_b64 simpleini -LICENSE="Aseprite-EULA" -SLOT="0" -KEYWORDS="~amd64 ~x86" - -IUSE="bundled-libs debug kde gtk3 test webp" -RESTRICT="bindist mirror !test? ( test )" - -RDEPEND=" - !bundled-libs? ( media-libs/allegro:0[X,png] ) - gtk3? ( dev-cpp/gtkmm:3.0 ) - kde? ( - dev-qt/qtcore:5 - kde-frameworks/kio:5 - ) - webp? ( media-libs/libwebp ) - dev-libs/tinyxml - media-libs/freetype - media-libs/giflib:= - media-libs/libpng:0= - net-misc/curl - sys-libs/zlib - virtual/jpeg:0 - x11-libs/libX11 - x11-libs/pixman" -BDEPEND=" - app-arch/unzip - gtk3? ( virtual/pkgconfig ) - webp? ( virtual/pkgconfig )" - -DOCS=( docs/files/ase.txt - docs/files/fli.txt - docs/files/msk.txt - docs/files/pic.txt - docs/files/picpro.txt - README.md ) - -S="${WORKDIR}" - -PATCHES=( "${FILESDIR}/${PN}-1.1.7_type-punned_pointer.patch" ) - -src_prepare() { - cmake_src_prepare - - # Fix to make flag-o-matic work. - if use debug ; then - sed -i '/-DNDEBUG/d' CMakeLists.txt || die - fi - # Fix shebang in thumbnailer - sed -i -e 's:#!/usr/bin/sh:#!/bin/sh:' desktop/aseprite-thumbnailer || die -} - -src_configure() { - use debug && append-cppflags -DDEBUGMODE -D_DEBUG - - local mycmakeargs=( - -DENABLE_UPDATER=OFF - -DFULLSCREEN_PLATFORM=ON - -DUSE_SHARED_ALLEGRO4=$(usex !bundled-libs) - -DUSE_SHARED_CURL=ON - -DUSE_SHARED_FREETYPE=ON - -DUSE_SHARED_GIFLIB=ON - -DUSE_SHARED_JPEGLIB=ON - -DUSE_SHARED_LIBLOADPNG=ON - -DUSE_SHARED_LIBPNG=ON - -DUSE_SHARED_PIXMAN=ON - -DUSE_SHARED_TINYXML=ON - -DUSE_SHARED_ZLIB=ON - -DUSE_SHARED_LIBWEBP=ON - -DWITH_DESKTOP_INTEGRATION=ON - -DWITH_GTK_FILE_DIALOG_SUPPORT="$(usex gtk3)" - -DWITH_QT_THUMBNAILER="$(usex kde)" - -DWITH_WEBP_SUPPORT="$(usex webp)" - -DENABLE_TESTS="$(usex test)" - -DKDE_INSTALL_USE_QT_SYS_PATHS=ON - ) - cmake_src_configure -} - -src_install() { - newicon -s 64 "${S}/data/icons/ase64.png" "${PN}.png" - cmake_src_install -} - -pkg_postinst() { - if use !bundled-libs ; then - ewarn "Aseprite has been built with system-wide Allegro 4." - ewarn "Please note that you will not be able to resize the main window." - ewarn "For resizing support enable USE-flag bundled-libs and rebuild package." - fi - 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/aseprite-1.2.40.ebuild b/dev-games/aseprite/aseprite-1.2.40.ebuild new file mode 100644 index 000000000000..2a603fddfb1f --- /dev/null +++ b/dev-games/aseprite/aseprite-1.2.40.ebuild @@ -0,0 +1,231 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) + +inherit cmake desktop flag-o-matic ninja-utils python-any-r1 toolchain-funcs xdg-utils + +SKIA_VER="m102" +# Last commit in ${SKIA_VER} feature branch +# Don't use skia.googlesource.com, it produces non-reproducible tarballs +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://github.com/google/skia/archive/${SKIA_REV}.tar.gz -> skia-${SKIA_VER}-${SKIA_REV}.gh.tar.gz" + +# See https://github.com/aseprite/aseprite#license +LICENSE="Aseprite-EULA" +SLOT="0" +KEYWORDS="amd64 x86" + +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:=[truetype] + media-libs/libjpeg-turbo:= + media-libs/libpng:= + net-misc/curl + sys-libs/zlib:= + virtual/opengl + x11-libs/libX11 + x11-libs/libXcursor + x11-libs/libXi + x11-libs/libxcb:= + kde? ( + dev-qt/qtcore:5 + dev-qt/qtgui:5 + kde-frameworks/kio:5 + ) + webp? ( media-libs/libwebp:= )" +DEPEND=" + ${RDEPEND} + 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 +) + +S="${WORKDIR}" + +PATCHES=( + "${FILESDIR}/skia-${SKIA_VER}_remove_angle2.patch" + "${FILESDIR}/${PN}-1.2.40_shared_libarchive.patch" + "${FILESDIR}/${PN}-1.2.40_shared_json11.patch" + "${FILESDIR}/${PN}-1.2.40_shared_webp.patch" + "${FILESDIR}/${PN}-1.2.35_laf_fixes.patch" + "${FILESDIR}/${PN}-1.2.40_musl_pthreads.patch" + "${FILESDIR}/${PN}-1.2.40_ixwebsocket-gcc13.patch" + "${FILESDIR}/${PN}-1.2.40_laf-gcc13.patch" +) + +src_prepare() { + # Remove extra \r on ends, #895504 + sed -i -e 's/\r$//' \ + third_party/IXWebSocket/ixwebsocket/IXWebSocketSendData.h || die + cmake_src_prepare + # Skia: remove custom optimizations + sed -i -e 's:"\/\/gn\/skia\:optimize",::g' \ + "skia-${SKIA_REV}/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() { + # -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 fails with strict-aliasing, 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. + append-flags -fno-strict-aliasing + filter-lto + + einfo "Skia configuration" + cd "${WORKDIR}/skia-${SKIA_REV}" || 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-${SKIA_REV}/" + -DSKIA_LIBRARY_DIR="${WORKDIR}/skia-${SKIA_REV}/out/Static/" + -DSKIA_LIBRARY="${WORKDIR}/skia-${SKIA_REV}/out/Static/libskia.a" + -DSKSHAPER_LIBRARY="${WORKDIR}/skia-${SKIA_REV}/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-${SKIA_REV}" || 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/aseprite-1.3.5.ebuild b/dev-games/aseprite/aseprite-1.3.5.ebuild new file mode 100644 index 000000000000..8717c09abd5e --- /dev/null +++ b/dev-games/aseprite/aseprite-1.3.5.ebuild @@ -0,0 +1,233 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) + +inherit cmake desktop flag-o-matic python-any-r1 toolchain-funcs xdg-utils + +SKIA_VER="m102" +# Last commit in ${SKIA_VER} feature branch +# Don't use skia.googlesource.com, it produces non-reproducible tarballs +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://github.com/google/skia/archive/${SKIA_REV}.tar.gz -> skia-${SKIA_VER}-${SKIA_REV}.gh.tar.gz" + +# See https://github.com/aseprite/aseprite#license +LICENSE="Aseprite-EULA MIT" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +IUSE="kde test webp" +RESTRICT="bindist mirror !test? ( test )" + +CDEPEND=" + app-arch/libarchive:= + app-text/cmark:= + dev-libs/libfmt:= + dev-libs/tinyxml + media-libs/freetype + media-libs/giflib:= + media-libs/harfbuzz:=[truetype] + media-libs/libjpeg-turbo:= + media-libs/libpng:= + net-misc/curl + sys-libs/zlib:= + virtual/opengl + x11-libs/libX11 + x11-libs/libXcursor + x11-libs/libXi + x11-libs/libxcb:= + kde? ( + dev-qt/qtcore:5 + dev-qt/qtgui:5 + kde-frameworks/kio:5 + ) + webp? ( media-libs/libwebp:= )" +RDEPEND=" + ${CDEPEND} + gnome-extra/zenity +" +DEPEND=" + ${CDEPEND} + 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 +) + +S="${WORKDIR}" + +PATCHES=( + "${FILESDIR}/skia-${SKIA_VER}_remove_angle2.patch" + "${FILESDIR}/${PN}-1.2.40_shared_libarchive.patch" + "${FILESDIR}/${PN}-1.3.2_shared_json11.patch" + "${FILESDIR}/${PN}-1.3.2_shared_webp.patch" + "${FILESDIR}/${PN}-1.2.35_laf_fixes.patch" + "${FILESDIR}/${PN}-1.3.2_shared_fmt.patch" + "${FILESDIR}/${PN}-1.3.2_strict-aliasing.patch" + "${FILESDIR}"/aseprite-1.3.5_laf-strict-aliasing.patch +) + +src_prepare() { + cmake_src_prepare + # Skia: remove custom optimizations + sed -i -e 's:"\/\/gn\/skia\:optimize",::g' \ + "skia-${SKIA_REV}/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() { + # -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" + cd "${WORKDIR}/skia-${SKIA_REV}" || 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-${SKIA_REV}/" + -DSKIA_LIBRARY_DIR="${WORKDIR}/skia-${SKIA_REV}/out/Static/" + -DSKIA_LIBRARY="${WORKDIR}/skia-${SKIA_REV}/out/Static/libskia.a" + -DSKSHAPER_LIBRARY="${WORKDIR}/skia-${SKIA_REV}/out/Static/libskshaper.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_JPEGLIB=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" + cd "${WORKDIR}/skia-${SKIA_REV}" || 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.1.7_type-punned_pointer.patch b/dev-games/aseprite/files/aseprite-1.1.7_type-punned_pointer.patch deleted file mode 100644 index ca0921437fc8..000000000000 --- a/dev-games/aseprite/files/aseprite-1.1.7_type-punned_pointer.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff --git a/src/allegro/src/x/xkeyboard.c b/src/allegro/src/x/xkeyboard.c -index f121e62..86fa4f7 100644 ---- a/src/allegro/src/x/xkeyboard.c -+++ b/src/allegro/src/x/xkeyboard.c -@@ -356,6 +356,14 @@ static int find_unknown_key_assignment (int i) - return _xwin.keycode_to_scancode[i]; - } - -+/* unicode_getc: -+ * Reads a character from a Unicode string. -+ */ -+static int unicode_getc(AL_CONST char *s) -+{ -+ return *((unsigned short *)s); -+} -+ - - - /* _xwin_keyboard_handler: -@@ -412,7 +420,7 @@ void _xwin_keyboard_handler(XKeyEvent *event, int dga2_hack) - } - buffer[len] = '\0'; - uconvert(buffer, U_UTF8, buffer2, U_UNICODE, sizeof buffer2); -- unicode = *(unsigned short *)buffer2; -+ unicode = unicode_getc(buffer2); - - #ifdef ALLEGRO_XWINDOWS_WITH_XIM - r = XFilterEvent((XEvent *)event, _xwin.window); 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.40_ixwebsocket-gcc13.patch b/dev-games/aseprite/files/aseprite-1.2.40_ixwebsocket-gcc13.patch new file mode 100644 index 000000000000..85ae6739beb8 --- /dev/null +++ b/dev-games/aseprite/files/aseprite-1.2.40_ixwebsocket-gcc13.patch @@ -0,0 +1,245 @@ +From a5d86afd43920d2401682ecd3ec6879a574845ea Mon Sep 17 00:00:00 2001 +From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com> +Date: Sun, 19 Feb 2023 21:08:36 +0300 +Subject: [PATCH] Fix compilation on GCC-13 + +GCC-13 changes internal cstdint includes, and now files that uses +standart integer types should directly include cstdint header. + +See: https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes +See: https://github.com/machinezone/IXWebSocket/pull/443 +Bug: https://bugs.gentoo.org/865117 +Bug: https://bugs.gentoo.org/895440 +--- a/third_party/IXWebSocket/ixwebsocket/IXBench.h ++++ b/third_party/IXWebSocket/ixwebsocket/IXBench.h +@@ -6,7 +6,7 @@ + #pragma once + + #include <chrono> +-#include <stdint.h> ++#include <cstdint> + #include <string> + + namespace ix +--- a/third_party/IXWebSocket/ixwebsocket/IXConnectionState.h ++++ b/third_party/IXWebSocket/ixwebsocket/IXConnectionState.h +@@ -7,9 +7,9 @@ + #pragma once + + #include <atomic> ++#include <cstdint> + #include <functional> + #include <memory> +-#include <stdint.h> + #include <string> + + namespace ix +--- a/third_party/IXWebSocket/ixwebsocket/IXDNSLookup.h ++++ b/third_party/IXWebSocket/ixwebsocket/IXDNSLookup.h +@@ -12,6 +12,7 @@ + + #include "IXCancellationRequest.h" + #include <atomic> ++#include <cstdint> + #include <memory> + #include <mutex> + #include <set> +--- a/third_party/IXWebSocket/ixwebsocket/IXHttp.h ++++ b/third_party/IXWebSocket/ixwebsocket/IXHttp.h +@@ -9,6 +9,7 @@ + #include "IXProgressCallback.h" + #include "IXWebSocketHttpHeaders.h" + #include <atomic> ++#include <cstdint> + #include <tuple> + #include <unordered_map> + +--- a/third_party/IXWebSocket/ixwebsocket/IXHttpClient.cpp ++++ b/third_party/IXWebSocket/ixwebsocket/IXHttpClient.cpp +@@ -12,6 +12,7 @@ + #include "IXUserAgent.h" + #include "IXWebSocketHttpHeaders.h" + #include <assert.h> ++#include <cstdint> + #include <cstring> + #include <iomanip> + #include <random> +--- a/third_party/IXWebSocket/ixwebsocket/IXHttpServer.cpp ++++ b/third_party/IXWebSocket/ixwebsocket/IXHttpServer.cpp +@@ -10,6 +10,7 @@ + #include "IXNetSystem.h" + #include "IXSocketConnect.h" + #include "IXUserAgent.h" ++#include <cstdint> + #include <cstring> + #include <fstream> + #include <sstream> +--- a/third_party/IXWebSocket/ixwebsocket/IXNetSystem.h ++++ b/third_party/IXWebSocket/ixwebsocket/IXNetSystem.h +@@ -6,6 +6,8 @@ + + #pragma once + ++#include <cstdint> ++ + #ifdef _WIN32 + + #ifndef WIN32_LEAN_AND_MEAN +--- a/third_party/IXWebSocket/ixwebsocket/IXSelectInterrupt.h ++++ b/third_party/IXWebSocket/ixwebsocket/IXSelectInterrupt.h +@@ -6,8 +6,8 @@ + + #pragma once + ++#include <cstdint> + #include <memory> +-#include <stdint.h> + #include <string> + + namespace ix +--- a/third_party/IXWebSocket/ixwebsocket/IXSelectInterruptEvent.h ++++ b/third_party/IXWebSocket/ixwebsocket/IXSelectInterruptEvent.h +@@ -5,8 +5,8 @@ + #pragma once + + #include "IXSelectInterrupt.h" ++#include <cstdint> + #include <mutex> +-#include <stdint.h> + #include <string> + #include <deque> + #ifdef _WIN32 +--- a/third_party/IXWebSocket/ixwebsocket/IXSelectInterruptPipe.h ++++ b/third_party/IXWebSocket/ixwebsocket/IXSelectInterruptPipe.h +@@ -7,6 +7,7 @@ + #pragma once + + #include "IXSelectInterrupt.h" ++#include <cstdint> + #include <mutex> + #include <stdint.h> + #include <string> +--- a/third_party/IXWebSocket/ixwebsocket/IXSocket.cpp ++++ b/third_party/IXWebSocket/ixwebsocket/IXSocket.cpp +@@ -14,7 +14,6 @@ + #include <array> + #include <assert.h> + #include <fcntl.h> +-#include <stdint.h> + #include <stdio.h> + #include <stdlib.h> + #include <string.h> +--- a/third_party/IXWebSocket/ixwebsocket/IXSocket.h ++++ b/third_party/IXWebSocket/ixwebsocket/IXSocket.h +@@ -7,6 +7,7 @@ + #pragma once + + #include <atomic> ++#include <cstdint> + #include <functional> + #include <memory> + #include <mutex> +--- a/third_party/IXWebSocket/ixwebsocket/IXSocketMbedTLS.cpp ++++ b/third_party/IXWebSocket/ixwebsocket/IXSocketMbedTLS.cpp +@@ -14,6 +14,7 @@ + #include "IXNetSystem.h" + #include "IXSocket.h" + #include "IXSocketConnect.h" ++#include <cstdint> + #include <string.h> + + #ifdef _WIN32 +--- a/third_party/IXWebSocket/ixwebsocket/IXUuid.cpp ++++ b/third_party/IXWebSocket/ixwebsocket/IXUuid.cpp +@@ -16,6 +16,7 @@ + + #include "IXUuid.h" + ++#include <cstdint> + #include <iomanip> + #include <random> + #include <sstream> +--- a/third_party/IXWebSocket/ixwebsocket/IXWebSocket.cpp ++++ b/third_party/IXWebSocket/ixwebsocket/IXWebSocket.cpp +@@ -13,6 +13,7 @@ + #include "IXWebSocketHandshake.h" + #include <cassert> + #include <cmath> ++#include <cstdint> + + + namespace +--- a/third_party/IXWebSocket/ixwebsocket/IXWebSocket.h ++++ b/third_party/IXWebSocket/ixwebsocket/IXWebSocket.h +@@ -21,6 +21,7 @@ + #include "IXWebSocketTransport.h" + #include <atomic> + #include <condition_variable> ++#include <cstdint> + #include <mutex> + #include <string> + #include <thread> +--- a/third_party/IXWebSocket/ixwebsocket/IXWebSocketPerMessageDeflate.cpp ++++ b/third_party/IXWebSocket/ixwebsocket/IXWebSocketPerMessageDeflate.cpp +@@ -46,6 +46,8 @@ + * + */ + ++#include <cstdint> ++ + #include "IXWebSocketPerMessageDeflate.h" + + #include "IXUniquePtr.h" +--- a/third_party/IXWebSocket/ixwebsocket/IXWebSocketPerMessageDeflateCodec.h ++++ b/third_party/IXWebSocket/ixwebsocket/IXWebSocketPerMessageDeflateCodec.h +@@ -10,6 +10,7 @@ + #include "zlib.h" + #endif + #include <array> ++#include <cstdint> + #include <string> + #include <vector> + #include "IXWebSocketSendData.h" +--- a/third_party/IXWebSocket/ixwebsocket/IXWebSocketPerMessageDeflateOptions.h ++++ b/third_party/IXWebSocket/ixwebsocket/IXWebSocketPerMessageDeflateOptions.h +@@ -6,6 +6,7 @@ + + #pragma once + ++#include <cstdint> + #include <string> + + namespace ix +--- a/third_party/IXWebSocket/ixwebsocket/IXWebSocketSendData.h ++++ b/third_party/IXWebSocket/ixwebsocket/IXWebSocketSendData.h +@@ -6,6 +6,7 @@ + + #pragma once + ++#include <cstdint> + #include <string> + #include <vector> + #include <iterator> +--- a/third_party/IXWebSocket/ixwebsocket/IXWebSocketTransport.cpp ++++ b/third_party/IXWebSocket/ixwebsocket/IXWebSocketTransport.cpp +@@ -45,7 +45,6 @@ + #include <cstdarg> + #include <cstdlib> + #include <sstream> +-#include <stdlib.h> + #include <string.h> + #include <string> + #include <thread> +--- a/third_party/IXWebSocket/ixwebsocket/IXWebSocketTransport.h ++++ b/third_party/IXWebSocket/ixwebsocket/IXWebSocketTransport.h +@@ -21,6 +21,7 @@ + #include "IXWebSocketSendData.h" + #include "IXWebSocketSendInfo.h" + #include <atomic> ++#include <cstdint> + #include <functional> + #include <list> + #include <memory> +-- +2.39.2 + diff --git a/dev-games/aseprite/files/aseprite-1.2.40_laf-gcc13.patch b/dev-games/aseprite/files/aseprite-1.2.40_laf-gcc13.patch new file mode 100644 index 000000000000..3d7ff309342b --- /dev/null +++ b/dev-games/aseprite/files/aseprite-1.2.40_laf-gcc13.patch @@ -0,0 +1,47 @@ +From 59c6af303dea4c6dc0c9da687ec73612929eacfc Mon Sep 17 00:00:00 2001 +From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com> +Date: Tue, 21 Feb 2023 17:01:04 +0300 +Subject: [PATCH] Fix compilation on GCC13 + +GCC-13 changes internal cstdint includes, and now files that uses +standard integer types should directly include cstdint header. + +See: https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes +See: https://github.com/aseprite/laf/pull/55 +Bug: https://bugs.gentoo.org/865117 +Bug: https://bugs.gentoo.org/895616 +--- a/laf/base/file_content.h ++++ b/laf/base/file_content.h +@@ -9,6 +9,7 @@ + #pragma once + + #include "base/buffer.h" ++#include "base/ints.h" + + #include <cstdio> + #include <string> +--- a/laf/base/sha1.h ++++ b/laf/base/sha1.h +@@ -11,6 +11,8 @@ + #include <vector> + #include <string> + ++#include "base/ints.h" ++ + extern "C" struct SHA1Context; + + namespace base { +--- a/laf/base/sha1_rfc3174.h ++++ b/laf/base/sha1_rfc3174.h +@@ -18,6 +18,8 @@ + #define BASE_SHA1_RFC3174_H_INCLUDED + #pragma once + ++#include "base/ints.h" ++ + #ifdef __cplusplus + extern "C" { + #endif +-- +2.39.2 + diff --git a/dev-games/aseprite/files/aseprite-1.2.40_musl_pthreads.patch b/dev-games/aseprite/files/aseprite-1.2.40_musl_pthreads.patch new file mode 100644 index 000000000000..6a6dfd9f6020 --- /dev/null +++ b/dev-games/aseprite/files/aseprite-1.2.40_musl_pthreads.patch @@ -0,0 +1,57 @@ +From 27403363708ca72cbbbdb085de27896485c5c422 Mon Sep 17 00:00:00 2001 +From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com> +Date: Sat, 12 Nov 2022 05:13:08 +0300 +Subject: [PATCH] Don't use pthread_detach() after pthread_join() + +After pthread_join() all allocated to thread resources are freed, so +pthread_detach() after pthread_join() will results in undefined behavior +with SIGSERV on some libc implementations (like MUSL). According to +pthread_detach(3), "Either pthread_join(3) or pthread_detach() should be +called for each thread that an application creates". +--- + base/thread.cpp | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/laf/base/thread.cpp b/laf/base/thread.cpp +index 81c1284..4d5e0ce 100644 +--- a/laf/base/thread.cpp ++++ b/laf/base/thread.cpp +@@ -55,8 +55,12 @@ thread::thread() + + thread::~thread() + { +- if (joinable()) ++ if (joinable()) { ++#if LAF_WINDOWS ++ ::CloseHandle(m_native_handle); ++#endif + detach(); ++ } + } + + bool thread::joinable() const +@@ -69,6 +73,7 @@ void thread::join() + if (joinable()) { + #if LAF_WINDOWS + ::WaitForSingleObject(m_native_handle, INFINITE); ++ ::CloseHandle(m_native_handle); + #else + ::pthread_join((pthread_t)m_native_handle, NULL); + #endif +@@ -79,12 +84,7 @@ void thread::join() + void thread::detach() + { + if (joinable()) { +-#if LAF_WINDOWS +- ::CloseHandle(m_native_handle); +- m_native_handle = (native_handle_type)0; +-#else +- ::pthread_detach((pthread_t)m_native_handle); +-#endif ++ m_native_handle = (native_handle_type)NULL; + } + } + +-- +2.37.4 + diff --git a/dev-games/aseprite/files/aseprite-1.2.40_shared_json11.patch b/dev-games/aseprite/files/aseprite-1.2.40_shared_json11.patch new file mode 100644 index 000000000000..d4c50484c9a8 --- /dev/null +++ b/dev-games/aseprite/files/aseprite-1.2.40_shared_json11.patch @@ -0,0 +1,54 @@ +From d92660c3187d0e7d5a0b7b2210f328d0d0bf73f2 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 2/3] 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 85d447ac8..69ab97ed8 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) +@@ -301,6 +302,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 e0a11c9c6..63ad42f23 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.37.4 + diff --git a/dev-games/aseprite/files/aseprite-1.2.40_shared_libarchive.patch b/dev-games/aseprite/files/aseprite-1.2.40_shared_libarchive.patch new file mode 100644 index 000000000000..ffe5ae8bdeef --- /dev/null +++ b/dev-games/aseprite/files/aseprite-1.2.40_shared_libarchive.patch @@ -0,0 +1,106 @@ +From dcad402ec83ca298cc206a1e8170b13c3f9a40fd 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 1/3] 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 e9814380d..85d447ac8 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 96a82829d..e0a11c9c6 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.37.4 + diff --git a/dev-games/aseprite/files/aseprite-1.2.40_shared_webp.patch b/dev-games/aseprite/files/aseprite-1.2.40_shared_webp.patch new file mode 100644 index 000000000000..44f46efac5d5 --- /dev/null +++ b/dev-games/aseprite/files/aseprite-1.2.40_shared_webp.patch @@ -0,0 +1,72 @@ +From adabed7947074268be713e1da3b4cb2d6d8c88a5 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 3/3] Use shared webp library + +Added option -DUSE_SHARED_WEBP +--- + CMakeLists.txt | 25 ++++++++++++++++--------- + third_party/CMakeLists.txt | 2 +- + 2 files changed, 17 insertions(+), 10 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 69ab97ed8..2cb0886cd 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 "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) +@@ -345,17 +346,23 @@ 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(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) ++ # 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") ++ else() ++ set(WEBP_LIBRARIES webp webpdemux libwebpmux) ++ set(WEBP_INCLUDE_DIR ${LIBWEBP_DIR}/src) ++ endif() ++ include_directories(${WEBP_INCLUDE_DIR}) + endif() +- include_directories(${WEBP_INCLUDE_DIR}) + endif() + message(STATUS "aseprite libwebp: ${WEBP_LIBRARIES}") + +diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt +index 63ad42f23..9e240bc3e 100644 +--- a/third_party/CMakeLists.txt ++++ b/third_party/CMakeLists.txt +@@ -33,7 +33,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.37.4 + diff --git a/dev-games/aseprite/files/aseprite-1.3.2_shared_fmt.patch b/dev-games/aseprite/files/aseprite-1.3.2_shared_fmt.patch new file mode 100644 index 000000000000..ddb32c5b672d --- /dev/null +++ b/dev-games/aseprite/files/aseprite-1.3.2_shared_fmt.patch @@ -0,0 +1,52 @@ +From 7afccfca25ffe17aba5dada1dab663c8b6228ab1 Mon Sep 17 00:00:00 2001 +From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com> +Date: Tue, 2 Jan 2024 20:00:12 +0300 +Subject: [PATCH] Use shared fmt library + +Added option -DUSE_SHARED_FMT +--- + CMakeLists.txt | 5 +++++ + third_party/CMakeLists.txt | 4 +++- + 2 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 2fc29252b..e49373323 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -39,6 +39,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_JPEGLIB "Use your installed copy of jpeglib" off) + option(USE_SHARED_JSON11 "Use your installed copy of json11" off) +@@ -197,6 +198,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) +diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt +index babbd4742..3c83991a4 100644 +--- a/third_party/CMakeLists.txt ++++ b/third_party/CMakeLists.txt +@@ -113,7 +113,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.41.0 + diff --git a/dev-games/aseprite/files/aseprite-1.3.2_shared_json11.patch b/dev-games/aseprite/files/aseprite-1.3.2_shared_json11.patch new file mode 100644 index 000000000000..98b10f76b58d --- /dev/null +++ b/dev-games/aseprite/files/aseprite-1.3.2_shared_json11.patch @@ -0,0 +1,56 @@ +From 7fa34e4a478ae4e4eab4031e626040a9db210417 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 1/3] Use shared json11 library + +Added option -DUSE_SHARED_JSON11 +--- + CMakeLists.txt | 7 +++++++ + third_party/CMakeLists.txt | 6 +++++- + 2 files changed, 12 insertions(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index f099e1deb..c4f364185 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -41,6 +41,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) +@@ -299,6 +300,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 bdd52435c..88eea9b5e 100644 +--- a/third_party/CMakeLists.txt ++++ b/third_party/CMakeLists.txt +@@ -123,7 +123,11 @@ if(NOT USE_SHARED_CMARK) + endif() + + # JSON +-add_subdirectory(json11) ++if(NOT USE_SHARED_JSON11) ++ add_library(json11 STATIC json11/json11.cpp) ++ target_include_directories(json11 PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/json11) ++ #target_compile_options(json11 PRIVATE -fPIC -fno-rtti -fno-exceptions -Wall) ++endif() + + # libarchive + if(NOT USE_SHARED_LIBARCHIVE) +-- +2.41.0 + diff --git a/dev-games/aseprite/files/aseprite-1.3.2_shared_webp.patch b/dev-games/aseprite/files/aseprite-1.3.2_shared_webp.patch new file mode 100644 index 000000000000..3026b7641e6d --- /dev/null +++ b/dev-games/aseprite/files/aseprite-1.3.2_shared_webp.patch @@ -0,0 +1,81 @@ +From 06d5d4cd307e9ee0b83bdbff71729dab1305ea9a 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 2/4] Use shared webp library + +Added option -DUSE_SHARED_WEBP +--- + CMakeLists.txt | 28 ++++++++++++++++++---------- + third_party/CMakeLists.txt | 2 +- + 2 files changed, 19 insertions(+), 11 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c4f364185..ba05f8d84 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -47,6 +47,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 "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) +@@ -342,24 +343,31 @@ set(UNDO_TESTS ${ENABLE_TESTS} CACHE BOOL "Enable undo tests") + if(ENABLE_DRM) + add_subdirectory(drm) + endif() +-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(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) ++ # 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") ++ else() ++ set(WEBP_LIBRARIES webp webpdemux libwebpmux) ++ set(WEBP_INCLUDE_DIR ${LIBWEBP_DIR}/src) ++ endif() ++ include_directories(${WEBP_INCLUDE_DIR}) + endif() +- include_directories(${WEBP_INCLUDE_DIR}) + endif() + message(STATUS "aseprite libwebp: ${WEBP_LIBRARIES}") + ++add_subdirectory(laf) ++ + # LAF libraries + Aseprite are compiled with config.h + target_include_directories(laf-base PUBLIC src) + target_compile_definitions(laf-base PUBLIC HAVE_CONFIG_H) +diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt +index 88eea9b5e..31aa3e52f 100644 +--- a/third_party/CMakeLists.txt ++++ b/third_party/CMakeLists.txt +@@ -33,7 +33,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.41.0 + diff --git a/dev-games/aseprite/files/aseprite-1.3.2_strict-aliasing.patch b/dev-games/aseprite/files/aseprite-1.3.2_strict-aliasing.patch new file mode 100644 index 000000000000..de88b29a82aa --- /dev/null +++ b/dev-games/aseprite/files/aseprite-1.3.2_strict-aliasing.patch @@ -0,0 +1,55 @@ +From 4e2066a7eb108503bfea2092672329e19ffbde49 Mon Sep 17 00:00:00 2001 +From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com> +Date: Tue, 2 Jan 2024 21:09:04 +0300 +Subject: [PATCH] Fix strict-aliasing warnings + +--- + src/dio/aseprite_decoder.cpp | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) + +diff --git a/src/dio/aseprite_decoder.cpp b/src/dio/aseprite_decoder.cpp +index e01fbba32..209a67307 100644 +--- a/src/dio/aseprite_decoder.cpp ++++ b/src/dio/aseprite_decoder.cpp +@@ -28,10 +28,20 @@ + #include "zlib.h" + + #include <cstdio> ++#include <cstring> + #include <vector> + + namespace dio { + ++template <typename T> ++T ++copy_reinterpret_cast(const void* ptr) ++{ ++ T tmp; ++ std::memcpy(&tmp, ptr, sizeof(T)); ++ return tmp; ++} ++ + bool AsepriteDecoder::decode() + { + bool ignore_old_color_chunks = false; +@@ -425,7 +435,7 @@ float AsepriteDecoder::readFloat() + + // Little endian. + int v = ((b4 << 24) | (b3 << 16) | (b2 << 8) | b1); +- return *reinterpret_cast<float*>(&v); ++ return *copy_reinterpret_cast<float*>(&v); + } + + double AsepriteDecoder::readDouble() +@@ -465,7 +475,7 @@ double AsepriteDecoder::readDouble() + ((long long)b3 << 16) | + ((long long)b2 << 8) | + (long long)b1); +- return *reinterpret_cast<double*>(&v); ++ return *copy_reinterpret_cast<double*>(&v); + } + + doc::Palette* AsepriteDecoder::readColorChunk(doc::Palette* prevPal, +-- +2.41.0 + diff --git a/dev-games/aseprite/files/aseprite-1.3.5_laf-strict-aliasing.patch b/dev-games/aseprite/files/aseprite-1.3.5_laf-strict-aliasing.patch new file mode 100644 index 000000000000..de6d5ffe3e7c --- /dev/null +++ b/dev-games/aseprite/files/aseprite-1.3.5_laf-strict-aliasing.patch @@ -0,0 +1,155 @@ +https://github.com/aseprite/laf/pull/84 +From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com> +Date: Sun, 14 Apr 2024 21:47:02 +0300 +Subject: [PATCH] Fix strict-alias warnings + +reinterpret_cast on pointers break strict-aliasing rule (-Wstrict-aliasing). Implemented internal function copy_reinterpret_cast that memcpy pointer into type, that can be converted to desired type. +--- a/laf/base/cfile.cpp ++++ b/laf/base/cfile.cpp +@@ -7,6 +7,7 @@ + #ifdef HAVE_CONFIG_H + #include "config.h" + #endif ++#include "base/mem_utils.h" + + #include <cstdio> + +@@ -114,7 +115,7 @@ float fgetf(FILE* file) + + // Little endian. + int v = ((b4 << 24) | (b3 << 16) | (b2 << 8) | b1); +- return *reinterpret_cast<float*>(&v); ++ return *copy_reinterpret_cast<float*>(&v); + } + + // Reads a 64-bit double-precision floating point number using +@@ -156,7 +157,7 @@ double fgetd(FILE* file) + ((long long)b3 << 16) | + ((long long)b2 << 8) | + (long long)b1); +- return *reinterpret_cast<double*>(&v); ++ return *copy_reinterpret_cast<double*>(&v); + } + + // Writes a word using little-endian byte ordering. +@@ -231,7 +232,7 @@ int fputq(long long l, FILE* file) + // Returns 0 in success or -1 in error + int fputf(float l, FILE* file) + { +- int b = *(reinterpret_cast<int*>(&l)); ++ int b = *(copy_reinterpret_cast<int*>(&l)); + int b1, b2, b3, b4; + + // Little endian. +@@ -254,7 +255,7 @@ int fputf(float l, FILE* file) + // Returns 0 in success or -1 in error + int fputd(double l, FILE* file) + { +- long long b = *(reinterpret_cast<long long*>(&l)); ++ long long b = *(copy_reinterpret_cast<long long*>(&l)); + int b1, b2, b3, b4, b5, b6, b7, b8; + + // Little endian. +--- a/laf/base/mem_utils.h ++++ b/laf/base/mem_utils.h +@@ -8,10 +8,18 @@ + #define BASE_MEM_UTILS_H_INCLUDED + #pragma once + ++#include <cstring> + #include <string> + + namespace base { + ++ template<typename T> ++ T copy_reinterpret_cast(const void* ptr) { ++ T tmp; ++ std::memcpy(&tmp, ptr, sizeof(T)); ++ return tmp; ++ } ++ + std::string get_pretty_memory_size(std::size_t memsize); + + } // namespace base +--- a/laf/base/serialization.cpp ++++ b/laf/base/serialization.cpp +@@ -8,6 +8,7 @@ + #include "config.h" + #endif + ++#include "base/mem_utils.h" + #include "base/serialization.h" + + #include <iostream> +@@ -57,7 +58,7 @@ std::ostream& little_endian::write64(std::ostream& os, uint64_t qword) + + std::ostream& little_endian::write_float(std::ostream& os, float value) + { +- int b = *(reinterpret_cast<int*>(&value)); ++ int b = *(copy_reinterpret_cast<int*>(&value)); + os.put((int)((b & 0x000000ffl))); + os.put((int)((b & 0x0000ff00l) >> 8)); + os.put((int)((b & 0x00ff0000l) >> 16)); +@@ -67,7 +68,7 @@ std::ostream& little_endian::write_float(std::ostream& os, float value) + + std::ostream& little_endian::write_double(std::ostream& os, double value) + { +- long long b = *(reinterpret_cast<long long*>(&value)); ++ long long b = *(copy_reinterpret_cast<long long*>(&value)); + os.put((int)((b & 0x00000000000000ffl))); + os.put((int)((b & 0x000000000000ff00l) >> 8)); + os.put((int)((b & 0x0000000000ff0000l) >> 16)); +@@ -126,7 +127,7 @@ float little_endian::read_float(std::istream& is) + b3 = is.get(); + b4 = is.get(); + int v = ((b4 << 24) | (b3 << 16) | (b2 << 8) | b1); +- return *reinterpret_cast<float*>(&v); ++ return *copy_reinterpret_cast<float*>(&v); + } + + double little_endian::read_double(std::istream& is) +@@ -148,7 +149,7 @@ double little_endian::read_double(std::istream& is) + ((long long)b3 << 16) | + ((long long)b2 << 8) | + (long long)b1); +- return *reinterpret_cast<double*>(&v); ++ return *copy_reinterpret_cast<double*>(&v); + } + + std::ostream& big_endian::write16(std::ostream& os, uint16_t word) +@@ -182,7 +183,7 @@ std::ostream& big_endian::write64(std::ostream& os, uint64_t qword) + + std::ostream& big_endian::write_float(std::ostream& os, float value) + { +- int b = *(reinterpret_cast<int*>(&value)); ++ int b = *(copy_reinterpret_cast<int*>(&value)); + os.put((int)((b & 0xff000000l) >> 24)); + os.put((int)((b & 0x00ff0000l) >> 16)); + os.put((int)((b & 0x0000ff00l) >> 8)); +@@ -192,7 +193,7 @@ std::ostream& big_endian::write_float(std::ostream& os, float value) + + std::ostream& big_endian::write_double(std::ostream& os, double value) + { +- long long b = *(reinterpret_cast<long long*>(&value)); ++ long long b = *(copy_reinterpret_cast<long long*>(&value)); + os.put((int)((b & 0xff00000000000000l) >> 56)); + os.put((int)((b & 0x00ff000000000000l) >> 48)); + os.put((int)((b & 0x0000ff0000000000l) >> 40)); +@@ -251,7 +252,7 @@ float big_endian::read_float(std::istream& is) + b2 = is.get(); + b1 = is.get(); + int v = ((b4 << 24) | (b3 << 16) | (b2 << 8) | b1); +- return *reinterpret_cast<float*>(&v); ++ return *copy_reinterpret_cast<float*>(&v); + } + + double big_endian::read_double(std::istream& is) +@@ -273,7 +274,7 @@ double big_endian::read_double(std::istream& is) + ((long long)b3 << 16) | + ((long long)b2 << 8) | + (long long)b1); +- return *reinterpret_cast<double*>(&v); ++ return *copy_reinterpret_cast<double*>(&v); + } + + 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..7539a1e9aeb7 --- /dev/null +++ b/dev-games/aseprite/files/skia-m102_remove_angle2.patch @@ -0,0 +1,15 @@ +--- a/skia-3338e90707323d2cd3a150276acb9f39933deee2/third_party/zlib/BUILD.gn 2022-07-10 00:39:12.507321714 +0300 ++++ b/skia-3338e90707323d2cd3a150276acb9f39933deee2/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 +-} diff --git a/dev-games/aseprite/metadata.xml b/dev-games/aseprite/metadata.xml index 1bf066565824..66ff5b77ea41 100644 --- a/dev-games/aseprite/metadata.xml +++ b/dev-games/aseprite/metadata.xml @@ -1,18 +1,14 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="person"> + <maintainer type="person" proxied="yes"> <email>azamat.hackimov@gmail.com</email> <name>Azamat H. Hackimov</name> </maintainer> - <maintainer type="project"> + <maintainer type="project" proxied="proxy"> <email>proxy-maint@gentoo.org</email> <name>Proxy Maintainers</name> </maintainer> - <use> - <flag name="bundled-libs">Use the upstream provided bundled version of allegro 4.4.2</flag> - <flag name="gtk3">Enable support for the experimental native GTK File Dialog</flag> - </use> <upstream> <remote-id type="github">aseprite/aseprite</remote-id> </upstream> |