Gentoo Archives: gentoo-commits

From: Alessandro Barbieri <lssndrbarbieri@×××××.com>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/proj/guru:dev commit in: media-libs/libjxl/, media-libs/libjxl/files/
Date: Tue, 26 Oct 2021 16:35:16
Message-Id: 1635266107.0518c6760f02e240b61d02cea7188585a8c7f6cc.Alessandro-Barbieri@gentoo
1 commit: 0518c6760f02e240b61d02cea7188585a8c7f6cc
2 Author: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
3 AuthorDate: Tue Oct 26 16:34:38 2021 +0000
4 Commit: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
5 CommitDate: Tue Oct 26 16:35:07 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=0518c676
7
8 media-libs/libjxl: add 0.6
9
10 Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>
11
12 media-libs/libjxl/Manifest | 1 +
13 .../libjxl/files/libjxl-0.6-system-libs.patch | 87 ++++++++++++++++++++++
14 media-libs/libjxl/libjxl-0.6.ebuild | 87 ++++++++++++++++++++++
15 media-libs/libjxl/metadata.xml | 11 +++
16 4 files changed, 186 insertions(+)
17
18 diff --git a/media-libs/libjxl/Manifest b/media-libs/libjxl/Manifest
19 new file mode 100644
20 index 000000000..63de49120
21 --- /dev/null
22 +++ b/media-libs/libjxl/Manifest
23 @@ -0,0 +1 @@
24 +DIST libjxl-0.6.tar.gz 16953410 BLAKE2B 8941987f6d31096a7286f9d98cdcc16e5fe338e6b3d966343f97fc5b5b932ec92c994fab5781448aa7d96324e5c9ce5c83754b01cf6e752d0702ce9fc0a2087f SHA512 934c86d079c7a1f5382fad158efac225b9d1b27e551ea85ea7ec43e7ffd5cba85ddbfa35658b242a9f9c9589decf245568349abfa8a4fe12898af78d51608852
25
26 diff --git a/media-libs/libjxl/files/libjxl-0.6-system-libs.patch b/media-libs/libjxl/files/libjxl-0.6-system-libs.patch
27 new file mode 100644
28 index 000000000..6aa776078
29 --- /dev/null
30 +++ b/media-libs/libjxl/files/libjxl-0.6-system-libs.patch
31 @@ -0,0 +1,87 @@
32 +diff '--color=auto' -ru /var/tmp/portage/media-libs/libjxl-0.6/work/libjxl-0.6/lib/jxl.cmake libjxl-0.6/lib/jxl.cmake
33 +--- /var/tmp/portage/media-libs/libjxl-0.6/work/libjxl-0.6/lib/jxl.cmake 2021-10-04 20:02:44.000000000 +0200
34 ++++ libjxl-0.6/lib/jxl.cmake 2021-10-26 16:20:37.332839340 +0200
35 +@@ -387,17 +387,6 @@
36 + target_link_libraries(jxl_enc-obj PUBLIC jxl_profiler)
37 + endif()
38 +
39 +-#TODO(lode): don't depend on CMS for the core library
40 +-if (JPEGXL_ENABLE_SKCMS)
41 +- target_include_directories(jxl_enc-obj PRIVATE
42 +- $<TARGET_PROPERTY:skcms,INCLUDE_DIRECTORIES>
43 +- )
44 +-else ()
45 +- target_include_directories(jxl_enc-obj PRIVATE
46 +- $<TARGET_PROPERTY:lcms2,INCLUDE_DIRECTORIES>
47 +- )
48 +-endif ()
49 +-
50 + # Headers for exporting/importing public headers
51 + include(GenerateExportHeader)
52 + set_target_properties(jxl_dec-obj PROPERTIES
53 +diff '--color=auto' -ru /var/tmp/portage/media-libs/libjxl-0.6/work/libjxl-0.6/plugins/gdk-pixbuf/CMakeLists.txt libjxl-0.6/plugins/gdk-pixbuf/CMakeLists.txt
54 +--- /var/tmp/portage/media-libs/libjxl-0.6/work/libjxl-0.6/plugins/gdk-pixbuf/CMakeLists.txt 2021-10-26 15:59:28.124828026 +0200
55 ++++ libjxl-0.6/plugins/gdk-pixbuf/CMakeLists.txt 2021-10-26 16:24:08.540453940 +0200
56 +@@ -23,7 +23,7 @@
57 +
58 + # Note: This only needs the decoder library, but we don't install the decoder
59 + # shared library.
60 +-target_link_libraries(pixbufloader-jxl jxl jxl_threads skcms-interface PkgConfig::Gdk-Pixbuf)
61 ++target_link_libraries(pixbufloader-jxl jxl jxl_threads skcms PkgConfig::Gdk-Pixbuf)
62 +
63 + pkg_get_variable(GDK_PIXBUF_MODULEDIR gdk-pixbuf-2.0 gdk_pixbuf_moduledir)
64 + install(TARGETS pixbufloader-jxl LIBRARY DESTINATION "${GDK_PIXBUF_MODULEDIR}")
65 +diff '--color=auto' -ru /var/tmp/portage/media-libs/libjxl-0.6/work/libjxl-0.6/third_party/CMakeLists.txt libjxl-0.6/third_party/CMakeLists.txt
66 +--- /var/tmp/portage/media-libs/libjxl-0.6/work/libjxl-0.6/third_party/CMakeLists.txt 2021-10-26 15:59:28.123828010 +0200
67 ++++ libjxl-0.6/third_party/CMakeLists.txt 2021-10-26 16:13:51.758212796 +0200
68 +@@ -113,15 +113,6 @@
69 + endif() # JPEGXL_DEP_LICENSE_DIR
70 + endif()
71 +
72 +-# lodepng
73 +-if( NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/lodepng/lodepng.h" )
74 +- message(FATAL_ERROR "Please run ${PROJECT_SOURCE_DIR}/deps.sh to fetch the "
75 +- "build dependencies.")
76 +-endif()
77 +-include(lodepng.cmake)
78 +-configure_file("${CMAKE_CURRENT_SOURCE_DIR}/lodepng/LICENSE"
79 +- ${PROJECT_BINARY_DIR}/LICENSE.lodepng COPYONLY)
80 +-
81 + # brotli
82 + if (NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/brotli/c/include/brotli/decode.h" OR
83 + JPEGXL_FORCE_SYSTEM_BROTLI)
84 +@@ -190,34 +181,3 @@
85 + endforeach()
86 + endif() # BROTLI_EMSCRIPTEN
87 + endif()
88 +-
89 +-# *cms
90 +-if (JPEGXL_ENABLE_SKCMS OR JPEGXL_ENABLE_PLUGINS)
91 +- if( NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/skcms/skcms.h" )
92 +- message(FATAL_ERROR "Please run ${PROJECT_SOURCE_DIR}/deps.sh to fetch the "
93 +- "build dependencies.")
94 +- endif()
95 +- include(skcms.cmake)
96 +- configure_file("${CMAKE_CURRENT_SOURCE_DIR}/skcms/LICENSE"
97 +- ${PROJECT_BINARY_DIR}/LICENSE.skcms COPYONLY)
98 +-endif ()
99 +-if (JPEGXL_ENABLE_VIEWERS OR NOT JPEGXL_ENABLE_SKCMS)
100 +- if( NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/lcms/.git" )
101 +- message(SEND_ERROR "Please run git submodule update --init")
102 +- endif()
103 +- include(lcms2.cmake)
104 +- configure_file("${CMAKE_CURRENT_SOURCE_DIR}/lcms/COPYING"
105 +- ${PROJECT_BINARY_DIR}/LICENSE.lcms COPYONLY)
106 +-endif()
107 +-
108 +-# sjpeg
109 +-if (JPEGXL_ENABLE_SJPEG)
110 +- if (NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/sjpeg/CMakeLists.txt")
111 +- message(FATAL_ERROR "Please run ${PROJECT_SOURCE_DIR}/deps.sh to fetch the "
112 +- "build dependencies.")
113 +- endif()
114 +- include(sjpeg.cmake)
115 +- configure_file("${CMAKE_CURRENT_SOURCE_DIR}/sjpeg/COPYING"
116 +- ${PROJECT_BINARY_DIR}/LICENSE.sjpeg COPYONLY)
117 +-endif ()
118 +-
119
120 diff --git a/media-libs/libjxl/libjxl-0.6.ebuild b/media-libs/libjxl/libjxl-0.6.ebuild
121 new file mode 100644
122 index 000000000..52c54ec86
123 --- /dev/null
124 +++ b/media-libs/libjxl/libjxl-0.6.ebuild
125 @@ -0,0 +1,87 @@
126 +# Copyright 2021 Gentoo Authors
127 +# Distributed under the terms of the GNU General Public License v2
128 +
129 +EAPI=8
130 +
131 +inherit xdg cmake
132 +
133 +DESCRIPTION="JPEG XL image format reference implementation"
134 +HOMEPAGE="https://github.com/libjxl/libjxl"
135 +SRC_URI="https://github.com/libjxl/libjxl/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
136 +
137 +KEYWORDS="~amd64"
138 +LICENSE="Apache-2.0"
139 +SLOT="0"
140 +IUSE="abi_x86_64 cpu_flags_arm_neon benchmark devtools examples man +openexr plugins profile +sjpeg +skcms tcmalloc tools viewers"
141 +
142 +RDEPEND="
143 + app-arch/brotli
144 + dev-cpp/highway:=
145 + media-libs/libpng
146 + media-libs/lodepng:=
147 + media-libs/giflib
148 + sys-libs/zlib
149 + virtual/jpeg
150 +
151 + !skcms? ( media-libs/lcms )
152 + openexr? ( media-libs/openexr:= )
153 + plugins? (
154 + dev-libs/glib:2
155 + media-gfx/gimp
156 + media-libs/babl
157 + media-libs/gegl
158 + media-libs/skcms:=
159 + x11-libs/gdk-pixbuf
160 + x11-misc/shared-mime-info
161 + )
162 + sjpeg? ( media-libs/sjpeg:= )
163 + skcms? ( media-libs/skcms:= )
164 + tcmalloc? ( dev-util/google-perftools )
165 + viewers? ( media-libs/lcms )
166 +"
167 +DEPEND="
168 + ${RDEPEND}
169 + dev-cpp/gtest
170 + plugins? ( x11-misc/xdg-utils )
171 +"
172 +BDEPEND="man? ( app-text/asciidoc )"
173 +
174 +PATCHES=( "${FILESDIR}/${P}-system-libs.patch" )
175 +REQUIRED_USE="tcmalloc? ( abi_x86_64 )"
176 +
177 +src_prepare() {
178 + # remove bundled libs cmake
179 + rm third_party/*.cmake || die
180 + cmake_src_prepare
181 +}
182 +
183 +src_configure() {
184 + local mycmakeargs=(
185 + -DJPEGXL_ENABLE_BENCHMARK=$(usex benchmark)
186 + -DJPEGXL_ENABLE_DEVTOOLS=$(usex devtools)
187 + -DJPEGXL_ENABLE_EXAMPLES=$(usex examples)
188 + -DJPEGXL_ENABLE_MANPAGES=$(usex man)
189 + -DJPEGXL_ENABLE_OPENEXR=$(usex openexr)
190 + -DJPEGXL_ENABLE_PLUGINS=$(usex plugins)
191 + -DJPEGXL_ENABLE_PROFILER=$(usex profile)
192 + -DJPEGXL_ENABLE_SJPEG=$(usex sjpeg)
193 + -DJPEGXL_ENABLE_SKCMS=$(usex skcms)
194 + -DJPEGXL_ENABLE_TCMALLOC=$(usex tcmalloc)
195 + -DJPEGXL_ENABLE_TOOLS=$(usex tools)
196 + -DJPEGXL_ENABLE_VIEWERS=$(usex viewers)
197 + -DJPEGXL_FORCE_NEON=$(usex cpu_flags_arm_neon)
198 +
199 + -DBUILD_SHARED_LIBS=ON
200 + -DJPEGXL_BUNDLE_SKCMS=OFF
201 + -DJPEGXL_ENABLE_COVERAGE=OFF
202 + -DJPEGXL_ENABLE_FUZZERS=OFF
203 + -DJPEGXL_ENABLE_TRANSCODE_JPEG=ON
204 + -DJPEGXL_FORCE_SYSTEM_BROTLI=ON
205 + -DJPEGXL_FORCE_SYSTEM_GTEST=ON
206 + -DJPEGXL_FORCE_SYSTEM_HWY=ON
207 + -DJPEGXL_STATIC=OFF
208 + -DJPEGXL_WARNINGS_AS_ERRORS=OFF
209 + )
210 +
211 + cmake_src_configure
212 +}
213
214 diff --git a/media-libs/libjxl/metadata.xml b/media-libs/libjxl/metadata.xml
215 index d9a1e3c6e..ac9483923 100644
216 --- a/media-libs/libjxl/metadata.xml
217 +++ b/media-libs/libjxl/metadata.xml
218 @@ -5,4 +5,15 @@
219 <email>dnovomesky@×××××.com</email>
220 <name>Daniel Novomesky</name>
221 </maintainer>
222 + <use>
223 + <flag name="benchmark">Build JPEGXL benchmark tools</flag>
224 + <flag name="devtools">Build JPEGXL developer tools</flag>
225 + <flag name="openexr">Build JPEGXL with support for OpenEXR</flag>
226 + <flag name="plugins">Build third-party plugins to support JPEG XL in other applications</flag>
227 + <flag name="sjpeg">Build JPEGXL with support for encoding with sjpeg</flag>
228 + <flag name="skcms">Build with skcms instead of lcms2</flag>
229 + <flag name="tcmalloc">Build JPEGXL using gperftools (tcmalloc) allocator</flag>
230 + <flag name="tools">Build JPEGXL user tools: cjxl and djxl</flag>
231 + <flag name="viewers">Build JPEGXL viewer tools for evaluation</flag>
232 + </use>
233 </pkgmetadata>