From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 finch.gentoo.org (Postfix) with ESMTPS id 80BB215808A for ; Fri, 01 Aug 2025 08:24:01 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 6E33C3417F2 for ; Fri, 01 Aug 2025 08:24:01 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id 88A35110567; Fri, 01 Aug 2025 08:23:44 +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) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 7EFDF110566 for ; Fri, 01 Aug 2025 08:23:44 +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) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 2FB19340EC7 for ; Fri, 01 Aug 2025 08:23:44 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 9911532C1 for ; Fri, 01 Aug 2025 08:23:41 +0000 (UTC) From: "Sam James" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" Message-ID: <1754036581.c49a09faf81de1fea89b7fb74208c7a3a2fa8a20.sam@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: media-libs/openimageio/ X-VCS-Repository: repo/gentoo X-VCS-Files: media-libs/openimageio/Manifest media-libs/openimageio/openimageio-2.5.19.0.ebuild X-VCS-Directories: media-libs/openimageio/ X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: c49a09faf81de1fea89b7fb74208c7a3a2fa8a20 X-VCS-Branch: master Date: Fri, 01 Aug 2025 08:23:41 +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: 946d2454-d3ca-40a4-82a9-0eed07492671 X-Archives-Hash: 9cc6a5f6b5d322a62310a9386d420ec3 commit: c49a09faf81de1fea89b7fb74208c7a3a2fa8a20 Author: Paul Zander gmail com> AuthorDate: Sun Jul 20 19:57:26 2025 +0000 Commit: Sam James gentoo org> CommitDate: Fri Aug 1 08:23:01 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c49a09fa media-libs/openimageio: add 2.5.19.0 Adds libheif-1.20 support Bug: https://bugs.gentoo.org/959941 Signed-off-by: Paul Zander gmail.com> Part-of: https://github.com/gentoo/gentoo/pull/43084 Signed-off-by: Sam James gentoo.org> media-libs/openimageio/Manifest | 1 + media-libs/openimageio/openimageio-2.5.19.0.ebuild | 305 +++++++++++++++++++++ 2 files changed, 306 insertions(+) diff --git a/media-libs/openimageio/Manifest b/media-libs/openimageio/Manifest index a0a57c5c4643..9bd2e3f5b9eb 100644 --- a/media-libs/openimageio/Manifest +++ b/media-libs/openimageio/Manifest @@ -5,6 +5,7 @@ DIST file003.fits 581760 BLAKE2B 35d77c64ff9e25f34593ea41839a4f7712dc344d12ab2c0 DIST file009.fits 25920 BLAKE2B 594061eba4d48da8cbfee58ab592a0adb5a22d681228330e84f60304e5146a8856e9c65b763d6d8e2136217ebe85d92128318cccfcf6358c7bc767232c6382c9 SHA512 57d53622854399aed96efbeff78e700990b2fc63c4dbd1bc9ac58c7670af98d528db2f1a3e9de4e74b977f8318109b465b46423bbac36bf2bf34a1e33e7dcdb8 DIST file012.fits 1019520 BLAKE2B e86d9e0004ca159d9a5ae0585776db65c7dd49162cb5dbd8b511686244950e33746d8a41f60b5ba8fcea220194fa87e16235adb7ccc0b4fb4b0a61e6c5c376a8 SHA512 45439544da478b24ccbcf14dc9a651aa8ecbce29b9992204d85c1eee42bc88b68802ec57bc148510da1e062de95ee53dd5c64c9bfa2e0b6cdfd945a78d1fc76a DIST openimageio-2.5.18.0.tar.gz 52549475 BLAKE2B 8a3f61f6089b304202e829a28946ec8c0bc84e05e61b84dd39f1e036614faab005619962c0217248208e133595f55fa8ffea1d931710a88eff8208b8c36fa2ae SHA512 ab6ef20fe099c19ec8cce1308890e76ec82c4bcdc1d5a2ead8c44f04593c060e819fededb958b7f36ccd0118b1aae9b1c5e12b442f7e066e940b4e32d378f7d9 +DIST openimageio-2.5.19.0.tar.gz 52549345 BLAKE2B 6c209f0213ce92c7e9f2f27eea1086ef3ce1ec1e722ab3b31a8488816ae55d4716fe0adbdda25f60150b331f4bbbbc3390bf9e4051ae2224b2d253a728ba935b SHA512 94cac306661f15236656a8cd114d8524ed94aeea91847d61bed8ae8096821e008b4f891c17c542dddb917ec7c1e57945cde7f7bb193c49f306da481cfbac5a22 DIST openimageio-3.0.6.1.tar.gz 52703969 BLAKE2B 20a905b092df63727f52cb2e1bc78743a615905bdbb964d358a04183c2e30b1f3a0287c4df6d6d2c72ca4608963fa5c1717c8249062c620bf9bbbcd61838bd18 SHA512 6ae915dea0113d6c577cfd6b374ab7eb534bf7703e802bdcb0315b8a91711a2b726da420c00ba89fc90fa9e2f695c42d6b3b34b09d4384d45e439ef7d9927f80 DIST openimageio-oexr-test-image-d45a2d5a890d6963b94479c7a644440068c37dd2.tar.gz 263237088 BLAKE2B 9445464b6d75d4800b843bd4a4f88404f587ca4ed384a0c1d428d5a249c04af0c610a95660aac5edff22c003c067e3a907d4a0896d7cfb20731cb486e436f17d SHA512 bbfd8e40eedd26955bc97789bfdfd556ee9ed652babc1c9c60c3cda6e5cab05a0a813323f25bc536132498a2bf3185a07020cd1170c047b72973e2be3e10fe19 DIST openimageio-oiio-test-image-75099275c73a6937d40c69f9e14a006aa49fa201.tar.gz 143507944 BLAKE2B 1109c4c8910e4888e5d5724c3858689a46fb52ebc76faf37a1a57a9adecf6ff3317776ffd11e12f4f84585b8ec4500d44107e78fa78b484a8135d420ea09a33a SHA512 0ac29746c1c9055db1df4bfc89f672e19a99886cb86319af746c7911bcb468ecfad6db0df6a73836efe6a7ff72860990ab63a814b7b1d1335c4d2da53f0163d8 diff --git a/media-libs/openimageio/openimageio-2.5.19.0.ebuild b/media-libs/openimageio/openimageio-2.5.19.0.ebuild new file mode 100644 index 000000000000..7ccc7c269cd7 --- /dev/null +++ b/media-libs/openimageio/openimageio-2.5.19.0.ebuild @@ -0,0 +1,305 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..13} ) + +TEST_OIIO_IMAGE_COMMIT="7e6d875542b5bc1b2974b7cbecee115365a36527" +TEST_OEXR_IMAGE_COMMIT="d45a2d5a890d6963b94479c7a644440068c37dd2" +inherit cmake flag-o-matic python-single-r1 virtualx + +DESCRIPTION="A library for reading and writing images" +HOMEPAGE="https://sites.google.com/site/openimageio/ https://github.com/OpenImageIO" +SRC_URI=" + https://github.com/AcademySoftwareFoundation/OpenImageIO/archive/v${PV}.tar.gz -> ${P}.tar.gz + test? ( + https://github.com/AcademySoftwareFoundation/OpenImageIO-images/archive/${TEST_OIIO_IMAGE_COMMIT}.tar.gz + -> ${PN}-oiio-test-image-${TEST_OIIO_IMAGE_COMMIT}.tar.gz + https://github.com/AcademySoftwareFoundation/openexr-images/archive/${TEST_OEXR_IMAGE_COMMIT}.tar.gz + -> ${PN}-oexr-test-image-${TEST_OEXR_IMAGE_COMMIT}.tar.gz + jpeg2k? ( https://www.itu.int/wftp3/Public/t/testsignal/SpeImage/T803/v2002_11/J2KP4files.zip ) + + fits? ( + https://www.cv.nrao.edu/fits/data/tests/ftt4b/file001.fits + https://www.cv.nrao.edu/fits/data/tests/ftt4b/file002.fits + https://www.cv.nrao.edu/fits/data/tests/ftt4b/file003.fits + https://www.cv.nrao.edu/fits/data/tests/ftt4b/file009.fits + https://www.cv.nrao.edu/fits/data/tests/ftt4b/file012.fits + https://www.cv.nrao.edu/fits/data/tests/pg93/tst0001.fits + https://www.cv.nrao.edu/fits/data/tests/pg93/tst0003.fits + https://www.cv.nrao.edu/fits/data/tests/pg93/tst0005.fits + https://www.cv.nrao.edu/fits/data/tests/pg93/tst0006.fits + https://www.cv.nrao.edu/fits/data/tests/pg93/tst0007.fits + https://www.cv.nrao.edu/fits/data/tests/pg93/tst0008.fits + https://www.cv.nrao.edu/fits/data/tests/pg93/tst0013.fits + ) + ) +" +S="${WORKDIR}/OpenImageIO-${PV}" + +LICENSE="Apache-2.0" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv" + +X86_CPU_FEATURES=( + aes:aes sse2:sse2 sse3:sse3 ssse3:ssse3 sse4_1:sse4.1 sse4_2:sse4.2 + avx:avx avx2:avx2 avx512f:avx512f f16c:f16c +) +CPU_FEATURES=( "${X86_CPU_FEATURES[@]/#/cpu_flags_x86_}" ) + +IUSE="dicom doc ffmpeg fits gif gui jpeg2k opencv openvdb ptex python raw test +tools +truetype ${CPU_FEATURES[*]%:*}" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} ) gui? ( tools ) test? ( tools truetype )" + +RESTRICT="!test? ( test )" + +BDEPEND=" + jpeg2k? ( app-arch/unzip ) + doc? ( + app-text/doxygen + dev-texlive/texlive-bibtexextra + dev-texlive/texlive-fontsextra + dev-texlive/texlive-fontutils + dev-texlive/texlive-latex + dev-texlive/texlive-latexextra + ) +" +RDEPEND=" + dev-libs/boost:= + dev-cpp/robin-map + dev-libs/libfmt:= + dev-libs/pugixml:= + >=media-libs/libheif-1.13.0:= + media-libs/libjpeg-turbo:= + media-libs/libpng:0= + >=media-libs/libwebp-0.2.1:= + >=dev-libs/imath-3.1.2-r4:= + >=media-libs/opencolorio-2.1.1-r4:= + >=media-libs/openexr-3:0= + media-libs/tiff:= + sys-libs/zlib:= + dicom? ( sci-libs/dcmtk ) + ffmpeg? ( media-video/ffmpeg:= ) + fits? ( sci-libs/cfitsio:= ) + gif? ( media-libs/giflib:0= ) + jpeg2k? ( >=media-libs/openjpeg-2.0:2= ) + opencv? ( media-libs/opencv:= ) + openvdb? ( + dev-cpp/tbb:= + media-gfx/openvdb:= + ) + ptex? ( media-libs/ptex:= ) + python? ( + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-libs/boost:=[python,${PYTHON_USEDEP}] + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/pybind11[${PYTHON_USEDEP}] + ') + ) + gui? ( + media-libs/libglvnd + dev-qt/qtbase:6[gui,widgets,opengl] + ) + raw? ( media-libs/libraw:= ) + truetype? ( media-libs/freetype:2= ) +" +DEPEND=" + ${RDEPEND} +" + +DOCS=( + CHANGES.md + CREDITS.md + README.md +) + +PATCHES=( + "${FILESDIR}/${PN}-2.5.8.0-fix-tests.patch" + "${FILESDIR}/${PN}-2.5.12.0-heif-find-fix.patch" + "${FILESDIR}/${PN}-2.5.18.0-tests-optional.patch" +) + +pkg_setup() { + use python && python-single-r1_pkg_setup +} + +src_prepare() { + if ! use dicom; then + rm "src/dicom.imageio" -r || die + fi + + if ! use gif; then + rm src/gif.imageio -r || die + fi + + if ! use jpeg2k; then + rm src/jpeg2000.imageio -r || die + fi + + if ! use raw; then + rm src/raw.imageio -r || die + fi + + cmake_src_prepare + cmake_comment_add_subdirectory src/fonts + + if use test ; then + ln -s "${WORKDIR}/OpenImageIO-images-${TEST_OIIO_IMAGE_COMMIT}" "${WORKDIR}/oiio-images" || die + ln -s "${WORKDIR}/openexr-images-${TEST_OEXR_IMAGE_COMMIT}" "${WORKDIR}/openexr-images" || die + + if use fits; then + mkdir -p "${WORKDIR}/fits-images/"{ftt4b,pg93} || die + for a in ${A}; do + if [[ "${a}" == file*.fits ]]; then + ln -s "${DISTDIR}/${a}" "${WORKDIR}/fits-images/ftt4b/" || die + fi + if [[ "${a}" == tst*.fits ]]; then + ln -s "${DISTDIR}/${a}" "${WORKDIR}/fits-images/pg93/" || die + fi + done + fi + + if use jpeg2k; then + ln -s "${WORKDIR}/J2KP4files" "${WORKDIR}/j2kp4files_v1_5" || die + fi + + cp testsuite/heif/ref/out-libheif1.1{2,5}-orient.txt || die + eapply "${FILESDIR}/${PN}-2.5.12.0_heif_test.patch" + + sed \ + -e "s/BBAA06ABCADF65F9323FDA979421A54F5B2E53D0/A5C53C7628B01F12DCAE09A42D8B15433644C54C/g" \ + -i testsuite/tiff-depths/ref/out-*.txt || die + fi +} + +src_configure() { + # Build with SIMD support + local cpufeature + local mysimd=() + for cpufeature in "${CPU_FEATURES[@]}"; do + use "${cpufeature%:*}" && mysimd+=("${cpufeature#*:}") + done + + # If no CPU SIMDs were used, completely disable them + [[ -z ${mysimd[*]} ]] && mysimd=("0") + + # This is currently needed on arm64 to get the NEON SIMD wrapper to compile the code successfully + # Even if there are no SIMD features selected, it seems like the code will turn on NEON support if it is available. + use arm64 && append-flags -flax-vector-conversions + + local mycmakeargs=( + -DVERBOSE="yes" + -DINTERNALIZE_FMT="no" + # -DALWAYS_PREFER_CONFIG="yes" + # -DGLIBCXX_USE_CXX11_ABI="yes" + # -DTEX_BATCH_SIZE="8" # TODO AVX512 -> 16 + -DSTOP_ON_WARNING="OFF" + + -DCMAKE_CXX_STANDARD="17" + -DDOWNSTREAM_CXX_STANDARD="17" + + -DCMAKE_UNITY_BUILD_MODE="BATCH" + -DUNITY_SMALL_BATCH_SIZE="$(nproc)" + + -DBUILD_DOCS="$(usex doc)" + # -DBUILD_OIIOUTIL_ONLY="no" + -DBUILD_TESTING="$(usex test)" + + -DINSTALL_FONTS="OFF" + -DINSTALL_DOCS="$(usex doc)" + + -DENABLE_DCMTK="$(usex dicom)" + -DENABLE_FFmpeg="$(usex ffmpeg)" + -DENABLE_FITS="$(usex fits)" + -DENABLE_FREETYPE="$(usex truetype)" + -DENABLE_GIF="$(usex gif)" + -DENABLE_LibRaw="$(usex raw)" + -DENABLE_Nuke="no" # not in Gentoo + -DENABLE_OpenCV="$(usex opencv)" + -DENABLE_OpenJPEG="$(usex jpeg2k)" + -DENABLE_OpenVDB="$(usex openvdb)" + -DENABLE_TBB="$(usex openvdb)" + -DENABLE_Ptex="$(usex ptex)" + + -DENABLE_GIF="$(usex gif)" + -DENABLE_LIBRAW="$(usex raw)" + -DENABLE_PTEX="$(usex ptex)" + -DENABLE_OPENJPEG="$(usex jpeg2k)" + + -DOIIO_BUILD_TOOLS="$(usex tools)" + -DOIIO_BUILD_TESTS="$(usex test)" + -DOIIO_DOWNLOAD_MISSING_TESTDATA="no" + + -DUSE_CCACHE="no" + -DUSE_EXTERNAL_PUGIXML="yes" + # -DUSE_LIBCPLUSPLUS="yes" + -DUSE_R3DSDK="no" # not in Gentoo + -DUSE_PYTHON="$(usex python)" + -DUSE_SIMD="$(local IFS=','; echo "${mysimd[*]}")" +) + + if use gui; then + mycmakeargs+=( + -DUSE_IV="yes" + -DUSE_OPENGL="yes" + -DUSE_QT="yes" + ) + else + mycmakeargs+=( + -DUSE_QT="no" + ) + fi + + if use python; then + mycmakeargs+=( + "-DPYTHON_VERSION=${EPYTHON#python}" + "-DPYTHON_SITE_DIR=$(python_get_sitedir)" + ) + fi + + cmake_src_configure +} + +src_test() { + # A lot of tests needs to have access to the installed data files. + # So install them into the image directory now. + DESTDIR="${T}" cmake_build install + + CMAKE_SKIP_TESTS=( + "-broken$" + "texture-levels-stochaniso.batch" + "unit_simd" + ) + + sed -e "s#../../../testsuite#../../../OpenImageIO-${PV}/testsuite#g" \ + -i "${CMAKE_USE_DIR}/testsuite/python-imagebufalgo/ref/out.txt" || die + + local -x CI CMAKE_PREFIX_PATH LD_LIBRARY_PATH OPENIMAGEIO_FONTS PYTHONPATH + CI=true + CMAKE_PREFIX_PATH="${T}/usr" + LD_LIBRARY_PATH="${T}/usr/$(get_libdir)" + OPENIMAGEIO_FONTS="${CMAKE_USE_DIR}/src/fonts" + + if use python; then + PYTHONPATH="${T}$(python_get_sitedir)" + fi + + local -x myctestargs=( + -R tiff-depths + ) + + virtx cmake_src_test + + # Clean up the image directory for src_install + rm -fr "${T:?}"/usr || die +} + +src_install() { + cmake_src_install + + # remove Windows loader file + if use python; then + rm "${D}$(python_get_sitedir)/__init__.py" || die + fi +}