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
+

Reply via email to