commit:     567bd29baed6d7dc3430d4eaa187170fe9027a4c
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Jun  5 10:50:48 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Jun  5 11:03:03 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=567bd29b

media-libs/libjxl: Add flags to control GIF, JPEG and PNG codecs

Bug: https://bugs.gentoo.org/933165
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 ...{libjxl-9999.ebuild => libjxl-0.10.2-r1.ebuild} | 35 +++++++-----
 .../{libjxl-9999.ebuild => libjxl-0.8.2-r2.ebuild} | 66 +++++++++-------------
 .../{libjxl-9999.ebuild => libjxl-0.9.2-r1.ebuild} | 39 ++++++++-----
 media-libs/libjxl/libjxl-9999.ebuild               | 14 +++--
 media-libs/libjxl/metadata.xml                     |  6 +-
 5 files changed, 89 insertions(+), 71 deletions(-)

diff --git a/media-libs/libjxl/libjxl-9999.ebuild 
b/media-libs/libjxl/libjxl-0.10.2-r1.ebuild
similarity index 70%
copy from media-libs/libjxl/libjxl-9999.ebuild
copy to media-libs/libjxl/libjxl-0.10.2-r1.ebuild
index aef3acb16445..3430ddbc8d00 100644
--- a/media-libs/libjxl/libjxl-9999.ebuild
+++ b/media-libs/libjxl/libjxl-0.10.2-r1.ebuild
@@ -3,35 +3,40 @@
 
 EAPI=8
 
-inherit cmake-multilib git-r3 gnome2-utils
+inherit cmake-multilib gnome2-utils
 
+# This changes frequently.  Please check the testdata submodule when bumping.
+TESTDATA_COMMIT="ff8d743aaba05b3014f17e5475e576242fa979fc"
 DESCRIPTION="JPEG XL image format reference implementation"
 HOMEPAGE="https://github.com/libjxl/libjxl/";
-
-EGIT_REPO_URI="https://github.com/libjxl/libjxl.git";
-EGIT_SUBMODULES=(
-       third_party/libjpeg-turbo
-       third_party/skcms
-       third_party/testdata
-)
+SRC_URI="
+       https://github.com/libjxl/libjxl/archive/refs/tags/v${PV}.tar.gz
+               -> ${P}.tar.gz
+       test? (
+               
https://github.com/libjxl/testdata/archive/${TESTDATA_COMMIT}.tar.gz
+                       -> ${PN}-testdata-${TESTDATA_COMMIT}.tar.gz
+       )
+"
 
 LICENSE="BSD"
-SLOT="0"
-IUSE="+gdk-pixbuf openexr test"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc64 ~riscv ~sparc 
~x86"
+IUSE="+gdk-pixbuf gif jpeg openexr +png test"
+REQUIRED_USE="test? ( png )"
 RESTRICT="!test? ( test )"
 
 DEPEND="
        app-arch/brotli:=[${MULTILIB_USEDEP}]
        >=dev-cpp/highway-1.0.7[${MULTILIB_USEDEP}]
-       media-libs/giflib:=[${MULTILIB_USEDEP}]
        >=media-libs/lcms-2.13:2[${MULTILIB_USEDEP}]
-       media-libs/libjpeg-turbo:=[${MULTILIB_USEDEP}]
-       media-libs/libpng:=[${MULTILIB_USEDEP}]
        gdk-pixbuf? (
                dev-libs/glib:2
                x11-libs/gdk-pixbuf:2
        )
+       gif? ( media-libs/giflib:=[${MULTILIB_USEDEP}] )
+       jpeg? ( media-libs/libjpeg-turbo:=[${MULTILIB_USEDEP}] )
        openexr? ( media-libs/openexr:= )
+       png? ( media-libs/libpng:=[${MULTILIB_USEDEP}] )
 "
 RDEPEND="
        ${DEPEND}
@@ -49,6 +54,10 @@ multilib_src_configure() {
                -DJPEGXL_ENABLE_SJPEG=OFF
                -DJPEGXL_WARNINGS_AS_ERRORS=OFF
 
+               -DCMAKE_DISABLE_FIND_PACKAGE_GIF=$(usex !gif)
+               -DCMAKE_DISABLE_FIND_PACKAGE_JPEG=$(usex !jpeg)
+               -DCMAKE_DISABLE_FIND_PACKAGE_PNG=$(usex !png)
+
                -DJPEGXL_ENABLE_SKCMS=OFF
                -DJPEGXL_ENABLE_VIEWERS=OFF
                -DJPEGXL_FORCE_SYSTEM_BROTLI=ON

diff --git a/media-libs/libjxl/libjxl-9999.ebuild 
b/media-libs/libjxl/libjxl-0.8.2-r2.ebuild
similarity index 53%
copy from media-libs/libjxl/libjxl-9999.ebuild
copy to media-libs/libjxl/libjxl-0.8.2-r2.ebuild
index aef3acb16445..ff3f34b606fb 100644
--- a/media-libs/libjxl/libjxl-9999.ebuild
+++ b/media-libs/libjxl/libjxl-0.8.2-r2.ebuild
@@ -3,35 +3,30 @@
 
 EAPI=8
 
-inherit cmake-multilib git-r3 gnome2-utils
+inherit cmake-multilib
 
+# This changes frequently.  Please check the testdata submodule when bumping.
+TESTDATA_COMMIT="d6168ffb9e1cc24007e64b65dd84d822ad1fc759"
 DESCRIPTION="JPEG XL image format reference implementation"
-HOMEPAGE="https://github.com/libjxl/libjxl/";
-
-EGIT_REPO_URI="https://github.com/libjxl/libjxl.git";
-EGIT_SUBMODULES=(
-       third_party/libjpeg-turbo
-       third_party/skcms
-       third_party/testdata
-)
+HOMEPAGE="https://github.com/libjxl/libjxl";
+SRC_URI="https://github.com/libjxl/libjxl/archive/refs/tags/v${PV}.tar.gz -> 
${P}.tar.gz
+       test? ( 
https://github.com/libjxl/testdata/archive/${TESTDATA_COMMIT}.tar.gz
+               -> ${PN}-testdata-${TESTDATA_COMMIT}.tar.gz )"
 
 LICENSE="BSD"
 SLOT="0"
-IUSE="+gdk-pixbuf openexr test"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc64 ~riscv ~sparc 
~x86"
+IUSE="gif jpeg openexr +png test"
 RESTRICT="!test? ( test )"
 
 DEPEND="
        app-arch/brotli:=[${MULTILIB_USEDEP}]
-       >=dev-cpp/highway-1.0.7[${MULTILIB_USEDEP}]
-       media-libs/giflib:=[${MULTILIB_USEDEP}]
+       >=dev-cpp/highway-1.0.0[${MULTILIB_USEDEP}]
        >=media-libs/lcms-2.13:2[${MULTILIB_USEDEP}]
-       media-libs/libjpeg-turbo:=[${MULTILIB_USEDEP}]
-       media-libs/libpng:=[${MULTILIB_USEDEP}]
-       gdk-pixbuf? (
-               dev-libs/glib:2
-               x11-libs/gdk-pixbuf:2
-       )
+       gif? ( media-libs/giflib:=[${MULTILIB_USEDEP}] )
+       jpeg? ( media-libs/libjpeg-turbo:=[${MULTILIB_USEDEP}] )
        openexr? ( media-libs/openexr:= )
+       png? ( media-libs/libpng:=[${MULTILIB_USEDEP}] )
 "
 RDEPEND="
        ${DEPEND}
@@ -41,6 +36,11 @@ DEPEND+="
        test? ( dev-cpp/gtest[${MULTILIB_USEDEP}] )
 "
 
+PATCHES=(
+       "${FILESDIR}/${PN}-0.8.2-backport-pr2596.patch"
+       "${FILESDIR}/${PN}-0.8.2-backport-pr2617.patch"
+)
+
 multilib_src_configure() {
        local mycmakeargs=(
                -DJPEGXL_ENABLE_BENCHMARK=OFF
@@ -49,8 +49,13 @@ multilib_src_configure() {
                -DJPEGXL_ENABLE_SJPEG=OFF
                -DJPEGXL_WARNINGS_AS_ERRORS=OFF
 
+               -DCMAKE_DISABLE_FIND_PACKAGE_GIF=$(usex !gif)
+               -DCMAKE_DISABLE_FIND_PACKAGE_JPEG=$(usex !jpeg)
+               -DCMAKE_DISABLE_FIND_PACKAGE_PNG=$(usex !png)
+
                -DJPEGXL_ENABLE_SKCMS=OFF
                -DJPEGXL_ENABLE_VIEWERS=OFF
+               -DJPEGXL_ENABLE_PLUGINS=OFF
                -DJPEGXL_FORCE_SYSTEM_BROTLI=ON
                -DJPEGXL_FORCE_SYSTEM_GTEST=ON
                -DJPEGXL_FORCE_SYSTEM_HWY=ON
@@ -58,33 +63,24 @@ multilib_src_configure() {
                -DJPEGXL_ENABLE_DOXYGEN=OFF
                -DJPEGXL_ENABLE_MANPAGES=OFF
                -DJPEGXL_ENABLE_JNI=OFF
-               -DJPEGXL_ENABLE_JPEGLI=OFF
                -DJPEGXL_ENABLE_JPEGLI_LIBJPEG=OFF
                -DJPEGXL_ENABLE_TCMALLOC=OFF
                -DJPEGXL_ENABLE_EXAMPLES=OFF
-               -DBUILD_TESTING=$(usex test ON OFF)
        )
 
-       if use test; then
-               mycmakeargs+=(
-                       
-DJPEGXL_TEST_DATA_PATH="${WORKDIR}/testdata-${TESTDATA_COMMIT}"
-               )
-       fi
-
        if multilib_is_native_abi; then
                mycmakeargs+=(
                        -DJPEGXL_ENABLE_TOOLS=ON
                        -DJPEGXL_ENABLE_OPENEXR=$(usex openexr)
-                       -DJPEGXL_ENABLE_PLUGINS=ON
-                       -DJPEGXL_ENABLE_PLUGIN_GDKPIXBUF=$(usex gdk-pixbuf)
-                       -DJPEGXL_ENABLE_PLUGIN_GIMP210=OFF
-                       -DJPEGXL_ENABLE_PLUGIN_MIME=OFF
+                       -DBUILD_TESTING=$(usex test ON OFF)
                )
+               use test &&
+                       mycmakeargs+=( 
-DJPEGXL_TEST_DATA_PATH="${WORKDIR}/testdata-${TESTDATA_COMMIT}" )
        else
                mycmakeargs+=(
                        -DJPEGXL_ENABLE_TOOLS=OFF
                        -DJPEGXL_ENABLE_OPENEXR=OFF
-                       -DJPEGXL_ENABLE_PLUGINS=OFF
+                       -DBUILD_TESTING=OFF
                )
        fi
 
@@ -96,11 +92,3 @@ multilib_src_install() {
 
        find "${ED}" -name '*.a' -delete || die
 }
-
-pkg_postinst() {
-       use gdk-pixbuf && multilib_foreach_abi gnome2_gdk_pixbuf_update
-}
-
-pkg_postrm() {
-       use gdk-pixbuf && multilib_foreach_abi gnome2_gdk_pixbuf_update
-}

diff --git a/media-libs/libjxl/libjxl-9999.ebuild 
b/media-libs/libjxl/libjxl-0.9.2-r1.ebuild
similarity index 68%
copy from media-libs/libjxl/libjxl-9999.ebuild
copy to media-libs/libjxl/libjxl-0.9.2-r1.ebuild
index aef3acb16445..00adab4f5232 100644
--- a/media-libs/libjxl/libjxl-9999.ebuild
+++ b/media-libs/libjxl/libjxl-0.9.2-r1.ebuild
@@ -3,35 +3,40 @@
 
 EAPI=8
 
-inherit cmake-multilib git-r3 gnome2-utils
+inherit cmake-multilib gnome2-utils
 
+# This changes frequently.  Please check the testdata submodule when bumping.
+TESTDATA_COMMIT="ff8d743aaba05b3014f17e5475e576242fa979fc"
 DESCRIPTION="JPEG XL image format reference implementation"
 HOMEPAGE="https://github.com/libjxl/libjxl/";
-
-EGIT_REPO_URI="https://github.com/libjxl/libjxl.git";
-EGIT_SUBMODULES=(
-       third_party/libjpeg-turbo
-       third_party/skcms
-       third_party/testdata
-)
+SRC_URI="
+       https://github.com/libjxl/libjxl/archive/refs/tags/v${PV}.tar.gz
+               -> ${P}.tar.gz
+       test? (
+               
https://github.com/libjxl/testdata/archive/${TESTDATA_COMMIT}.tar.gz
+                       -> ${PN}-testdata-${TESTDATA_COMMIT}.tar.gz
+       )
+"
 
 LICENSE="BSD"
-SLOT="0"
-IUSE="+gdk-pixbuf openexr test"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc64 ~riscv ~sparc 
~x86"
+IUSE="+gdk-pixbuf gif jpeg openexr +png test"
+REQUIRED_USE="test? ( png )"
 RESTRICT="!test? ( test )"
 
 DEPEND="
        app-arch/brotli:=[${MULTILIB_USEDEP}]
        >=dev-cpp/highway-1.0.7[${MULTILIB_USEDEP}]
-       media-libs/giflib:=[${MULTILIB_USEDEP}]
        >=media-libs/lcms-2.13:2[${MULTILIB_USEDEP}]
-       media-libs/libjpeg-turbo:=[${MULTILIB_USEDEP}]
-       media-libs/libpng:=[${MULTILIB_USEDEP}]
        gdk-pixbuf? (
                dev-libs/glib:2
                x11-libs/gdk-pixbuf:2
        )
+       gif? ( media-libs/giflib:=[${MULTILIB_USEDEP}] )
+       jpeg? ( media-libs/libjpeg-turbo:=[${MULTILIB_USEDEP}] )
        openexr? ( media-libs/openexr:= )
+       png? ( media-libs/libpng:=[${MULTILIB_USEDEP}] )
 "
 RDEPEND="
        ${DEPEND}
@@ -41,6 +46,10 @@ DEPEND+="
        test? ( dev-cpp/gtest[${MULTILIB_USEDEP}] )
 "
 
+PATCHES=(
+       "${FILESDIR}/${PN}-0.9.1-backport-pr3143.patch"
+)
+
 multilib_src_configure() {
        local mycmakeargs=(
                -DJPEGXL_ENABLE_BENCHMARK=OFF
@@ -49,6 +58,10 @@ multilib_src_configure() {
                -DJPEGXL_ENABLE_SJPEG=OFF
                -DJPEGXL_WARNINGS_AS_ERRORS=OFF
 
+               -DCMAKE_DISABLE_FIND_PACKAGE_GIF=$(usex !gif)
+               -DCMAKE_DISABLE_FIND_PACKAGE_JPEG=$(usex !jpeg)
+               -DCMAKE_DISABLE_FIND_PACKAGE_PNG=$(usex !png)
+
                -DJPEGXL_ENABLE_SKCMS=OFF
                -DJPEGXL_ENABLE_VIEWERS=OFF
                -DJPEGXL_FORCE_SYSTEM_BROTLI=ON

diff --git a/media-libs/libjxl/libjxl-9999.ebuild 
b/media-libs/libjxl/libjxl-9999.ebuild
index aef3acb16445..5841fd207bc5 100644
--- a/media-libs/libjxl/libjxl-9999.ebuild
+++ b/media-libs/libjxl/libjxl-9999.ebuild
@@ -10,28 +10,28 @@ HOMEPAGE="https://github.com/libjxl/libjxl/";
 
 EGIT_REPO_URI="https://github.com/libjxl/libjxl.git";
 EGIT_SUBMODULES=(
-       third_party/libjpeg-turbo
        third_party/skcms
        third_party/testdata
 )
 
 LICENSE="BSD"
 SLOT="0"
-IUSE="+gdk-pixbuf openexr test"
+IUSE="+gdk-pixbuf gif jpeg openexr +png test"
+REQUIRED_USE="test? ( png )"
 RESTRICT="!test? ( test )"
 
 DEPEND="
        app-arch/brotli:=[${MULTILIB_USEDEP}]
        >=dev-cpp/highway-1.0.7[${MULTILIB_USEDEP}]
-       media-libs/giflib:=[${MULTILIB_USEDEP}]
        >=media-libs/lcms-2.13:2[${MULTILIB_USEDEP}]
-       media-libs/libjpeg-turbo:=[${MULTILIB_USEDEP}]
-       media-libs/libpng:=[${MULTILIB_USEDEP}]
        gdk-pixbuf? (
                dev-libs/glib:2
                x11-libs/gdk-pixbuf:2
        )
+       gif? ( media-libs/giflib:=[${MULTILIB_USEDEP}] )
+       jpeg? ( media-libs/libjpeg-turbo:=[${MULTILIB_USEDEP}] )
        openexr? ( media-libs/openexr:= )
+       png? ( media-libs/libpng:=[${MULTILIB_USEDEP}] )
 "
 RDEPEND="
        ${DEPEND}
@@ -49,6 +49,10 @@ multilib_src_configure() {
                -DJPEGXL_ENABLE_SJPEG=OFF
                -DJPEGXL_WARNINGS_AS_ERRORS=OFF
 
+               -DCMAKE_DISABLE_FIND_PACKAGE_GIF=$(usex !gif)
+               -DCMAKE_DISABLE_FIND_PACKAGE_JPEG=$(usex !jpeg)
+               -DCMAKE_DISABLE_FIND_PACKAGE_PNG=$(usex !png)
+
                -DJPEGXL_ENABLE_SKCMS=OFF
                -DJPEGXL_ENABLE_VIEWERS=OFF
                -DJPEGXL_FORCE_SYSTEM_BROTLI=ON

diff --git a/media-libs/libjxl/metadata.xml b/media-libs/libjxl/metadata.xml
index 1f058f4c648f..faffa19f3221 100644
--- a/media-libs/libjxl/metadata.xml
+++ b/media-libs/libjxl/metadata.xml
@@ -19,7 +19,11 @@
     Contains command line utilities: cjxl, djxl, jxlinfo.
   </longdescription>
   <use>
-    <flag name="gdk-pixbuf">Build a gdk-pixbuf loader</flag>
+    <flag name="jpeg">
+      Enable full support for JPEG images.  When disabled, only
+      lossless conversion between JPEG and JPEG-XL is supported.
+    </flag>
+    <flag name="gdk-pixbuf">Build a gdk-pixbuf loader.</flag>
   </use>
   <upstream>
     <remote-id type="github">libjxl/libjxl</remote-id>

Reply via email to