summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Szuba <marecki@gentoo.org>2020-06-18 15:26:54 +0200
committerMarek Szuba <marecki@gentoo.org>2020-06-18 18:29:04 +0200
commit3d0a1fedd1fc7d02a81179718903c097f7403887 (patch)
treedbfcdf65a3156e2e09c083ef3c3c822fff43ea5f /media-gfx
parentkde-apps/kcalutils: Restrict tests (diff)
downloadgentoo-3d0a1fedd1fc7d02a81179718903c097f7403887.tar.gz
gentoo-3d0a1fedd1fc7d02a81179718903c097f7403887.tar.bz2
gentoo-3d0a1fedd1fc7d02a81179718903c097f7403887.zip
media-gfx/darktable: allow enabling LTO in RawSpeed via USE=lto
Recommended by upstream but for now very much experimental on the Gentoo side and will almost certainly fall over for some compiler/linker combinations. Do let us know if that happens! Closes: https://bugs.gentoo.org/674762 Signed-off-by: Marek Szuba <marecki@gentoo.org>
Diffstat (limited to 'media-gfx')
-rw-r--r--media-gfx/darktable/darktable-3.0.2-r1.ebuild147
-rw-r--r--media-gfx/darktable/darktable-9999.ebuild3
-rw-r--r--media-gfx/darktable/metadata.xml1
3 files changed, 150 insertions, 1 deletions
diff --git a/media-gfx/darktable/darktable-3.0.2-r1.ebuild b/media-gfx/darktable/darktable-3.0.2-r1.ebuild
new file mode 100644
index 000000000000..0d3a07d8b76f
--- /dev/null
+++ b/media-gfx/darktable/darktable-3.0.2-r1.ebuild
@@ -0,0 +1,147 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake flag-o-matic pax-utils toolchain-funcs xdg
+
+DOC_PV="3.0.0"
+MY_PV="${PV/_/}"
+MY_P="${P/_/.}"
+
+DESCRIPTION="A virtual lighttable and darkroom for photographers"
+HOMEPAGE="https://www.darktable.org/"
+SRC_URI="https://github.com/darktable-org/${PN}/releases/download/release-${MY_PV}/${MY_P}.tar.xz
+ doc? ( https://github.com/darktable-org/${PN}/releases/download/release-${DOC_PV}/${PN}-usermanual.pdf -> ${PN}-usermanual-${DOC_PV}.pdf )"
+
+LICENSE="GPL-3 CC-BY-3.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+LANGS=" ca cs da de es fr he hu it ja nb nl pl ru sl"
+# TODO add lua once dev-lang/lua-5.2 is unmasked
+IUSE="colord cups cpu_flags_x86_sse3 doc flickr geolocation gnome-keyring gphoto2 graphicsmagick jpeg2k kwallet
+lto nls opencl openmp openexr pax_kernel webp
+${LANGS// / l10n_}"
+
+BDEPEND="
+ dev-util/intltool
+ virtual/pkgconfig
+ nls? ( sys-devel/gettext )
+"
+COMMON_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
+ colord? ( x11-libs/colord-gtk:0= )
+ cups? ( net-print/cups )
+ flickr? ( media-libs/flickcurl )
+ geolocation? ( >=sci-geosciences/osm-gps-map-1.1.0 )
+ gnome-keyring? ( >=app-crypt/libsecret-0.18 )
+ gphoto2? ( media-libs/libgphoto2:= )
+ graphicsmagick? ( media-gfx/graphicsmagick )
+ jpeg2k? ( media-libs/openjpeg:2= )
+ opencl? ( virtual/opencl )
+ openexr? ( media-libs/openexr:0= )
+ webp? ( media-libs/libwebp:0= )
+"
+DEPEND="${COMMON_DEPEND}
+ opencl? (
+ >=sys-devel/clang-4
+ >=sys-devel/llvm-4
+ )
+ openmp? ( >=sys-devel/gcc-6[openmp,graphite] )
+"
+RDEPEND="${COMMON_DEPEND}
+ kwallet? ( >=kde-frameworks/kwallet-5.34.0-r1 )
+"
+
+PATCHES=(
+ "${FILESDIR}"/"${PN}"-find-opencl-header.patch
+ "${FILESDIR}"/${PN}-3.0.2_cmake-opencl-kernel-loop.patch
+)
+
+S="${WORKDIR}/${P/_/~}"
+
+pkg_pretend() {
+ if use openmp ; then
+ tc-has-openmp || die "Please switch to an openmp compatible compiler"
+ fi
+}
+
+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_PRINT=$(usex cups)
+ -DCUSTOM_CFLAGS=ON
+ -DRAWSPEED_ENABLE_LTO=$(usex lto)
+ -DUSE_CAMERA_SUPPORT=$(usex gphoto2)
+ -DUSE_COLORD=$(usex colord)
+ -DUSE_FLICKR=$(usex flickr)
+ -DUSE_GRAPHICSMAGICK=$(usex graphicsmagick)
+ -DUSE_KWALLET=$(usex kwallet)
+ -DUSE_LIBSECRET=$(usex gnome-keyring)
+ -DUSE_LUA=OFF
+ -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)
+ )
+ CMAKE_BUILD_TYPE="RELWITHDEBINFO"
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+ 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
+
+ if use pax_kernel && use opencl ; then
+ pax-mark Cm "${ED}"/usr/bin/${PN} || die
+ eqawarn "USE=pax_kernel is set meaning that ${PN} will be run"
+ eqawarn "under a PaX enabled kernel. To do so, the ${PN} binary"
+ eqawarn "must be modified and this *may* lead to breakage! If"
+ eqawarn "you suspect that ${PN} is broken by this modification,"
+ eqawarn "please open a bug."
+ fi
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ 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."
+ echo
+ ewarn "It will not be possible to downgrade!"
+}
diff --git a/media-gfx/darktable/darktable-9999.ebuild b/media-gfx/darktable/darktable-9999.ebuild
index 20617da3c0a4..6236b05ef1d7 100644
--- a/media-gfx/darktable/darktable-9999.ebuild
+++ b/media-gfx/darktable/darktable-9999.ebuild
@@ -16,7 +16,7 @@ SLOT="0"
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"
# TODO add lua once dev-lang/lua-5.2 is unmasked
IUSE="colord cups cpu_flags_x86_sse3 doc flickr geolocation gnome-keyring gphoto2 graphicsmagick jpeg2k kwallet
-nls opencl openmp openexr pax_kernel webp
+lto nls opencl openmp openexr pax_kernel webp
${LANGS// / l10n_}"
BDEPEND="
@@ -87,6 +87,7 @@ src_configure() {
local mycmakeargs=(
-DBUILD_PRINT=$(usex cups)
-DCUSTOM_CFLAGS=ON
+ -DRAWSPEED_ENABLE_LTO=$(usex lto)
-DUSE_CAMERA_SUPPORT=$(usex gphoto2)
-DUSE_COLORD=$(usex colord)
-DUSE_FLICKR=$(usex flickr)
diff --git a/media-gfx/darktable/metadata.xml b/media-gfx/darktable/metadata.xml
index 7144702bb778..859703428322 100644
--- a/media-gfx/darktable/metadata.xml
+++ b/media-gfx/darktable/metadata.xml
@@ -9,6 +9,7 @@
<flag name="flickr">Add support for uploading photos to flickr</flag>
<flag name="geolocation">Enable geotagging support</flag>
<flag name="kwallet">Enable encrypted storage of passwords with <pkg>kde-frameworks/kwallet</pkg></flag>
+ <flag name="lto">Enable link-time optimisations in the RawSpeed library</flag>
<flag name="opencl">Enable opencl support</flag>
<flag name="pax_kernel">Triggers paxmarking of main darktable binary</flag>
</use>