From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 060D0158086 for ; Tue, 14 Dec 2021 13:11:40 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 44DBD2BC03E; Tue, 14 Dec 2021 13:11:39 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 1685F2BC03E for ; Tue, 14 Dec 2021 13:11:39 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 24EC7343596 for ; Tue, 14 Dec 2021 13:11:38 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 24836D0 for ; Tue, 14 Dec 2021 13:11:36 +0000 (UTC) From: "Marek Szuba" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Marek Szuba" Message-ID: <1639487490.de8cacd724566ceb8c32a72e8d44005f26d136ab.marecki@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: media-gfx/darktable/ X-VCS-Repository: repo/gentoo X-VCS-Files: media-gfx/darktable/darktable-3.6.1-r3.ebuild X-VCS-Directories: media-gfx/darktable/ X-VCS-Committer: marecki X-VCS-Committer-Name: Marek Szuba X-VCS-Revision: de8cacd724566ceb8c32a72e8d44005f26d136ab X-VCS-Branch: master Date: Tue, 14 Dec 2021 13:11:36 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 3f80863e-4e32-44ea-aeac-724028b39afc X-Archives-Hash: 88035020e6afd0a142f6164df69ec864 commit: de8cacd724566ceb8c32a72e8d44005f26d136ab Author: Marek Szuba gentoo org> AuthorDate: Tue Dec 14 12:57:06 2021 +0000 Commit: Marek Szuba gentoo org> CommitDate: Tue Dec 14 13:11:30 2021 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=de8cacd7 media-gfx/darktable: support cpu_flags_x86_avx, with workaround for gcc-11 alignment issues Darktable determines which instruction sets are available by parsing the CPU ID so while it would be non-trivial to actually prevent it from using SSE3 or AVX, at least we can make sure compiler/linker flags match what darktable has detected - as long as CPU_FLAGS_x86 is up to date, naturally. The second change will no longer be needed come next upstream release. Closes: https://bugs.gentoo.org/828992 Signed-off-by: Marek Szuba gentoo.org> media-gfx/darktable/darktable-3.6.1-r3.ebuild | 176 ++++++++++++++++++++++++++ 1 file changed, 176 insertions(+) diff --git a/media-gfx/darktable/darktable-3.6.1-r3.ebuild b/media-gfx/darktable/darktable-3.6.1-r3.ebuild new file mode 100644 index 000000000000..746a8b4aaf9b --- /dev/null +++ b/media-gfx/darktable/darktable-3.6.1-r3.ebuild @@ -0,0 +1,176 @@ +# 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 cpu_flags_x86_avx cpu_flags_x86_sse3 cups 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() { + if use cpu_flags_x86_avx; then + append-flags -mavx + # Bug #828992. clang does not support this flag so users building darktable + # with it will have to live with this bug (assuming they have suffered + # from it in the first place, as it might be specific to gcc-11) - this + # has already been fixed upstream and it looks like we won't have to wait + # much longer for 3.8.0. + tc-is-gcc && append-flags -mprefer-avx128 + fi + 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 +}