From 30a89a1ae8bc46e8e6a772328c5bb9aed7e14003 Mon Sep 17 00:00:00 2001 From: Markus Meier Date: Fri, 21 Jun 2024 21:14:12 +0200 Subject: media-gfx/darktable: add 4.8.0 set automagic heif dependency Bug: https://bugs.gentoo.org/934008 Signed-off-by: Markus Meier --- media-gfx/darktable/Manifest | 3 + media-gfx/darktable/darktable-4.8.0.ebuild | 196 +++++++++++++++++++++ .../darktable-4.8.0_fix-has-attribute-musl.patch | 26 +++ 3 files changed, 225 insertions(+) create mode 100644 media-gfx/darktable/darktable-4.8.0.ebuild create mode 100644 media-gfx/darktable/files/darktable-4.8.0_fix-has-attribute-musl.patch diff --git a/media-gfx/darktable/Manifest b/media-gfx/darktable/Manifest index 3098b0c..ac0e9d3 100644 --- a/media-gfx/darktable/Manifest +++ b/media-gfx/darktable/Manifest @@ -2,12 +2,15 @@ AUX darktable-3.4.0_jsonschema-automagic.patch 891 BLAKE2B b0abdd7ea80a446e2556d AUX darktable-3.4.1_libxcf-cmake.patch 788 BLAKE2B b6ecb84de804b0bf16f907f825d93d00a62c1d996077514b3e55f370347f47e561707cb8da6a270aa42c3320142437691cc8b132718c485b5b7df40068d41ee5 SHA512 d94247c4f2c3b4894bd6455cd036a62ef5edb90a77bf8f930efc3e540d00712000fe8eeb7d4c937fa826aef1dd129448223c8696ff094e823894b17ef2669a4e AUX darktable-4.2.1_cmake-musl.patch 796 BLAKE2B 2e26cc969f01dc948f4f92f42c768a28bb879b3592d98dc1de0c3b5b7335a2985fbb5659c58b421fbca896b1f2585a5cb993b5cdf3ee6f87d9834afe3fd1a23a SHA512 82c7a4f6d6112fa024503a99e05d3050922b120821c93922ae846f9da6b02cd6f2e27315448c20ed1032c5526b85cb6d01dd6eec5109db1af3f8e92e4818ea06 AUX darktable-4.4.2_fix-has-attribute-musl.patch 779 BLAKE2B d22e3cc6a28f9b0df574f1e512926868c7dd921b57dacb0934fdbfe934fb14ccb5cb16cbef49646a00c9be183af4f426e8d656389e2a87bb1c8247a8d64fd4f8 SHA512 70e0bf5fd3fee861490c651b2d2e94f3c187852bbd4e71972873d4ad4d426156e0785d1ed96ee65d641333357aa9048852b056985d6678f1efe98026a3e1474b +AUX darktable-4.8.0_fix-has-attribute-musl.patch 1233 BLAKE2B 1ac838bdf7d3345b30d71065bde9d915a36876febd34f58e1005fc4f87cfbc9b757ce4145e5cb173d9d965f7e6c161d1ecf45a6845b0a82cc8ca2fe1bc275e50 SHA512 fda9f858fc1594e208501c3c277c90c3d9c914bbe9420c8151120fafd3ad54e6fc36614ebcf95a0033537e308c5a9fa6d23a619e57eff663cf996c254e434397 DIST darktable-4.6.0.tar.xz 6129572 BLAKE2B 170d874f6a35c4fe5a5555f308bc541885968b8b5535402f8087ad4d47ee93f3d22a78c633f9b3e14584d1925a7dd682a5f3e2bd187ef2f58d0dc2a407b9bb27 SHA512 825a63c9b8bd7420f5c4b53a9281587be92088e1cd617faaf1de2b455503092cc7476872803a1d82c7bf57fcc57f85a40fc4af8ca04367e48719030f08726df7 DIST darktable-4.6.1.tar.xz 6240188 BLAKE2B cf0055a4dd5f0a246b8de8ca5a29488fd77162cf2e0d7b681235499da39e4dad69dc5e5f7083f67364171d89aa76e940e8338eadee959f6529fb27658f43b75b SHA512 a5bcbdded7cacbc22d82cc982ad1387dc316cf4c0369f6f215abf9f60906024f2236a988dc025c0553bc2d8d7ca9d7bee9eb28b164fa1d9312eef1a084156fb6 +DIST darktable-4.8.0.tar.xz 6256036 BLAKE2B 386276776a68887c7b439bf71ecc2ba9cd4cf54c247073908eae0cafd1d1db390c39937dfd4a2fcbe5164317b6090e29f2d2caa66fb7da47a702ba8988833ed5 SHA512 cb0535274a2862dfb2c8d36149cfced828662e423e04347970c0e2546e4d70ed7ab52cb80b6d21785165a294dee74fc23ba749086aab0a78386936341eb8216a DIST darktable-usermanual-4.4.en.pdf 34311705 BLAKE2B 98094ed8288be092ec9c0398bf1719992ce80723aa803e3924e9d28c1c5f2717b120ed618cbec6eebb958be59d15fe107428099efd87926622b5d08110e36b67 SHA512 90e8b8912776b674a436a7e2377d16b0ef374d879ba16501a1c8a0c8407776ef362b747121859884e0aac1d9fc94f3bf0a58bbccdc6fce27cbcaf4cf169d6ef3 DIST darktable-usermanual-4.4.uk.pdf 33796107 BLAKE2B 060218ec9b7fbcec947506ea9fdf355411d0b1242d41b9ffb7abd8dd991ece29e75c06231251d2ec2701e319e1b1e8134c08603649fe7e933d21b4aef597f7c3 SHA512 f2a6837a05114d4254fade358382be5fabcbd980a3c4fad702b1102176c7e261fd8646aeef1c0328001da8f7cb25d50b06c9f1163a54987985f556c616728bf5 DIST darktable-usermanual-4.6.en.pdf 26844087 BLAKE2B 5bdb5e012cd8ba7bace733006136b1f9e510214179e84a9cba0664a3c2e4b19828e2cc54addaf5999579b910b592bf0e9cd9796cf89f3a4e6ae369e8187fbfce SHA512 a1d610c42ae3d1ae4d0bf3e827ed9ccae6faeea20cbc03e7c12d74c3c41175bf3f61d9eba43406b9ba86750edf976c1539357ddf774733f566a076418c34f558 DIST darktable-usermanual-4.6.uk.pdf 27013345 BLAKE2B 4c0da0038576e8ea97da88a4481e1afdf4e5b5df6b8a52475d18b488ac10066db4ef679681a38a194dd84771e340f58beea0450ec60726abd19d600e73fc40f1 SHA512 6e2f036e3f845791aa8b6eb565230136bfb6ae7f9b1ee56a9201cd25bb09391fd2ec45ba7fa1ddd11b4c193ab6b097fae32107af6c11b6cd6eeada60b002d4b3 EBUILD darktable-4.6.0.ebuild 5757 BLAKE2B d095734af35fb8118b7d38d4293a8e4c71924a9a2123f3f2c35f216d02e11d7ab04aca077fa44f1fe53e4ab518f3bb84fe530efae676845d7f3f4d5c94776dd4 SHA512 823b793b78c31f9a2fdacd1dbdb638fd5cd7ac04a4a3123b0e769fda2976dc35509fad6693c1b6be4e50c06284c8e7fb3a98b17de45f2612f9d8f961cbc1950d EBUILD darktable-4.6.1.ebuild 5872 BLAKE2B c4d9a2afecde2316d2a2e637d1586417c2970969e0ccdbeb996efbb6e8e7f1b3fbd7edebe0ff93c6373af53eb383b2d31f793d848b816a0f6306c5cc83462c25 SHA512 406ddefbd93fc5a7f62774051499242cc298bf08a90846f507c17c7ea45f555994fe61d6195285806770162689012e5d1a25b39c3cba434de762f060662e92b6 +EBUILD darktable-4.8.0.ebuild 5893 BLAKE2B 0bccb554868a3b4263a4952ed844b205c747bc91cf1cee7829b965bdeb4dec878c4a7aa5a3588b4e9c6d46aa425699cf4c94bf44076e481e8e1ebf4ed57b39f9 SHA512 f954f841627c8c1654eb2851f699f919abe7e11dca0906c6dd47cc08bef433f2012f7ebe2bd0c613314d0ef5015d7fcbf0d92decfb6cfc914062d10c834df40e MISC metadata.xml 1017 BLAKE2B dabb4372a61aa5755d7adc3429fdde5a9749f25dccd43121e71a4e72a8f86c36ceb857e586df1ff35da0fe944ca59eea52006065073a6362ee40843530c40318 SHA512 ccc5df2360eab59eb00e236a33e71e4283b107b1615e9cd885e5ff1f8ef53fb134bfa30be29a6c5f6d66699c2bfb1eb4768e28c49d134681bd4fa2de6eb3f7be diff --git a/media-gfx/darktable/darktable-4.8.0.ebuild b/media-gfx/darktable/darktable-4.8.0.ebuild new file mode 100644 index 0000000..a03a32b --- /dev/null +++ b/media-gfx/darktable/darktable-4.8.0.ebuild @@ -0,0 +1,196 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LUA_COMPAT=( lua5-4 ) + +inherit cmake flag-o-matic lua-single toolchain-funcs xdg + +DESCRIPTION="A virtual lighttable and darkroom for photographers" +HOMEPAGE="https://www.darktable.org/" +S="${WORKDIR}/${P/_/~}" +LICENSE="GPL-3 CC-BY-3.0" +SLOT="0" + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/darktable-org/${PN}.git" + + LANGS=" af ca cs da de el es fi fr gl he hu it ja nb nl pl pt-BR pt-PT ro ru sk sl sq sv th uk zh-CN zh-TW" +else + #DOC_PV=$(ver_cut 1-2) + DOC_PV="4.6" + MY_PV="${PV/_/}" + MY_P="${P/_/.}" + + SRC_URI="https://github.com/darktable-org/${PN}/releases/download/release-${MY_PV}/${MY_P}.tar.xz + doc? ( + https://docs.darktable.org/usermanual/${DOC_PV}/en/${PN}_user_manual.pdf -> ${PN}-usermanual-${DOC_PV}.en.pdf + l10n_uk? ( + https://docs.darktable.org/usermanual/${DOC_PV}/uk/${PN}_user_manual.pdf + -> ${PN}-usermanual-${DOC_PV}.uk.pdf + ) + )" + + KEYWORDS="~amd64 ~arm64 -x86" + LANGS=" cs de es fi fr hu it ja nl pl pt-BR ru sl sq uk zh-CN zh-TW" +fi + +IUSE="avif colord cpu_flags_x86_avx cpu_flags_x86_sse3 cups doc gamepad geolocation keyring gphoto2 graphicsmagick heif jpeg2k jpegxl kwallet lto lua midi nls opencl openmp openexr test tools webp + ${LANGS// / l10n_}" + +REQUIRED_USE="lua? ( ${LUA_REQUIRED_USE} )" +RESTRICT="!test? ( test )" + +# It is sometimes requested, by both users and certain devs, to have sys-devel/gcc[graphite] +# in BDEPEND. This has not been done *on purpose*, for the following reason: +# - darktable can also be built with sys-devel/clang so we'd have to have that, as an alternative, +# in BDEPEND too +# - there are at least two darktable dependencies (media-libs/mesa and virtual/rust) which +# by default pull in sys-devel/clang +# - as a result of the above, for most gcc users adding the above to BDEPEND is a no-op +# (and curiously enough, empirical observations suggest current versions of Portage are +# more likely to pull in Clang to build darktable with than to request enabling USE=graphite +# on GCC; that might be a bug though) +BDEPEND="dev-util/intltool + virtual/pkgconfig + nls? ( sys-devel/gettext ) + test? ( >=dev-python/jsonschema-3.2.0 )" +DEPEND="dev-db/sqlite:3 + dev-libs/icu:= + dev-libs/json-glib + dev-libs/libxml2:2 + >=dev-libs/pugixml-1.8:= + gnome-base/librsvg:2 + >=media-gfx/exiv2-0.25-r2:=[xmp] + media-libs/lcms:2 + >=media-libs/lensfun-0.2.3:= + media-libs/libjpeg-turbo:= + media-libs/libpng:= + media-libs/tiff:= + net-libs/libsoup:2.4 + net-misc/curl + sys-libs/zlib:= + x11-libs/cairo + >=x11-libs/gtk+-3.22:3 + x11-libs/pango + avif? ( >=media-libs/libavif-0.8.2:= ) + colord? ( x11-libs/colord-gtk:= ) + cups? ( net-print/cups ) + gamepad? ( media-libs/libsdl2 ) + geolocation? ( >=sci-geosciences/osm-gps-map-1.1.0 ) + keyring? ( >=app-crypt/libsecret-0.18 ) + gphoto2? ( media-libs/libgphoto2:= ) + graphicsmagick? ( media-gfx/graphicsmagick ) + heif? ( media-libs/libheif:= ) + jpeg2k? ( media-libs/openjpeg:2= ) + jpegxl? ( media-libs/libjxl:= ) + lua? ( ${LUA_DEPS} ) + midi? ( media-libs/portmidi ) + opencl? ( virtual/opencl ) + openexr? ( media-libs/openexr:= ) + webp? ( media-libs/libwebp:= )" +RDEPEND="${DEPEND} + kwallet? ( >=kde-frameworks/kwallet-5.34.0-r1 )" + +PATCHES=( + "${FILESDIR}"/${PN}-3.4.0_jsonschema-automagic.patch + "${FILESDIR}"/${PN}-3.4.1_libxcf-cmake.patch + "${FILESDIR}"/${PN}-4.2.1_cmake-musl.patch + "${FILESDIR}"/${PN}-4.8.0_fix-has-attribute-musl.patch +) + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]]; then + # Bug #695658 + if tc-is-gcc; then + if ! test-flags-CC -floop-block &> /dev/null; then + eerror "Building ${PN} with GCC requires Graphite support." + eerror "Please switch to a version of sys-devel/gcc built with USE=graphite, or use a different compiler." + die "Selected compiler is sys-devel/gcc[-graphite]" + fi + fi + + use openmp && tc-check-openmp + fi +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp + use lua && lua-single_pkg_setup +} + +src_prepare() { + use cpu_flags_x86_avx && append-flags -mavx + use cpu_flags_x86_sse3 && append-flags -msse3 + + sed -i -e 's:/appdata:/metainfo:g' data/CMakeLists.txt || die + + cmake_src_prepare +} + +src_configure() { + CMAKE_BUILD_TYPE="Release" + local mycmakeargs=( + -DBUILD_CURVE_TOOLS=$(usex tools) + -DBUILD_NOISE_TOOLS=$(usex tools) + -DBUILD_PRINT=$(usex cups) + -DCUSTOM_CFLAGS=ON + -DDONT_USE_INTERNAL_LUA=ON + -DRAWSPEED_ENABLE_LTO=$(usex lto) + -DRAWSPEED_ENABLE_WERROR=OFF + -DRAWSPEED_MUSL_SYSTEM=$(usex elibc_musl) + -DTESTBUILD_OPENCL_PROGRAMS=OFF + -DUSE_AVIF=$(usex avif) + -DUSE_CAMERA_SUPPORT=$(usex gphoto2) + -DUSE_COLORD=$(usex colord) + -DUSE_GMIC=OFF + -DUSE_GRAPHICSMAGICK=$(usex graphicsmagick) + -DUSE_HEIF=$(usex heif) + -DUSE_JXL=$(usex jpegxl) + -DUSE_KWALLET=$(usex kwallet) + -DUSE_LIBSECRET=$(usex keyring) + -DUSE_LUA=$(usex lua) + -DUSE_MAP=$(usex geolocation) + -DUSE_NLS=$(usex nls) + -DUSE_OPENCL=$(usex opencl) + -DUSE_OPENEXR=$(usex openexr) + -DUSE_OPENJPEG=$(usex jpeg2k) + -DUSE_OPENMP=$(usex openmp) + -DUSE_PORTMIDI=$(usex midi) + -DUSE_SDL2=$(usex gamepad) + -DUSE_WEBP=$(usex webp) + -DWANT_JSON_VALIDATION=$(usex test) + ) + cmake_src_configure +} + +src_install() { + cmake_src_install + # This USE flag is masked for -9999 + if use doc; then + dodoc "${DISTDIR}"/${PN}-usermanual-${DOC_PV}.en.pdf + use l10n_uk && dodoc "${DISTDIR}"/${PN}-usermanual-${DOC_PV}.uk.pdf + fi + + if use nls; then + for lang in ${LANGS} ; do + if ! use l10n_${lang}; then + rm -r "${ED}"/usr/share/locale/${lang/-/_} || die + fi + done + fi +} + +pkg_postinst() { + xdg_pkg_postinst + + elog + elog "When updating a major version," + elog "please bear in mind that your edits will be preserved during this process," + elog "but it will not be possible to downgrade any more." + elog + ewarn "It will not be possible to downgrade!" + ewarn +} diff --git a/media-gfx/darktable/files/darktable-4.8.0_fix-has-attribute-musl.patch b/media-gfx/darktable/files/darktable-4.8.0_fix-has-attribute-musl.patch new file mode 100644 index 0000000..f6a474a --- /dev/null +++ b/media-gfx/darktable/files/darktable-4.8.0_fix-has-attribute-musl.patch @@ -0,0 +1,26 @@ +From 7601d97268bf5f63f7e53d9c114fe439dcc46b0d Mon Sep 17 00:00:00 2001 +From: Markus Meier +Date: Fri, 21 Jun 2024 20:35:33 +0200 +Subject: [PATCH] fix musl build + +See https://bugs.gentoo.org/915596 +--- + src/common/darktable.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/common/darktable.h b/src/common/darktable.h +index a62fd402fe..4d0d571b2b 100644 +--- a/src/common/darktable.h ++++ b/src/common/darktable.h +@@ -150,7 +150,7 @@ extern "C" { + /* Create cloned functions for various CPU SSE generations */ + /* See for instructions https://hannes.hauswedell.net/post/2017/12/09/fmv/ */ + /* TL;DR : use only on SIMD functions containing low-level paralellized/vectorized loops */ +-#if __has_attribute(target_clones) && !defined(_WIN32) && !defined(NATIVE_ARCH) && !defined(__APPLE__) ++#if __has_attribute(target_clones) && !defined(_WIN32) && !defined(NATIVE_ARCH) && !defined(__APPLE__) && defined(__GLIBC__) + # if defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) + #define __DT_CLONE_TARGETS__ __attribute__((target_clones("default", "sse2", "sse3", "sse4.1", "sse4.2", "popcnt", "avx", "avx2", "avx512f", "fma4"))) + # elif defined(__PPC64__) +-- +2.44.2 + -- cgit v1.2.3-65-gdbad