From 97bacba3ead078e5db8b87ab651a3ffa7d82f60f Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Wed, 17 Apr 2024 12:04:28 +0100 Subject: gentoo auto-resync : 17:04:2024 - 12:04:27 --- dev-games/aseprite/Manifest | 5 +- dev-games/aseprite/aseprite-1.3.2.ebuild | 232 -------------------- dev-games/aseprite/aseprite-1.3.5.ebuild | 233 +++++++++++++++++++++ .../files/aseprite-1.3.5_laf-strict-aliasing.patch | 155 ++++++++++++++ 4 files changed, 391 insertions(+), 234 deletions(-) delete mode 100644 dev-games/aseprite/aseprite-1.3.2.ebuild create mode 100644 dev-games/aseprite/aseprite-1.3.5.ebuild create mode 100644 dev-games/aseprite/files/aseprite-1.3.5_laf-strict-aliasing.patch (limited to 'dev-games/aseprite') diff --git a/dev-games/aseprite/Manifest b/dev-games/aseprite/Manifest index c880aca9ff47..1f99b271dbc4 100644 --- a/dev-games/aseprite/Manifest +++ b/dev-games/aseprite/Manifest @@ -9,10 +9,11 @@ AUX aseprite-1.3.2_shared_fmt.patch 1576 BLAKE2B 79480979ad9ef65b4f448e45397ddfb AUX aseprite-1.3.2_shared_json11.patch 1974 BLAKE2B ccdf9d22544e2eaaad16909fd594bae37151dd885863885fc0138e14c55e74ebab04c1a575a6a48553d1a707e05b6985a3f5a2d4513bee9aeb385c59ea31afee SHA512 775f963876822bafc4a064be02dfccfefcd7841a5354935412b2a644222dfcaccb54f343b50343267c5f9d07299392686dc5fcb2bd0f7f2a60358de21550ce41 AUX aseprite-1.3.2_shared_webp.patch 3174 BLAKE2B f3415a4a08236dd42254c9e3cc97337904f268bec28c71efcb8723bf547482bea3b30d8639a520c8e2370b81514dd882d603046fa6c1cb8a6a6186f57b5ad57c SHA512 01c7b2f6d2a2c1140067412d258718ea5fbeea21e6874fe21f659b239255976c85e93c9669ea18255e6a6c76c402d5948e748b9c22a13f4269d0f99d708a0a50 AUX aseprite-1.3.2_strict-aliasing.patch 1438 BLAKE2B e7d63e22b4e1c1ab21526b51dabb9d6def6d017346037f0001538d309f0d3628cd460bb0f4628240639792c8c293a9a858dfcb31d4f57a7c56583511bb6b2d3a SHA512 00f16ec56d2ed6ec84def9c88be0cd575452bf64c533b395fc7951fce1136b93b47a4afa373531cc68730a554b627777145f062ec21694de1322dca88c783dcc +AUX aseprite-1.3.5_laf-strict-aliasing.patch 5164 BLAKE2B 6b7628505b10a2ffd991a3f5b7c38455da544b53ed845fafde7cf1b531021a1b261fa8c4b8d71b27f3fad0110e2305af321c5345cef68929ee556c26688b58bc SHA512 38d4b731bbf6bb76950b86d484dc51d89cd6f686e5ad4ce6942ba4df0aa58c6e9fe85f476f922b626f5b42b9c24a3f25faad668fec7457974f444831d5e0d160 AUX skia-m102_remove_angle2.patch 644 BLAKE2B 11705c6376ad85303b8d64e6046e6e31191774d940458ddc64b8bf2d2e998168d3f1c8cd4361d623c040a03fd948ee4e0b6189c774522ae255cd0f2f572bf4c0 SHA512 bc587d92286528cbaec140a0492d5381a1dfce8263e4a2c2231b1e28778e3e5919b3896ccae416faa1b39f34517b6ada77ccaf671d25ae7d3c552a7991f5bb45 DIST Aseprite-v1.2.40-Source.zip 61802371 BLAKE2B f6f586a3ca222de208e6639e3fc94a63f98e487e1975dccd2974ffa71f937384177639e3799fb81f064afaf1c4a048394fab32a30bcda353320ac55c38b17636 SHA512 0a548428a3362f49cb6cecaa061de8371ad3f0bc22d00bc957e21f22316772e854d7ad36ebb7e5b69274eea376bb62fa39abfd4bc02250524c3707f81a628b1f -DIST Aseprite-v1.3.2-Source.zip 64151421 BLAKE2B 9e23bf62b7d8c6377e36149ce830151d35b48e125a5a99aeb44b0fb1f2f653e53df9b8d74b7127598607561cf6dde4b59f00dd6c6abd08581eddab71feda415d SHA512 cbe1acd1f851f049ceaa948eb59ec1cb1e67c99e9204750f1e38cbedb8122fe0ce63230b63ab537e59d87c88d5ebae03b0785d0eb5195c8ef9a206c8ac71b977 +DIST Aseprite-v1.3.5-Source.zip 64189695 BLAKE2B f796f688f0ba565ae32fde2e8d84e39b610f451054440ced078ce1fc847a9208460b45aa6efa059a56c9e0603b4fd156cc476a2c40715ec2c37181e39c06a401 SHA512 885386e84c55b84cc85ffbf16f7269ac1640458abe973c3aa2e3eabd807ea3e1e06ee6e6dfaffff9dd7b09d3b37bd9ac41821152838cd80742edd4d53302c0e3 DIST skia-m102-3338e90707323d2cd3a150276acb9f39933deee2.gh.tar.gz 53944562 BLAKE2B 9da3e8386cd7a18a6ee9362743bee4146c41038af8868a6f5e8a2dce468e4dc4669b488861d117da8d1bd8461b2ad47bfc300774a33a84153bca345d63a929a7 SHA512 9ae0032ee3861ce4958af6eb7047273d28b1faa3823576ef568e3c7faed7f49a9976540a72c3fa38234a4ae6319ac381324eff807938f9763781fd33ad67d075 EBUILD aseprite-1.2.40.ebuild 5852 BLAKE2B 304c13646d338ac0a049ae753a731fd740d2e55efa9177cdb01063338420b6f6aa8508c644696fa31e14a8abf8fe79367545068e33eca1c39c16b9769b07441f SHA512 16152159dad23c1965a4604c0512b36fc6699efd45ba7aa1548175477a52346d366c05b67ef99707f48857ca39d662cb4dc6156d3c93727ff178e8aab7f374f1 -EBUILD aseprite-1.3.2.ebuild 5776 BLAKE2B d92d4c6bf19330b42516418df491972c52358bcc2795a097d92fa90214e14555b2284ddc93c8fec1b174d9f985a87bae1b997cb3123d7376c97428b07f95bf32 SHA512 d54816caa8120b201a5220fc27fbe4be5ff7750be647c9cff2e374f4255a58c3cfb07b5c4d4304eed51c0231894af1da905312231cd4fc81f8105af32d09e55a +EBUILD aseprite-1.3.5.ebuild 5829 BLAKE2B 99566a0b3974803e468cac620625d695fd6e9cb72103fff26249fd6b8865742dc015f055a02e5bc6b5b4a19328319c09ea3cb59f824efe5dca3ee6eb10c9c601 SHA512 b46bf3f82bf311c51c54cf1ae48c09e61d99a7c2fa4a20d8d0a7171ec1d5fdb8ded9e7f0729af5d202be5f15c660566ee4b281b59cd45cf6b7b843f0912e1af7 MISC metadata.xml 489 BLAKE2B a7c8e63d627aed0bbdcab626fd6b15941b1597b56abe3de87d172a919008122cfa9ee29dc10256c5722e6cea243d836a8d3bb9918f1d1d1963bc299d04fab285 SHA512 beb3ca2b414414980370e02138e0ec8bc931d4807fabb403e21a244365c4af65a5830dc6465d2a3798d56eec360930444a71a549d4d6d4a03f292bf3946bab79 diff --git a/dev-games/aseprite/aseprite-1.3.2.ebuild b/dev-games/aseprite/aseprite-1.3.2.ebuild deleted file mode 100644 index 7630df8d90a4..000000000000 --- a/dev-games/aseprite/aseprite-1.3.2.ebuild +++ /dev/null @@ -1,232 +0,0 @@ -# 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" -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" -) - -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 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_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/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.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" +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 + +@@ -114,7 +115,7 @@ float fgetf(FILE* file) + + // Little endian. + int v = ((b4 << 24) | (b3 << 16) | (b2 << 8) | b1); +- return *reinterpret_cast(&v); ++ return *copy_reinterpret_cast(&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(&v); ++ return *copy_reinterpret_cast(&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(&l)); ++ int b = *(copy_reinterpret_cast(&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(&l)); ++ long long b = *(copy_reinterpret_cast(&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 + #include + + namespace base { + ++ template ++ 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 +@@ -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(&value)); ++ int b = *(copy_reinterpret_cast(&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(&value)); ++ long long b = *(copy_reinterpret_cast(&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(&v); ++ return *copy_reinterpret_cast(&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(&v); ++ return *copy_reinterpret_cast(&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(&value)); ++ int b = *(copy_reinterpret_cast(&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(&value)); ++ long long b = *(copy_reinterpret_cast(&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(&v); ++ return *copy_reinterpret_cast(&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(&v); ++ return *copy_reinterpret_cast(&v); + } + + -- cgit v1.2.3