commit: 715d8dc1ff46232c1f1843629cb9a8e5ec91de2f Author: Paul Zander <negril.nx+gentoo <AT> gmail <DOT> com> AuthorDate: Fri Apr 25 23:32:29 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Fri Apr 25 23:56:18 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=715d8dc1
media-gfx/darktable: add 5.0.1 Closes: https://bugs.gentoo.org/953974 Closes: https://bugs.gentoo.org/953627 Closes: https://bugs.gentoo.org/946892 Signed-off-by: Paul Zander <negril.nx+gentoo <AT> gmail.com> Signed-off-by: Sam James <sam <AT> gentoo.org> media-gfx/darktable/Manifest | 1 + media-gfx/darktable/darktable-5.0.1.ebuild | 195 +++++++++++++++++++++ .../darktable-5.0.1-fix-c-linkage-gcc-15.patch | 46 +++++ .../files/darktable-5.0.1-no-Werror.patch | 27 +++ 4 files changed, 269 insertions(+) diff --git a/media-gfx/darktable/Manifest b/media-gfx/darktable/Manifest index 6d12aad05e82..92161547a8a0 100644 --- a/media-gfx/darktable/Manifest +++ b/media-gfx/darktable/Manifest @@ -1,4 +1,5 @@ DIST darktable-4.8.0.tar.xz 6256036 BLAKE2B 386276776a68887c7b439bf71ecc2ba9cd4cf54c247073908eae0cafd1d1db390c39937dfd4a2fcbe5164317b6090e29f2d2caa66fb7da47a702ba8988833ed5 SHA512 cb0535274a2862dfb2c8d36149cfced828662e423e04347970c0e2546e4d70ed7ab52cb80b6d21785165a294dee74fc23ba749086aab0a78386936341eb8216a DIST darktable-5.0.0.tar.xz 6928316 BLAKE2B 0fd2f6e73d2a78b09c7d7490885301420ceb93230dfc8372be66c165fa76dd51ae4400cb46561abca0a0f3222ab5749d9f3cdb7e4c9822e4bc8ee75fd616da7d SHA512 84ccf8e30911d2d8c3d2fc2e5bd51962701a1d755ff3859da3e630d0d405d00c03ae8a3968ede33ec53a3de5f8b185ffcb9063355f09149573ce01ede15039de +DIST darktable-5.0.1.tar.xz 7247072 BLAKE2B 797fdfc6535807f23990dd846d3199163dc82e6c05e7796ecf4d3888b809b909291477c2b2f38d131b354188fa5d7049231b99802f3d12f0a458bac1e9555585 SHA512 ce1550221f8806979e073be61f2e96e7fa20b38f37a673868f938e94e37000da8f27c7dd8de04b94635d2252a4d991481f7c8a9af2182285032fb52e6cf25c53 DIST darktable-usermanual-4.6.en.pdf 26844087 BLAKE2B 5bdb5e012cd8ba7bace733006136b1f9e510214179e84a9cba0664a3c2e4b19828e2cc54addaf5999579b910b592bf0e9cd9796cf89f3a4e6ae369e8187fbfce SHA512 a1d610c42ae3d1ae4d0bf3e827ed9ccae6faeea20cbc03e7c12d74c3c41175bf3f61d9eba43406b9ba86750edf976c1539357ddf774733f566a076418c34f558 DIST darktable-usermanual-4.6.uk.pdf 27013345 BLAKE2B 4c0da0038576e8ea97da88a4481e1afdf4e5b5df6b8a52475d18b488ac10066db4ef679681a38a194dd84771e340f58beea0450ec60726abd19d600e73fc40f1 SHA512 6e2f036e3f845791aa8b6eb565230136bfb6ae7f9b1ee56a9201cd25bb09391fd2ec45ba7fa1ddd11b4c193ab6b097fae32107af6c11b6cd6eeada60b002d4b3 diff --git a/media-gfx/darktable/darktable-5.0.1.ebuild b/media-gfx/darktable/darktable-5.0.1.ebuild new file mode 100644 index 000000000000..053ca083aac4 --- /dev/null +++ b/media-gfx/darktable/darktable-5.0.1.ebuild @@ -0,0 +1,195 @@ +# Copyright 1999-2025 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 ja nl pt-BR 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 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 llvm-core/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 dev-lang/rust) which +# by default pull in llvm-core/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 + sys-devel/gettext + virtual/pkgconfig + 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-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}-5.0.1-no-Werror.patch" + "${FILESDIR}/${PN}-5.0.1-fix-c-linkage-gcc-15.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 # honor user choice + -DRAWSPEED_MARCH= # honor user choice #946892 + -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_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 + + for lang in ${LANGS} ; do + if ! use l10n_${lang}; then + rm -r "${ED}"/usr/share/locale/${lang/-/_} || die + fi + done +} + +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-5.0.1-fix-c-linkage-gcc-15.patch b/media-gfx/darktable/files/darktable-5.0.1-fix-c-linkage-gcc-15.patch new file mode 100644 index 000000000000..001a5f6eb5e2 --- /dev/null +++ b/media-gfx/darktable/files/darktable-5.0.1-fix-c-linkage-gcc-15.patch @@ -0,0 +1,46 @@ +From 70749107b9f2a7078982fecc998f8d96d1cc8f19 Mon Sep 17 00:00:00 2001 +From: Paul Zander <[email protected]> +Date: Sat, 26 Apr 2025 01:21:08 +0200 +Subject: [PATCH] fix c linkage gcc-15 + +Bug: https://bugs.gentoo.org/953974 +Signed-off-by: Paul Zander <[email protected]> + +diff --git a/src/imageio/format/imageio_format_api.h b/src/imageio/format/imageio_format_api.h +index 85d4290..8af9c81 100644 +--- a/src/imageio/format/imageio_format_api.h ++++ b/src/imageio/format/imageio_format_api.h +@@ -20,10 +20,6 @@ + + #ifdef FULL_API_H + +-#ifdef __cplusplus +-extern "C" { +-#endif +- + #include <stddef.h> + #include <stdint.h> + +@@ -33,6 +29,8 @@ struct dt_dev_pixelpipe_t; + + #include "common/colorspaces.h" // because forward declaring enums doesn't work in C++ :( + ++G_BEGIN_DECLS ++ + /* early definition of modules to do type checking */ + + #pragma GCC visibility push(default) +@@ -96,9 +94,7 @@ OPTIONAL(int, read_image, struct dt_imageio_module_data_t *data, uint8_t *out); + + #pragma GCC visibility pop + +-#ifdef __cplusplus +-} +-#endif ++G_END_DECLS + + #endif // FULL_API_H + +-- +2.49.0 + diff --git a/media-gfx/darktable/files/darktable-5.0.1-no-Werror.patch b/media-gfx/darktable/files/darktable-5.0.1-no-Werror.patch new file mode 100644 index 000000000000..32f661c8b886 --- /dev/null +++ b/media-gfx/darktable/files/darktable-5.0.1-no-Werror.patch @@ -0,0 +1,27 @@ +From 3640422089efa4323b6150d05c089ed444a24e3b Mon Sep 17 00:00:00 2001 +From: Paul Zander <[email protected]> +Date: Sat, 26 Apr 2025 01:18:46 +0200 +Subject: [PATCH] no Werror + +Signed-off-by: Paul Zander <[email protected]> + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 6c4e4e4..6c36fd1 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -787,9 +787,9 @@ find_package(Pugixml 1.5 REQUIRED) + include_directories(SYSTEM ${Pugixml_INCLUDE_DIRS}) + list(APPEND LIBS ${Pugixml_LIBRARIES}) + +-if(NOT SOURCE_PACKAGE) +- add_definitions(-Werror -Wfatal-errors ) +-endif() ++# if(NOT SOURCE_PACKAGE) ++# add_definitions(-Werror -Wfatal-errors ) ++# endif() + + if(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + # do not error out on "loop not vectorized" clang OpenMP warnings +-- +2.49.0 +
