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/
Date: Fri, 05 Nov 2021 09:25:05
Message-Id: 1636100999.fd7b9099b103ed4b880d41491a5559ab9f709ecb.Alessandro-Barbieri@gentoo
1 commit: fd7b9099b103ed4b880d41491a5559ab9f709ecb
2 Author: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
3 AuthorDate: Fri Nov 5 08:29:16 2021 +0000
4 Commit: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
5 CommitDate: Fri Nov 5 08:29:59 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=fd7b9099
7
8 media-libs/libjxl: add 0.6.1
9
10 Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>
11
12 media-libs/libjxl/Manifest | 1 +
13 media-libs/libjxl/libjxl-0.6.1.ebuild | 156 ++++++++++++++++++++++++++++++++++
14 2 files changed, 157 insertions(+)
15
16 diff --git a/media-libs/libjxl/Manifest b/media-libs/libjxl/Manifest
17 index 63de49120..fc7f70713 100644
18 --- a/media-libs/libjxl/Manifest
19 +++ b/media-libs/libjxl/Manifest
20 @@ -1 +1,2 @@
21 +DIST libjxl-0.6.1.tar.gz 16953185 BLAKE2B d1e906480e80458635a65bd89ce79f13d463e8cf4fb0dfccf6c473e7649fdc5593669effdf85afbb176920c89e61c65c4907834225f7c9e6da4c611996b201e3 SHA512 302935d722160b0b288ac63301f9e95caf82eccf6ad76c4f4da6316a0314ee3562115932b1ceacb0d02708de0a07788992d3478cae73af0b90193f5769f9fb52
22 DIST libjxl-0.6.tar.gz 16953410 BLAKE2B 8941987f6d31096a7286f9d98cdcc16e5fe338e6b3d966343f97fc5b5b932ec92c994fab5781448aa7d96324e5c9ce5c83754b01cf6e752d0702ce9fc0a2087f SHA512 934c86d079c7a1f5382fad158efac225b9d1b27e551ea85ea7ec43e7ffd5cba85ddbfa35658b242a9f9c9589decf245568349abfa8a4fe12898af78d51608852
23
24 diff --git a/media-libs/libjxl/libjxl-0.6.1.ebuild b/media-libs/libjxl/libjxl-0.6.1.ebuild
25 new file mode 100644
26 index 000000000..2ac499ef3
27 --- /dev/null
28 +++ b/media-libs/libjxl/libjxl-0.6.1.ebuild
29 @@ -0,0 +1,156 @@
30 +# Copyright 2021 Gentoo Authors
31 +# Distributed under the terms of the GNU General Public License v2
32 +
33 +EAPI=7
34 +
35 +inherit xdg cmake java-pkg-opt-2
36 +
37 +DESCRIPTION="JPEG XL image format reference implementation"
38 +HOMEPAGE="https://github.com/libjxl/libjxl"
39 +SRC_URI="https://github.com/libjxl/libjxl/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
40 +
41 +KEYWORDS="~amd64"
42 +LICENSE="Apache-2.0"
43 +SLOT="0"
44 +IUSE="abi_x86_64 cpu_flags_arm_neon benchmark devtools examples java man +openexr plugins profile +sjpeg +skcms tcmalloc tools viewers" #emscripten fuzzers
45 +
46 +CDEPEND="
47 + app-arch/brotli
48 + dev-cpp/highway:=
49 + media-libs/libpng
50 + media-libs/lodepng:=
51 + media-libs/giflib
52 + sys-libs/zlib
53 +
54 + benchmark? (
55 + media-libs/libavif
56 + media-libs/libwebp
57 + virtual/jpeg
58 + )
59 + openexr? ( media-libs/openexr:= )
60 + plugins? (
61 + dev-libs/glib:2
62 + media-gfx/gimp
63 + media-libs/babl
64 + media-libs/gegl
65 + media-libs/skcms:=
66 + x11-libs/gdk-pixbuf
67 + x11-misc/shared-mime-info
68 + )
69 + sjpeg? ( media-libs/sjpeg:= )
70 + !skcms? ( media-libs/lcms )
71 + skcms? ( media-libs/skcms:= )
72 + tcmalloc? ( dev-util/google-perftools )
73 + viewers? (
74 + dev-qt/qtconcurrent
75 + dev-qt/qtwidgets
76 + dev-qt/qtx11extras
77 + media-libs/lcms
78 + x11-libs/libxcb
79 + )
80 +"
81 +RDEPEND="
82 + ${CDEPEND}
83 + java? ( virtual/jre:1.8 )
84 +"
85 +DEPEND="
86 + ${CDEPEND}
87 + dev-cpp/gtest
88 + kde-frameworks/extra-cmake-modules
89 + java? ( virtual/jdk:1.8 )
90 + plugins? ( x11-misc/xdg-utils )
91 +"
92 +BDEPEND="
93 + virtual/pkgconfig
94 + man? ( app-text/asciidoc )
95 +"
96 +
97 +PATCHES=( "${FILESDIR}/${PN}-0.6-system-libs.patch" )
98 +REQUIRED_USE="tcmalloc? ( abi_x86_64 )"
99 +DOCS=( AUTHORS README.md SECURITY.md PATENTS CONTRIBUTORS CHANGELOG.md )
100 +
101 +CMAKE_IN_SOURCE_BUILD=1
102 +
103 +src_prepare() {
104 + # remove bundled libs cmake
105 + rm third_party/*.cmake || die
106 + cmake_src_prepare
107 +}
108 +
109 +src_configure() {
110 + local mycmakeargs=(
111 + -DJPEGXL_ENABLE_BENCHMARK=$(usex benchmark)
112 + -DJPEGXL_ENABLE_DEVTOOLS=$(usex devtools)
113 + -DJPEGXL_ENABLE_EXAMPLES=$(usex examples)
114 + -DJPEGXL_ENABLE_JNI=$(usex java)
115 + -DJPEGXL_ENABLE_MANPAGES=$(usex man)
116 + -DJPEGXL_ENABLE_OPENEXR=$(usex openexr)
117 + -DJPEGXL_ENABLE_PLUGINS=$(usex plugins)
118 + -DJPEGXL_ENABLE_PROFILER=$(usex profile)
119 + -DJPEGXL_ENABLE_SJPEG=$(usex sjpeg)
120 + -DJPEGXL_ENABLE_SKCMS=$(usex skcms)
121 + -DJPEGXL_ENABLE_TCMALLOC=$(usex tcmalloc)
122 + -DJPEGXL_ENABLE_TOOLS=$(usex tools)
123 + -DJPEGXL_ENABLE_VIEWERS=$(usex viewers)
124 + -DJPEGXL_FORCE_NEON=$(usex cpu_flags_arm_neon)
125 +
126 + -DBUILD_SHARED_LIBS=ON
127 + -DJPEGXL_BUNDLE_SKCMS=OFF
128 + -DJPEGXL_ENABLE_COVERAGE=OFF
129 + -DJPEGXL_ENABLE_FUZZERS=OFF
130 + -DJPEGXL_ENABLE_TRANSCODE_JPEG=ON
131 + -DJPEGXL_FORCE_SYSTEM_BROTLI=ON
132 + -DJPEGXL_FORCE_SYSTEM_GTEST=ON
133 + -DJPEGXL_FORCE_SYSTEM_HWY=ON
134 + -DJPEGXL_STATIC=OFF
135 + -DJPEGXL_WARNINGS_AS_ERRORS=OFF
136 + )
137 +
138 + cmake_src_configure
139 +}
140 +
141 +src_install() {
142 + cmake_src_install
143 + einstalldocs
144 + #TODO: install documentation
145 + exeinto "/usr/libexec/${PN}"
146 + if use examples; then
147 + doexe {en,de}code_oneshot
148 + dobin jxlinfo
149 + fi
150 + pushd "${BUILD_DIR}/tools" || die
151 + insinto "/usr/share/${PN}"
152 + doins progressive_saliency.conf example_tree.txt
153 + if use java; then
154 + dolib.so libjxl_jni.so
155 + rm libjxl_jni.so || die
156 + doins *.jar
157 + fi
158 + if use benchmark; then
159 + docinto "/usr/share/doc/${PF}/benchmark/hm"
160 + dodoc benchmark/hm/README.md
161 + else
162 + rm -r benchmark || die
163 + fi
164 + # remove non executable or non .m files
165 + find . -type f \! -name '*.m' \! -executable -delete || die
166 + # delete empty dirs
167 + find . -type d -empty -print -delete || die
168 + mkdir -p "${ED}/usr/libexec/${PN}/tools/" || die
169 + # install tools
170 + cp -r . "${ED}/usr/libexec/${PN}/tools/" || die
171 +
172 + # keep in /usr/bin only the executables with jxl in the name
173 + rm -f "${ED}"/usr/libexec/${PN}/tools/*jxl* || die
174 + rm -f "${ED}"/usr/bin/{fuzzer_corpus,*_main,decode_and_encode,*_hlg,tone_map,xyb_range} || die
175 +
176 + find "${D}" -name '*.a' -delete || die
177 +}
178 +
179 +pkg_postinst() {
180 + xdg_mimeinfo_database_update
181 +}
182 +
183 +pkg_postrm() {
184 + xdg_mimeinfo_database_update
185 +}