aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Meier <maekke@gentoo.org>2023-06-26 23:10:03 +0200
committerMarkus Meier <maekke@gentoo.org>2023-06-26 23:10:03 +0200
commit3e326ef129008a92343366c0a97dbcbeed129a62 (patch)
tree18505745e434b1d219120278e859afb996798759
parentmedia-libs/lensfun: sync with main tree (diff)
downloadmaekke-3e326ef129008a92343366c0a97dbcbeed129a62.tar.gz
maekke-3e326ef129008a92343366c0a97dbcbeed129a62.tar.bz2
maekke-3e326ef129008a92343366c0a97dbcbeed129a62.zip
media-gfx/darktable: sync with main tree
Signed-off-by: Markus Meier <maekke@gentoo.org>
-rw-r--r--media-gfx/darktable/Manifest18
-rw-r--r--media-gfx/darktable/darktable-4.0.1-r1.ebuild189
-rw-r--r--media-gfx/darktable/darktable-4.2.0.ebuild188
-rw-r--r--media-gfx/darktable/darktable-4.2.1.ebuild20
-rw-r--r--media-gfx/darktable/darktable-9999.ebuild167
-rw-r--r--media-gfx/darktable/files/darktable-3.0.0_find-opencl-header.patch12
-rw-r--r--media-gfx/darktable/files/darktable-4.0.1_libs-deps-automagic.patch37
-rw-r--r--media-gfx/darktable/files/darktable-4.2.0_libs-deps-automagic.patch59
-rw-r--r--media-gfx/darktable/files/darktable-4.2.1-exiv2-0.28.patch215
-rw-r--r--media-gfx/darktable/files/darktable-4.2.1_cmake-musl.patch22
10 files changed, 256 insertions, 671 deletions
diff --git a/media-gfx/darktable/Manifest b/media-gfx/darktable/Manifest
index 08ef5f4..f2e3257 100644
--- a/media-gfx/darktable/Manifest
+++ b/media-gfx/darktable/Manifest
@@ -1,18 +1,10 @@
-AUX darktable-3.0.0_find-opencl-header.patch 601 BLAKE2B 0102ea562ec0addb619f06b59cc73834d734c454a7c561654bc27f052de55db6c62f454927b2c701b7f4f6c52d5d2fac0b7c230b90ef89bdc9431856bd4ae69a SHA512 93023a318158850a5bac4a1d871ea6e69a3c9f2bc57f8af47bc83bb131f96e8972c23b07945df2eddfb05bffdd950e8250da77c47d1543b776a7e9405adad020
AUX darktable-3.0.2_cmake-march-autodetection.patch 908 BLAKE2B aa1c0cedfe1f267332f11b9a8f38ce368af02b7e4f9751b128b7af91dcdfb066a0529ae126d41a34bc3fc66f336924f3376f270674bcc7e0912d2e23d46ec83b SHA512 da1f10e86b7b9e2a3f317d620a58ebed156a5c6e0f22f429da617cb176d1c18d6d1b6706c1444c9007ccb776bc6b951e3560214e89e95b4050899ec692b74dde
AUX darktable-3.4.0_jsonschema-automagic.patch 891 BLAKE2B b0abdd7ea80a446e2556daf06f78343deeb781a12b670f3c3d2f8a34ec9877e16991f6a105c90d58f437915b30bd8bddfb995d515bc73563a44f3807258c9fee SHA512 57cdf87586c6382347334577fff71d415be0123ad101c073535e9d4e87e7edac275272e0b3be91bd34965bacf1f6166cfc64af34b4cdedfb27b409e27bc3bdc9
AUX darktable-3.4.1_libxcf-cmake.patch 788 BLAKE2B b6ecb84de804b0bf16f907f825d93d00a62c1d996077514b3e55f370347f47e561707cb8da6a270aa42c3320142437691cc8b132718c485b5b7df40068d41ee5 SHA512 d94247c4f2c3b4894bd6455cd036a62ef5edb90a77bf8f930efc3e540d00712000fe8eeb7d4c937fa826aef1dd129448223c8696ff094e823894b17ef2669a4e
-AUX darktable-4.0.1_libs-deps-automagic.patch 968 BLAKE2B e81e63814185d38cd850108492e656c4760b35b76b52424f06c9cf25ee5e33dba1ecd92507827451b1096e7caeb1793ca6877ae70f15d5b1e10c7c986a08bc0e SHA512 c36b21a0eb265a5da0fb75e766ec260bc9ab36d25503ff0d0406dca1cbb9cee04bed96ecb7f4ddb0f5ac2352a85577c458dd28affdd4d3bb5e3cac982022eef9
-AUX darktable-4.2.0_libs-deps-automagic.patch 2081 BLAKE2B f19c24deb2e4678ce32ecd92fbfffece3f73ebe9df52a0a0274ab31fd4e102b9403420c64c4907ceb06383090421029263c71b8ae98913211ce6b661f6fc59bd SHA512 2840a4828b713f92677eef3f5c9d962f8c019481791702ea34cf2d16093aee1b0175250d5491e4c6087206ea467b95c1b97835a3f4674abf00542c2cb3eff755
-DIST darktable-4.0.1.tar.xz 5958392 BLAKE2B 677ee85d8b353e9e4fa015226e7383b98b90b319f99142ce8c146c75b3a65a6f057412e8f2a4741d03c5e0a1bd60156245328380e1446c511ab2fb810077b0a3 SHA512 f7107024e52cedeb7775b410329e15a667c97f115d5722530add7d3d542974df1ceabeb7f33161d31e0388a682825941947fb9da2546ea2865a090acb7448729
-DIST darktable-4.2.0.tar.xz 5862080 BLAKE2B eb1c6ab821587cd9d79628d2be24659db6e698a52ee7a7f830b386dd409c96b243a017644a09cf38fcc366c9d7563d057200904aed3ac6f17d4a07fc2758f466 SHA512 17f3e1a97f0af8928b6a7936e1f8923e164344c6adb8393c7aaabce6e62541f2d941929b331283d4f73c477081850c98d694d01f9a002add71c0a41e2272289f
+AUX darktable-4.2.1-exiv2-0.28.patch 9139 BLAKE2B 82eb190e1fe9d93af8bce40fdfd7647e69bf620915d5d1cc76faefda17577f7480c7c5b9649b2f5ce7efb86b274b19c426393e2c943383637fe8c18a9ceac372 SHA512 dcdfdf9d62983428c4b0bfc87a747a437cd07cc640cba948309095680c077f118da1a4208362b76eba14044ad0fd8dabbb3715335d30e35e2f84a171ca275c6e
+AUX darktable-4.2.1_cmake-musl.patch 796 BLAKE2B 2e26cc969f01dc948f4f92f42c768a28bb879b3592d98dc1de0c3b5b7335a2985fbb5659c58b421fbca896b1f2585a5cb993b5cdf3ee6f87d9834afe3fd1a23a SHA512 82c7a4f6d6112fa024503a99e05d3050922b120821c93922ae846f9da6b02cd6f2e27315448c20ed1032c5526b85cb6d01dd6eec5109db1af3f8e92e4818ea06
DIST darktable-4.2.1.tar.xz 6112480 BLAKE2B bf6f60b1f01b16c7cc4ffae7fbb46c7d2ce465d6fafd507564b8dd20aeadb3cd1116e434214d07c9c53ca621228ea6f7ce75a01650d04d596d1e246789bae752 SHA512 05423c16ff813c10fa2bedbb22bbc886f2cff81aad2493c720f4b2fe32ba89b55c428287cd1c4b24cc98121d441375752015f88c30f796ea46db18461e212d5d
-DIST darktable-usermanual-4.0.en.pdf 26585692 BLAKE2B 85083af2227e4e16a658cfce435339410e2cf4f03df1a62cf2a54b743232b82093d8012c1212978f08c021585d5cb4ee4b47d4cbfd399a8a9505d0cb32932618 SHA512 789fb6a309608ad10fccfd61eca24b6176fe9ce8ad53dd9840a7e3175598d9d6b7c8357d4852fc787dbfe80e32e696d680e3a7b9a2663ef4d00ef424d3341fc6
-DIST darktable-usermanual-4.0.uk.pdf 26781033 BLAKE2B 6d73b690dfebc590971325242fdb6d6de5577219eff6b20dec08a3a53a9529cb53031a36fd0ac45b509f4cb885bafdce38ce1f8bd1c4a255aa2a137bc367d87c SHA512 e897bca98470d9d51bdfa807850af5222cbba527ba46df9b713776ebdc5dc8b946758e4c25f1df478c2c01408d08a91467cc75b5a199042b42c93627dc6d9846
-DIST darktable-usermanual-4.2.en.pdf 26552260 BLAKE2B a090e6e9a3b714d04c2c65ae0c77afa74b2a26c5130731e83b9f5bfe25935391c3dbc21d408f13776975e8c2e794d232a54a54d6a932f0389cb2fc993c2fa159 SHA512 49ff878c4a82d91b88f1f9a28986616f382dc5b40d0a47e3a8cfb27efd79fdd7d8bf3c416d659fdb61ac505d75ed003587e51555389aaec5f9e35bb770f18eac
-DIST darktable-usermanual-4.2.uk.pdf 26472343 BLAKE2B d5d8446dead97693be168f4a426a56ce215bb6c3e2d931be19b515abbbe75265fbd17fa433fb3f14630d74323efcd40683694d7af6d3b4456888ec9965aba1ff SHA512 d348ce8edf1847cac6d20744dedd85351ff77b51ac717fe173ef28c9588dcddba06584aef8741661b2ba9652229b9a97ba2220764c957a0a9e645a9b8809f913
-EBUILD darktable-4.0.1-r1.ebuild 5778 BLAKE2B 67016be74606a3580c446135fb5059f82cd3e9ddd05f6b0acb9009b9b7e0e286d9ac73ccf1382511b35e13e03f0b438bc6bf94cbf55d6f8aaa6b54443533714a SHA512 e1debafcc7d037589843a1dc481dc3b2c3b7baf3ed7de27349bfa99fea96366f4926417c8e4929b62dfbfee7f8eba8d019c238654403d4269a7e0d304d1c93d6
-EBUILD darktable-4.2.0.ebuild 5724 BLAKE2B 5d12ea6595dc77f11aae57d878b2ae94bf71fb14035c9c07feb2e64872ba234fc6146680d378dabe20cf1d82499c8c1f912f5a5f95ce2a6a8f7812bd734d2970 SHA512 b4eba1e3e1a022fe7f945e560c5012f3dd7e2ef4458cc8532982e4111a47138411d987e2ee98c0b9bb3309e4ba3e49ab5a48d5dbb25a652dac3663384e0d35be
-EBUILD darktable-4.2.1.ebuild 5683 BLAKE2B 9f46580be911e155b9b454b15244de5d26acd50070b39eb6e63896290d2c06a12c3ed851a7acc54af4c50dc0c593f3a59889d0ad2d884b33f9e48d488ba8591b SHA512 edeb62277cae23be4b7f0ba124e14dcdf96aca5feef93a2cccb73562737cc3fe2d168e077490807a4a5841021cf323af429cd9580f2926f95078466278a822eb
-EBUILD darktable-9999.ebuild 4401 BLAKE2B c4c752f2bc76fcaa410cc1c9a36cb8d702871bf8ec5e1babe941559992f1c8573937333d47c6e77a7eb3af309b187616c1ffeec82ad65e0a6934e8e5ed4e02fe SHA512 6192579a10e23a478e36c5a13a1a9b6554dd042e27ec3e7e8d9d12680605214241abffc4651fb6bd9a6427104916eaadb8393d9da84b7162c9970ef1442febf8
+DIST darktable-usermanual-4.2.en.pdf 26559897 BLAKE2B 144b7e76567e92138c7e75c996a63f818dce7eb4f485f0d988d184874d2ee2a72e89efae1d0fb16bc25aac831da040ffbd4a7bbda08d8c750169f06668a98f88 SHA512 a23e9544026d9aff7b92b3ca874217ebc12e1dc876e9d7873e0e7e61a53090179a1377cc4409f2bb8f6d005133e4501ce444c1533c8d66f04b7cc0c5fc5a3531
+DIST darktable-usermanual-4.2.uk.pdf 26454596 BLAKE2B e497c87903f85ae7ebb9b9624124ba19936869db6d19d229182e5d249938f5d9461435ac7ae15f9a2fd64b367aa712ac1de5f32d053cc08a99a3bd672e8cac0b SHA512 ba37d680f29d2d79f517360a1b43d88b49cf5810b638aa5bc6eeeb8016bd1634801119c2d283473bafc72920db2525b122815fa475bac0c41a6cc8d2ac579a61
+EBUILD darktable-4.2.1.ebuild 5867 BLAKE2B ef5d2906890ce74564a1d7f7968849f6975e3f57e62db9fccbe9825a7daf2982e6ed63a625630f67b56a74fce25f0fb90df41464e7a4d49a78410806a18265a6 SHA512 413b43340abce057c736ee124cc7c4c6344a2db48d2a204669ad3813eb8229f288e8d4c8cd5cf87a35d0024df166643eb417f17514fc7b91f28d04b265dd75f4
MISC metadata.xml 1378 BLAKE2B 7373550c5362c32832830bd94dbd712f963246805af5119214a43cfe4dfb1aac9e7bb03d4af6f4f1dfae3cc44e09d6ba8baff53d67b5ddd96115c460b5e19ad9 SHA512 ffdc1ff8eb068372b1f24691bb0832d5a845e49b41adf211dec1c2faf0d1a573a0e4c62c38e97758a8f87de15569ce6f3cd2c7a768c95eb0d2b166e30b20ae3a
diff --git a/media-gfx/darktable/darktable-4.0.1-r1.ebuild b/media-gfx/darktable/darktable-4.0.1-r1.ebuild
deleted file mode 100644
index 1597b94..0000000
--- a/media-gfx/darktable/darktable-4.0.1-r1.ebuild
+++ /dev/null
@@ -1,189 +0,0 @@
-# Copyright 1999-2022 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/"
-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)
- 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 eo es fi fr he hu it ja nl pt-BR ru sl tr uk zh-CN"
-fi
-
-IUSE="avif colord cpu_flags_x86_avx cpu_flags_x86_sse3 cups doc flickr gamepad geolocation gmic gnome-keyring gphoto2 graphicsmagick heif jpeg2k 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 )
- flickr? ( media-libs/flickcurl )
- gamepad? ( media-libs/libsdl2 )
- geolocation? ( >=sci-geosciences/osm-gps-map-1.1.0 )
- gmic? ( media-gfx/gmic )
- gnome-keyring? ( >=app-crypt/libsecret-0.18 )
- gphoto2? ( media-libs/libgphoto2:= )
- graphicsmagick? ( media-gfx/graphicsmagick )
- heif? ( media-libs/libheif:= )
- jpeg2k? ( media-libs/openjpeg:2= )
- 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.0.0_find-opencl-header.patch
- "${FILESDIR}"/${PN}-3.0.2_cmake-march-autodetection.patch
- "${FILESDIR}"/${PN}-3.4.0_jsonschema-automagic.patch
- "${FILESDIR}"/${PN}-3.4.1_libxcf-cmake.patch
- "${FILESDIR}"/${PN}-4.0.1_libs-deps-automagic.patch
-)
-
-S="${WORKDIR}/${P/_/~}"
-
-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() {
- 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)
- -DTESTBUILD_OPENCL_PROGRAMS=OFF
- -DUSE_AVIF=$(usex avif)
- -DUSE_CAMERA_SUPPORT=$(usex gphoto2)
- -DUSE_COLORD=$(usex colord)
- -DUSE_FLICKR=$(usex flickr)
- -DUSE_GMIC=$(usex gmic)
- -DUSE_GRAPHICSMAGICK=$(usex graphicsmagick)
- -DUSE_KWALLET=$(usex kwallet)
- -DUSE_LIBSECRET=$(usex gnome-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
- use doc && dodoc "${DISTDIR}"/${PN}-usermanual-${DOC_PV}.*.pdf
-
- 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/darktable-4.2.0.ebuild b/media-gfx/darktable/darktable-4.2.0.ebuild
deleted file mode 100644
index 7baf920..0000000
--- a/media-gfx/darktable/darktable-4.2.0.ebuild
+++ /dev/null
@@ -1,188 +0,0 @@
-# Copyright 1999-2022 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/"
-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)
- 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=" de es fi fr hu it ja nl pl pt-BR ru sl sq tr uk zh-TW"
-fi
-
-IUSE="avif colord cpu_flags_x86_avx cpu_flags_x86_sse3 cups doc flickr gamepad geolocation gmic gnome-keyring gphoto2 graphicsmagick heif jpeg2k 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 )
- flickr? ( media-libs/flickcurl )
- gamepad? ( media-libs/libsdl2 )
- geolocation? ( >=sci-geosciences/osm-gps-map-1.1.0 )
- gmic? ( media-gfx/gmic )
- gnome-keyring? ( >=app-crypt/libsecret-0.18 )
- gphoto2? ( media-libs/libgphoto2:= )
- graphicsmagick? ( media-gfx/graphicsmagick )
- heif? ( media-libs/libheif:= )
- jpeg2k? ( media-libs/openjpeg:2= )
- 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.0.2_cmake-march-autodetection.patch
- "${FILESDIR}"/${PN}-3.4.0_jsonschema-automagic.patch
- "${FILESDIR}"/${PN}-3.4.1_libxcf-cmake.patch
- "${FILESDIR}"/${PN}-4.2.0_libs-deps-automagic.patch
-)
-
-S="${WORKDIR}/${P/_/~}"
-
-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() {
- 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)
- -DTESTBUILD_OPENCL_PROGRAMS=OFF
- -DUSE_AVIF=$(usex avif)
- -DUSE_CAMERA_SUPPORT=$(usex gphoto2)
- -DUSE_COLORD=$(usex colord)
- -DUSE_FLICKR=$(usex flickr)
- -DUSE_GMIC=$(usex gmic)
- -DUSE_GRAPHICSMAGICK=$(usex graphicsmagick)
- -DUSE_KWALLET=$(usex kwallet)
- -DUSE_LIBSECRET=$(usex gnome-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
- use doc && dodoc "${DISTDIR}"/${PN}-usermanual-${DOC_PV}.*.pdf
-
- 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/darktable-4.2.1.ebuild b/media-gfx/darktable/darktable-4.2.1.ebuild
index 9dd9eeb..7a80377 100644
--- a/media-gfx/darktable/darktable-4.2.1.ebuild
+++ b/media-gfx/darktable/darktable-4.2.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -25,14 +25,17 @@ else
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 )
+ l10n_uk? (
+ https://docs.darktable.org/usermanual/${DOC_PV}/uk/${PN}_user_manual.pdf
+ -> ${PN}-usermanual-${DOC_PV}.uk.pdf
+ )
)"
- KEYWORDS="~amd64 ~arm64 -x86"
+ KEYWORDS="amd64 ~arm64 -x86"
LANGS=" cs de es fi fr he hu it ja nl pl pt-BR ru sl sq tr uk zh-CN zh-TW"
fi
-IUSE="avif colord cpu_flags_x86_avx cpu_flags_x86_sse3 cups doc flickr gamepad geolocation gmic gnome-keyring gphoto2 graphicsmagick heif jpeg2k kwallet lto lua midi nls opencl openmp openexr test tools webp
+IUSE="avif colord cpu_flags_x86_avx cpu_flags_x86_sse3 cups doc flickr gamepad geolocation gmic keyring gphoto2 graphicsmagick heif jpeg2k kwallet lto lua midi nls opencl openmp openexr test tools webp
${LANGS// / l10n_}"
REQUIRED_USE="lua? ( ${LUA_REQUIRED_USE} )"
@@ -78,7 +81,7 @@ DEPEND="dev-db/sqlite:3
gamepad? ( media-libs/libsdl2 )
geolocation? ( >=sci-geosciences/osm-gps-map-1.1.0 )
gmic? ( media-gfx/gmic )
- gnome-keyring? ( >=app-crypt/libsecret-0.18 )
+ keyring? ( >=app-crypt/libsecret-0.18 )
gphoto2? ( media-libs/libgphoto2:= )
graphicsmagick? ( media-gfx/graphicsmagick )
heif? ( media-libs/libheif:= )
@@ -95,6 +98,9 @@ PATCHES=(
"${FILESDIR}"/${PN}-3.0.2_cmake-march-autodetection.patch
"${FILESDIR}"/${PN}-3.4.0_jsonschema-automagic.patch
"${FILESDIR}"/${PN}-3.4.1_libxcf-cmake.patch
+ "${FILESDIR}"/${PN}-4.2.1_cmake-musl.patch
+ # patch by ArchLinux
+ "${FILESDIR}"/${P}-exiv2-0.28.patch # bug 906466
)
S="${WORKDIR}/${P/_/~}"
@@ -136,6 +142,8 @@ src_configure() {
-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)
@@ -144,7 +152,7 @@ src_configure() {
-DUSE_GMIC=$(usex gmic)
-DUSE_GRAPHICSMAGICK=$(usex graphicsmagick)
-DUSE_KWALLET=$(usex kwallet)
- -DUSE_LIBSECRET=$(usex gnome-keyring)
+ -DUSE_LIBSECRET=$(usex keyring)
-DUSE_LUA=$(usex lua)
-DUSE_MAP=$(usex geolocation)
-DUSE_NLS=$(usex nls)
diff --git a/media-gfx/darktable/darktable-9999.ebuild b/media-gfx/darktable/darktable-9999.ebuild
deleted file mode 100644
index baadc18..0000000
--- a/media-gfx/darktable/darktable-9999.ebuild
+++ /dev/null
@@ -1,167 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-LUA_COMPAT=( lua5-3 )
-
-inherit cmake flag-o-matic lua-single toolchain-funcs xdg
-
-DESCRIPTION="A virtual lighttable and darkroom for photographers"
-HOMEPAGE="https://www.darktable.org/"
-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="3.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}/${PN}_user_manual.pdf -> ${PN}-usermanual-${DOC_PV}.pdf )"
-
- KEYWORDS="~amd64 ~arm64 -x86"
- LANGS=" af de eo es fr he hu it nl pt-BR ru sl uk"
-fi
-
-IUSE="avif colord cups cpu_flags_x86_sse3 doc flickr geolocation gmic gnome-keyring gphoto2 graphicsmagick jpeg2k kwallet
- lto lua nls opencl openmp openexr test tools webp
- ${LANGS// / l10n_}"
-
-REQUIRED_USE="lua? ( ${LUA_REQUIRED_USE} )"
-
-RESTRICT="!test? ( test )"
-
-BDEPEND="dev-util/intltool
- virtual/pkgconfig
- nls? ( sys-devel/gettext )
- test? ( >=dev-python/jsonschema-3.2.0 )"
-DEPEND="dev-db/sqlite:3
- dev-libs/json-glib
- dev-libs/libxml2:2
- >=dev-libs/pugixml-1.8:0=
- gnome-base/librsvg:2
- >=media-gfx/exiv2-0.25-r2:0=[xmp]
- media-libs/lcms:2
- >=media-libs/lensfun-0.2.3:0=
- media-libs/libpng:0=
- media-libs/tiff:0
- net-libs/libsoup:2.4
- net-misc/curl
- sys-libs/zlib:=
- virtual/jpeg:0
- x11-libs/cairo
- >=x11-libs/gtk+-3.22:3
- x11-libs/pango
- avif? ( >=media-libs/libavif-0.8.2:= )
- colord? ( x11-libs/colord-gtk:0= )
- cups? ( net-print/cups )
- flickr? ( media-libs/flickcurl )
- geolocation? ( >=sci-geosciences/osm-gps-map-1.1.0 )
- gmic? ( media-gfx/gmic )
- gnome-keyring? ( >=app-crypt/libsecret-0.18 )
- gphoto2? ( media-libs/libgphoto2:= )
- graphicsmagick? ( media-gfx/graphicsmagick )
- jpeg2k? ( media-libs/openjpeg:2= )
- lua? ( ${LUA_DEPS} )
- opencl? ( virtual/opencl )
- openexr? ( media-libs/openexr:= )
- webp? ( media-libs/libwebp:0= )"
-RDEPEND="${DEPEND}
- kwallet? ( >=kde-frameworks/kwallet-5.34.0-r1 )"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-3.0.0_find-opencl-header.patch
- "${FILESDIR}"/${PN}-3.0.2_cmake-march-autodetection.patch
- "${FILESDIR}"/${PN}-3.4.0_jsonschema-automagic.patch
- "${FILESDIR}"/${PN}-3.4.1_libxcf-cmake.patch
- "${FILESDIR}"/${PN}-3.6.1_openexr.patch
-)
-
-S="${WORKDIR}/${P/_/~}"
-
-pkg_pretend() {
- if [[ ${MERGE_TYPE} != binary ]]; then
- # Bug #695658
- if tc-is-gcc; then
- test-flags-CC -floop-block &> /dev/null || \
- die "Please switch to a gcc version built with USE=graphite"
- fi
-
- use openmp && tc-check-openmp
- fi
-}
-
-pkg_setup() {
- use lua && lua-single_pkg_setup
-}
-
-src_prepare() {
- use cpu_flags_x86_sse3 && append-flags -msse3
-
- sed -i -e 's:/appdata:/metainfo:g' data/CMakeLists.txt || die
-
- cmake_src_prepare
-}
-
-src_configure() {
- 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)
- -DTESTBUILD_OPENCL_PROGRAMS=OFF
- -DUSE_AVIF=$(usex avif)
- -DUSE_CAMERA_SUPPORT=$(usex gphoto2)
- -DUSE_COLORD=$(usex colord)
- -DUSE_FLICKR=$(usex flickr)
- -DUSE_GMIC=$(usex gmic)
- -DUSE_GRAPHICSMAGICK=$(usex graphicsmagick)
- -DUSE_KWALLET=$(usex kwallet)
- -DUSE_LIBSECRET=$(usex gnome-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_WEBP=$(usex webp)
- -DWANT_JSON_VALIDATION=$(usex test)
- )
- CMAKE_BUILD_TYPE="RELWITHDEBINFO"
- cmake_src_configure
-}
-
-src_install() {
- cmake_src_install
- # This USE flag is masked for -9999
- use doc && dodoc "${DISTDIR}"/${PN}-usermanual-${DOC_PV}.pdf
-
- 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-3.0.0_find-opencl-header.patch b/media-gfx/darktable/files/darktable-3.0.0_find-opencl-header.patch
deleted file mode 100644
index 0a692f9..0000000
--- a/media-gfx/darktable/files/darktable-3.0.0_find-opencl-header.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur a/CMakeLists.txt b/CMakeLists.txt
---- a/CMakeLists.txt 2017-12-24 09:09:10.000000000 +0000
-+++ b/CMakeLists.txt 2017-12-25 20:42:40.998693994 +0000
-@@ -355,7 +355,7 @@
- message(STATUS "Found clang compiler - ${CLANG_OPENCL_COMPILER}")
-
- find_path(CLANG_OPENCL_INCLUDE_DIR opencl-c.h
-- HINTS ${LLVM_INSTALL_PREFIX}/lib/clang ${LLVM_INSTALL_PREFIX}/lib64/clang
-+ HINTS ${LLVM_INSTALL_PREFIX}/lib/clang ${LLVM_INSTALL_PREFIX}/lib64/clang /usr/lib/clang /usr/lib64/clang
- PATH_SUFFIXES include ${LLVM_PACKAGE_VERSION}/include
- NO_DEFAULT_PATH
- )
diff --git a/media-gfx/darktable/files/darktable-4.0.1_libs-deps-automagic.patch b/media-gfx/darktable/files/darktable-4.0.1_libs-deps-automagic.patch
deleted file mode 100644
index 1ea0624..0000000
--- a/media-gfx/darktable/files/darktable-4.0.1_libs-deps-automagic.patch
+++ /dev/null
@@ -1,37 +0,0 @@
---- a/src/libs/CMakeLists.txt
-+++ b/src/libs/CMakeLists.txt
-@@ -84,11 +84,14 @@
- add_library(timeline MODULE "tools/timeline.c")
- add_library(image_infos MODULE "tools/image_infos.c")
-
-+if (USE_PORTMIDI)
- find_path(PORTMIDI_INCLUDE_DIR NAMES portmidi.h
- DOC "The Portmidi include directory"
-+ REQUIRED
- )
- find_library(PORTMIDI_LIBRARY NAMES portmidi
- DOC "The Portmidi library"
-+ REQUIRED
- )
- if(PORTMIDI_INCLUDE_DIR)
- add_definitions("-DHAVE_PORTMIDI")
-@@ -97,8 +100,10 @@
- add_library(midi MODULE "tools/midi.c")
- target_link_libraries (midi ${PORTMIDI_LIBRARY})
- endif()
-+endif()
-
--find_package(SDL2)
-+if (USE_SDL2)
-+find_package(SDL2 REQUIRED)
- if(SDL2_FOUND)
- add_definitions("-DHAVE_SDL")
- set(MODULES ${MODULES} gamepad)
-@@ -110,6 +115,7 @@
- target_link_libraries(gamepad ${SDL2_LIBRARIES})
- endif()
- endif()
-+endif()
-
- if(BUILD_BATTERY_INDICATOR)
- add_library(battery_indicator MODULE "tools/battery_indicator.c")
diff --git a/media-gfx/darktable/files/darktable-4.2.0_libs-deps-automagic.patch b/media-gfx/darktable/files/darktable-4.2.0_libs-deps-automagic.patch
deleted file mode 100644
index 3776de0..0000000
--- a/media-gfx/darktable/files/darktable-4.2.0_libs-deps-automagic.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 1e2eea45ba79412ed2d7a80dbc8388ccec93af09 Mon Sep 17 00:00:00 2001
-From: Markus Meier <maekke@gentoo.org>
-Date: Sat, 14 Jan 2023 14:56:46 +0100
-Subject: [PATCH] add USE_SDL2 option to control SDL2 package usage
-
-https://gitweb.gentoo.org/repo/gentoo.git/tree/media-gfx/darktable/files/darktable-4.2.0_libs-deps-automagic.patch
----
- DefineOptions.cmake | 1 +
- src/libs/CMakeLists.txt | 22 ++++++++++++----------
- 2 files changed, 13 insertions(+), 10 deletions(-)
-
-diff --git a/DefineOptions.cmake b/DefineOptions.cmake
-index 59ea1e3d5..9266766f2 100644
---- a/DefineOptions.cmake
-+++ b/DefineOptions.cmake
-@@ -42,6 +42,7 @@ option(USE_GMIC "Use G'MIC image processing framework." ON)
- option(USE_ICU "Use ICU - International Components for Unicode." ON)
- option(USE_GAME "Build 1st April easter egg game" ON)
- option(FORCE_COLORED_OUTPUT "Always produce ANSI-colored output (GNU/Clang only)." OFF)
-+option(USE_SDL2 "Enable SDL2 support" ON)
-
- if (USE_OPENCL)
- option(TESTBUILD_OPENCL_PROGRAMS "Test-compile opencl programs (needs llvm and clang 3.9+)" ON)
-diff --git a/src/libs/CMakeLists.txt b/src/libs/CMakeLists.txt
-index 20a5f0eff..272968061 100644
---- a/src/libs/CMakeLists.txt
-+++ b/src/libs/CMakeLists.txt
-@@ -92,16 +92,18 @@ if(PortMidi_FOUND)
- target_link_libraries (midi ${PortMidi_LIBRARY})
- endif()
-
--find_package(SDL2)
--if(SDL2_FOUND)
-- add_definitions("-DHAVE_SDL")
-- set(MODULES ${MODULES} gamepad)
-- add_library(gamepad MODULE "tools/gamepad.c")
-- if(TARGET SDL2::SDL2)
-- target_link_libraries(gamepad SDL2::SDL2)
-- else()
-- include_directories(${SDL2_INCLUDE_DIRS})
-- target_link_libraries(gamepad ${SDL2_LIBRARIES})
-+if(USE_SDL2)
-+ find_package(SDL2)
-+ if(SDL2_FOUND)
-+ add_definitions("-DHAVE_SDL")
-+ set(MODULES ${MODULES} gamepad)
-+ add_library(gamepad MODULE "tools/gamepad.c")
-+ if(TARGET SDL2::SDL2)
-+ target_link_libraries(gamepad SDL2::SDL2)
-+ else()
-+ include_directories(${SDL2_INCLUDE_DIRS})
-+ target_link_libraries(gamepad ${SDL2_LIBRARIES})
-+ endif()
- endif()
- endif()
-
---
-2.38.2
-
diff --git a/media-gfx/darktable/files/darktable-4.2.1-exiv2-0.28.patch b/media-gfx/darktable/files/darktable-4.2.1-exiv2-0.28.patch
new file mode 100644
index 0000000..1be8577
--- /dev/null
+++ b/media-gfx/darktable/files/darktable-4.2.1-exiv2-0.28.patch
@@ -0,0 +1,215 @@
+diff --git a/src/common/exif.cc b/src/common/exif.cc
+index 484ebf2207..91ea8e64d0 100644
+--- a/src/common/exif.cc
++++ b/src/common/exif.cc
+@@ -80,6 +80,11 @@ extern "C" {
+
+ #define DT_XMP_EXIF_VERSION 5
+
++#if EXIV2_TEST_VERSION(0,28,0)
++#define AnyError Error
++#define toLong toInt64
++#endif
++
+ // persistent list of exiv2 tags. set up in dt_init()
+ static GList *exiv2_taglist = NULL;
+
+@@ -2658,39 +2663,39 @@ static GList *read_history_v2(Exiv2::XmpData &xmpData, const char *filename)
+ if(g_str_has_prefix(key_iter, "darktable:operation"))
+ {
+ current_entry->have_operation = TRUE;
+- current_entry->operation = g_strdup(history->value().toString().c_str());
++ current_entry->operation = g_strdup(history->toString().c_str());
+ }
+ else if(g_str_has_prefix(key_iter, "darktable:num"))
+ {
+- current_entry->num = history->value().toLong();
++ current_entry->num = history->toLong();
+ }
+ else if(g_str_has_prefix(key_iter, "darktable:enabled"))
+ {
+- current_entry->enabled = history->value().toLong() == 1;
++ current_entry->enabled = history->toLong() == 1;
+ }
+ else if(g_str_has_prefix(key_iter, "darktable:modversion"))
+ {
+ current_entry->have_modversion = TRUE;
+- current_entry->modversion = history->value().toLong();
++ current_entry->modversion = history->toLong();
+ }
+ else if(g_str_has_prefix(key_iter, "darktable:params"))
+ {
+ current_entry->have_params = TRUE;
+- current_entry->params = dt_exif_xmp_decode(history->value().toString().c_str(), history->value().size(),
++ current_entry->params = dt_exif_xmp_decode(history->toString().c_str(), history->size(),
+ &current_entry->params_len);
+ }
+ else if(g_str_has_prefix(key_iter, "darktable:multi_name"))
+ {
+- current_entry->multi_name = g_strdup(history->value().toString().c_str());
++ current_entry->multi_name = g_strdup(history->toString().c_str());
+ }
+ else if(g_str_has_prefix(key_iter, "darktable:multi_priority"))
+ {
+- current_entry->multi_priority = history->value().toLong();
++ current_entry->multi_priority = history->toLong();
+ }
+ else if(g_str_has_prefix(key_iter, "darktable:iop_order"))
+ {
+ // we ensure reading the iop_order as a high precision float
+- string str = g_strdup(history->value().toString().c_str());
++ string str = g_strdup(history->toString().c_str());
+ static const std::locale& c_locale = std::locale("C");
+ std::istringstream istring(str);
+ istring.imbue(c_locale);
+@@ -2698,12 +2703,12 @@ static GList *read_history_v2(Exiv2::XmpData &xmpData, const char *filename)
+ }
+ else if(g_str_has_prefix(key_iter, "darktable:blendop_version"))
+ {
+- current_entry->blendop_version = history->value().toLong();
++ current_entry->blendop_version = history->toLong();
+ }
+ else if(g_str_has_prefix(key_iter, "darktable:blendop_params"))
+ {
+- current_entry->blendop_params = dt_exif_xmp_decode(history->value().toString().c_str(),
+- history->value().size(),
++ current_entry->blendop_params = dt_exif_xmp_decode(history->toString().c_str(),
++ history->size(),
+ &current_entry->blendop_params_len);
+ }
+ }
+@@ -2858,35 +2863,35 @@ static GList *read_masks_v3(Exiv2::XmpData &xmpData, const char *filename, const
+ // go on reading things into current_entry
+ if(g_str_has_prefix(key_iter, "darktable:mask_num"))
+ {
+- current_entry->mask_num = history->value().toLong();
++ current_entry->mask_num = history->toLong();
+ }
+ else if(g_str_has_prefix(key_iter, "darktable:mask_id"))
+ {
+- current_entry->mask_id = history->value().toLong();
++ current_entry->mask_id = history->toLong();
+ }
+ else if(g_str_has_prefix(key_iter, "darktable:mask_type"))
+ {
+- current_entry->mask_type = history->value().toLong();
++ current_entry->mask_type = history->toLong();
+ }
+ else if(g_str_has_prefix(key_iter, "darktable:mask_name"))
+ {
+- current_entry->mask_name = g_strdup(history->value().toString().c_str());
++ current_entry->mask_name = g_strdup(history->toString().c_str());
+ }
+ else if(g_str_has_prefix(key_iter, "darktable:mask_version"))
+ {
+- current_entry->mask_version = history->value().toLong();
++ current_entry->mask_version = history->toLong();
+ }
+ else if(g_str_has_prefix(key_iter, "darktable:mask_points"))
+ {
+- current_entry->mask_points = dt_exif_xmp_decode(history->value().toString().c_str(), history->value().size(), &current_entry->mask_points_len);
++ current_entry->mask_points = dt_exif_xmp_decode(history->toString().c_str(), history->size(), &current_entry->mask_points_len);
+ }
+ else if(g_str_has_prefix(key_iter, "darktable:mask_nb"))
+ {
+- current_entry->mask_nb = history->value().toLong();
++ current_entry->mask_nb = history->toLong();
+ }
+ else if(g_str_has_prefix(key_iter, "darktable:mask_src"))
+ {
+- current_entry->mask_src = dt_exif_xmp_decode(history->value().toString().c_str(), history->value().size(), &current_entry->mask_src_len);
++ current_entry->mask_src = dt_exif_xmp_decode(history->toString().c_str(), history->size(), &current_entry->mask_src_len);
+ }
+
+ }
+@@ -4060,7 +4065,11 @@ char *dt_exif_xmp_read_string(const int imgid)
+ std::string xmpPacket;
+
+ Exiv2::DataBuf buf = Exiv2::readFile(WIDEN(input_filename));
++#if EXIV2_TEST_VERSION(0,28,0)
++ xmpPacket.assign(buf.c_str(), buf.size());
++#else
+ xmpPacket.assign(reinterpret_cast<char *>(buf.pData_), buf.size_);
++#endif
+ Exiv2::XmpParser::decode(xmpData, xmpPacket);
+ // because XmpSeq or XmpBag are added to the list, we first have
+ // to remove these so that we don't end up with a string of duplicates
+@@ -4076,7 +4085,11 @@ char *dt_exif_xmp_read_string(const int imgid)
+ std::string xmpPacket;
+
+ Exiv2::DataBuf buf = Exiv2::readFile(WIDEN(input_filename));
++#if EXIV2_TEST_VERSION(0,28,0)
++ xmpPacket.assign(buf.c_str(), buf.size());
++#else
+ xmpPacket.assign(reinterpret_cast<char *>(buf.pData_), buf.size_);
++#endif
+ Exiv2::XmpParser::decode(sidecarXmpData, xmpPacket);
+
+ for(Exiv2::XmpData::const_iterator it = sidecarXmpData.begin(); it != sidecarXmpData.end(); ++it)
+@@ -4204,7 +4217,11 @@ int dt_exif_xmp_attach_export(const int imgid, const char *filename, void *metad
+ std::string xmpPacket;
+
+ Exiv2::DataBuf buf = Exiv2::readFile(WIDEN(input_filename));
++#if EXIV2_TEST_VERSION(0,28,0)
++ xmpPacket.assign(buf.c_str(), buf.size());
++#else
+ xmpPacket.assign(reinterpret_cast<char *>(buf.pData_), buf.size_);
++#endif
+ Exiv2::XmpParser::decode(sidecarXmpData, xmpPacket);
+
+ for(Exiv2::XmpData::const_iterator it = sidecarXmpData.begin(); it != sidecarXmpData.end(); ++it)
+@@ -4371,7 +4388,7 @@ int dt_exif_xmp_attach_export(const int imgid, const char *filename, void *metad
+ catch(Exiv2::AnyError &e)
+ {
+ #if EXIV2_TEST_VERSION(0,27,0)
+- if(e.code() == Exiv2::kerTooLargeJpegSegment)
++ if(e.code() == Exiv2::ErrorCode::kerTooLargeJpegSegment)
+ #else
+ if(e.code() == 37)
+ #endif
+@@ -4437,7 +4454,11 @@ int dt_exif_xmp_write(const int imgid, const char *filename)
+ }
+
+ Exiv2::DataBuf buf = Exiv2::readFile(WIDEN(filename));
++#if EXIV2_TEST_VERSION(0,28,0)
++ xmpPacket.assign(buf.c_str(), buf.size());
++#else
+ xmpPacket.assign(reinterpret_cast<char *>(buf.pData_), buf.size_);
++#endif
+ Exiv2::XmpParser::decode(xmpData, xmpPacket);
+ // because XmpSeq or XmpBag are added to the list, we first have
+ // to remove these so that we don't end up with a string of duplicates
+diff --git a/tools/basecurve/exif-wrapper.cpp b/tools/basecurve/exif-wrapper.cpp
+index f4d4d46e12..41bb021012 100644
+--- a/tools/basecurve/exif-wrapper.cpp
++++ b/tools/basecurve/exif-wrapper.cpp
+@@ -19,6 +19,7 @@
+ #include <exiv2/exif.hpp>
+ #include <exiv2/error.hpp>
+ #include <exiv2/image.hpp>
++#include <exiv2/version.hpp>
+
+ #include <cstdio>
+ #include <cassert>
+@@ -36,13 +37,21 @@ exif_get_ascii_datafield(
+
+ try
+ {
++#if EXIV2_TEST_VERSION(0,28,0)
++ Exiv2::Image::UniquePtr image = Exiv2::ImageFactory::open(filename);
++#else
+ Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open(filename);
++#endif
+ assert(image.get() != 0);
+ image->readMetadata();
+
+ Exiv2::ExifData &exifData = image->exifData();
+
++#if EXIV2_TEST_VERSION(0,28,0)
++ Exiv2::Value::UniquePtr val = exifData[key].getValue();
++#else
+ Exiv2::Value::AutoPtr val = exifData[key].getValue();
++#endif
+
+ if (val->typeId() != Exiv2::asciiString)
+ {
diff --git a/media-gfx/darktable/files/darktable-4.2.1_cmake-musl.patch b/media-gfx/darktable/files/darktable-4.2.1_cmake-musl.patch
new file mode 100644
index 0000000..33ad7f6
--- /dev/null
+++ b/media-gfx/darktable/files/darktable-4.2.1_cmake-musl.patch
@@ -0,0 +1,22 @@
+--- a/src/external/rawspeed/cmake/Modules/cpu-cache-line-size.cmake
++++ b/src/external/rawspeed/cmake/Modules/cpu-cache-line-size.cmake
+@@ -2,7 +2,7 @@
+
+ unset(RAWSPEED_CACHELINESIZE)
+
+-if(BINARY_PACKAGE_BUILD)
++if(BINARY_PACKAGE_BUILD OR RAWSPEED_MUSL_SYSTEM)
+ message(STATUS "Performing binary package build, using hardcoded value.")
+ else()
+ try_run(RAWSPEED_CACHELINESIZE_EXITCODE RAWSPEED_CACHELINESIZE_COMPILED
+--- a/src/external/rawspeed/cmake/Modules/cpu-page-size.cpp
++++ b/src/external/rawspeed/cmake/Modules/cpu-page-size.cpp
+@@ -4,7 +4,7 @@
+ #include <unistd.h> // for _POSIX_C_SOURCE, sysconf, _SC_PAGESIZE
+ #endif
+
+-#if (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 1) || defined(__APPLE__)
++#if defined(_SC_PAGESIZE)
+
+ int main() {
+ long val = ::sysconf(_SC_PAGESIZE);