media-gfx/darktable - 5.6.1 (stuff)

Search

Install

Install this version:

emerge -a =media-gfx/darktable-5.6.1

If this version is masked, you can unmask it using the autounmask tool or standard emerge options:

autounmask =media-gfx/darktable-5.6.1

Or alternatively:

emerge --autounmask-write -a =media-gfx/darktable-5.6.1

Package Information

Description:
A virtual lighttable and darkroom for photographers
Homepage:
https://www.darktable.org/
License:
GPL-3 CC-BY-3.0

Ebuild Details

Version EAPI Keywords Slot
5.6.1 8 ~amd64 ~arm64 -x86 0
View Raw Ebuild
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

LUA_COMPAT=( lua5-4 )
: "${CMAKE_BUILD_TYPE:=ReleaseWithAsserts}"

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="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"
	# Keep synchronized with release po/: stale entries make locale pruning die.
	# verified 2026-07-04
	LANGS=" cs de es fi fr hu ja nb nl pl pt-BR ru sl sq sv uk zh-CN zh-TW"
fi

IUSE="X ai 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 wayland webp
	${LANGS// / l10n_}"

REQUIRED_USE="lua? ( ${LUA_REQUIRED_USE} )"
RESTRICT="!test? ( test )"

# Do not force gcc[graphite]: Clang is a valid alternative and common
# dependencies already pull it in. pkg_pretend validates the selected GCC.
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-gfx/potrace
	media-libs/lcms:2
	>=media-libs/lensfun-0.2.3:=
	media-libs/libjpeg-turbo:=
	media-libs/libpng:=
	media-libs/tiff:=
	net-misc/curl
	virtual/zlib:=
	x11-libs/cairo
	>=x11-libs/gtk+-3.22:3[X?,wayland?]
	x11-libs/pango
	ai? (
		app-arch/libarchive
		sci-libs/onnxruntime
	)
	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"
)

pkg_pretend() {
	if [[ ${MERGE_TYPE} != binary ]]; then
		# Gentoo 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

	use X || append-flags -DGENTOO_GTK_HIDE_X11
	use wayland || append-flags -DGENTOO_GTK_HIDE_WAYLAND

	cmake_src_prepare
}

src_configure() {
	local mycmakeargs=(
		-DBUILD_CURVE_TOOLS=$(usex tools)
		-DBUILD_NOISE_TOOLS=$(usex tools)
		-DBUILD_PRINT=$(usex cups)
		# Preserve user flags and architecture (Gentoo bug 946892).
		-DCUSTOM_CFLAGS=ON
		-DRAWSPEED_MARCH=
		-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_AI=$(usex ai)
		-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)
	)

	# Prevent FindONNXRuntime from downloading a binary; use the system library.
	use ai && mycmakeargs+=( -DONNXRUNTIME_OFFLINE=ON )

	cmake_src_configure
}

src_install() {
	cmake_src_install
	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

	if use ai; then
		elog
		elog "The AI subsystem (USE=ai) ships no models. Neural restore,"
		elog "raw/image denoise, upscaling and the AI object-mask models are"
		elog "downloaded on demand from within darktable (Preferences), from the"
		elog "darktable-org/darktable-ai model repository. Inference runs on the"
		elog "system sci-libs/onnxruntime."
	fi

	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
}

USE Flags

Manage flags for this package: euse -i <flag> -p media-gfx/darktable | euse -E <flag> -p media-gfx/darktable | euse -D <flag> -p media-gfx/darktable

Inherited Eclasses

xdg

Dependencies

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-gfx/potrace
	media-libs/lcms:2
	>=media-libs/lensfun-0.2.3:=
	media-libs/libjpeg-turbo:=
	media-libs/libpng:=
	media-libs/tiff:=
	net-misc/curl
	virtual/zlib:=
	x11-libs/cairo
	>=x11-libs/gtk+-3.22:3[X?,wayland?]
	x11-libs/pango
	ai? (
		app-arch/libarchive
		sci-libs/onnxruntime
	)
	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? (  )
	midi? ( media-libs/portmidi )
	opencl? ( virtual/opencl )
	openexr? ( media-libs/openexr:= )
	webp? ( media-libs/libwebp:= )

RDEPEND

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-gfx/potrace
	media-libs/lcms:2
	>=media-libs/lensfun-0.2.3:=
	media-libs/libjpeg-turbo:=
	media-libs/libpng:=
	media-libs/tiff:=
	net-misc/curl
	virtual/zlib:=
	x11-libs/cairo
	>=x11-libs/gtk+-3.22:3[X?,wayland?]
	x11-libs/pango
	ai? (
		app-arch/libarchive
		sci-libs/onnxruntime
	)
	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? (  )
	midi? ( media-libs/portmidi )
	opencl? ( virtual/opencl )
	openexr? ( media-libs/openexr:= )
	webp? ( media-libs/libwebp:= )
	kwallet? ( >=kde-frameworks/kwallet-5.34.0-r1:* )

BDEPEND

dev-util/intltool
	sys-devel/gettext
	virtual/pkgconfig
	test? ( >=dev-python/jsonschema-3.2.0 )

Manifest for 5.6.1

Type File Size Source URLs
DIST darktable-5.6.1.tar.xz 8396480 bytes https://github.com/darktable-org/darktable/releases/download/release-5.6.1/darktable-5.6.1.tar.xz
DIST darktable-usermanual-4.6.en.pdf 26849819 bytes https://docs.darktable.org/usermanual/4.6/en/darktable_user_manual.pdf
DIST darktable-usermanual-4.6.uk.pdf 27019385 bytes https://docs.darktable.org/usermanual/4.6/uk/darktable_user_manual.pdf