Gentoo Archives: gentoo-commits

From: Sam James <sam@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-libs/openjpeg/files/, media-libs/openjpeg/
Date: Tue, 29 Dec 2020 02:59:34
Message-Id: 1609210584.77e5ad18b2cc380826ad062461b08357633889a6.sam@gentoo
1 commit: 77e5ad18b2cc380826ad062461b08357633889a6
2 Author: Sam James <sam <AT> gentoo <DOT> org>
3 AuthorDate: Tue Dec 29 02:56:24 2020 +0000
4 Commit: Sam James <sam <AT> gentoo <DOT> org>
5 CommitDate: Tue Dec 29 02:56:24 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=77e5ad18
7
8 media-libs/openjpeg: security bump to 2.4.0
9
10 Bug: https://bugs.gentoo.org/675426
11 Bug: https://bugs.gentoo.org/718918
12 Closes: https://bugs.gentoo.org/715306
13 Closes: https://bugs.gentoo.org/715422
14 Closes: https://bugs.gentoo.org/715130
15 Package-Manager: Portage-3.0.9, Repoman-3.0.2
16 Signed-off-by: Sam James <sam <AT> gentoo.org>
17
18 media-libs/openjpeg/Manifest | 2 +
19 .../files/openjpeg-2.4.0-gnuinstalldirs.patch | 420 +++++++++++++++++++++
20 media-libs/openjpeg/openjpeg-2.4.0.ebuild | 139 +++++++
21 3 files changed, 561 insertions(+)
22
23 diff --git a/media-libs/openjpeg/Manifest b/media-libs/openjpeg/Manifest
24 index 1d294acdcfb..0179013e339 100644
25 --- a/media-libs/openjpeg/Manifest
26 +++ b/media-libs/openjpeg/Manifest
27 @@ -1,3 +1,5 @@
28 DIST openjpeg-1.5.2.tar.gz 1385702 BLAKE2B 936ab6e0fb48f2839df13113c716c39b9572bd590206cd823dedccfd4001444d73a81ccbf82616a40a35ad8b1fae8d2f08d7c265a771d9d9ef413beac5e84ac1 SHA512 b945cf4f8b5e3227a0c07120c94b0ed5bf30c901de73059ee1d47975f46744fb62bbe84cdb2917c6431128f400020874eb07160af870b5448ced897998b08862
29 DIST openjpeg-2.3.1.tar.gz 2214401 BLAKE2B ecc7e573592a5302dcdbade791f6aa6e48f6791c7412fdd44976f3619c8fc0cca7d904fa42013f33ab17dd0f569a76d3c49a73eccaf0a749d34f305362367af9 SHA512 339fbc899bddf2393d214df71ed5d6070a3a76b933b1e75576c8a0ae9dfcc4adec40bdc544f599e4b8d0bc173e4e9e7352408497b5b3c9356985605830c26c03
30 +DIST openjpeg-2.4.0.tar.gz 2233229 BLAKE2B ab8907638ac041ce7dcbcbcd9624ea5e4b7542c9ec38a850e363c071c27c4bc8b16e207700b12e67d8d32bdd9b0838735bede27084090ce95105d32c539b09cf SHA512 55daab47d33823af94e32e5d345b52c251a5410f0c8e0a13b693f17899eedc8b2bb107489ddcba9ab78ef17dfd7cd80d3c5ec80c1e429189cb041124b67e07a8
31 DIST openjpeg-data_20180620.tar.gz 497894373 BLAKE2B 3a596f8f9ee56037bf567b6f2d3731b97299dba24e0c9d3562d38c15ddf58d352a918edaccb528f054cf288f87d6362d90d3450d4a5b968e9c8dfe05f54d89fe SHA512 32189a10c4d8cf00c23cda455f9e4353deb2175189d85f9b3aab1c4375a02a491ec2de89815725ebbcaea86c2c7ab274b89ee2583ffd8bf0dc32d4fc2d8f7507
32 +DIST openjpeg-data_20201130.tar.gz 497969983 BLAKE2B 35ff1ee234e3bbf47a822151c97cdf2764f864094973fa60adc7962f8065b38318b0cc41338b5ba3fffd9bb00eac3eaf4153ecc398abd49a8047168414c1c85b SHA512 4c367c8262fe894f90a1e63fb59d87e974ae0d750d3cee89adfe4d765040f0a2049b491a17a34a5b3ba79e183a508c9d592376fe3c112df56c311bf3212f0c31
33
34 diff --git a/media-libs/openjpeg/files/openjpeg-2.4.0-gnuinstalldirs.patch b/media-libs/openjpeg/files/openjpeg-2.4.0-gnuinstalldirs.patch
35 new file mode 100644
36 index 00000000000..7b0014980fd
37 --- /dev/null
38 +++ b/media-libs/openjpeg/files/openjpeg-2.4.0-gnuinstalldirs.patch
39 @@ -0,0 +1,420 @@
40 +From fecc8e9e23f78de94c41bc641b3e5b9e9a84560b Mon Sep 17 00:00:00 2001
41 +From: Andreas Sturmlechner <asturm@g.o>
42 +Date: Thu, 11 Apr 2019 13:10:57 +0200
43 +Subject: [PATCH] Use GNUInstallDirs for standard installation directories
44 +
45 +Raises minimum cmake version by a little.
46 +- Later rebased by sam@g.o for 2.4.0
47 +--- a/CMakeLists.txt
48 ++++ b/CMakeLists.txt
49 +@@ -7,7 +7,7 @@
50 + # For this purpose you can define a CMake var: OPENJPEG_NAMESPACE to whatever you like
51 + # e.g.:
52 + # set(OPENJPEG_NAMESPACE "GDCMOPENJPEG")
53 +-cmake_minimum_required(VERSION 2.8.2)
54 ++cmake_minimum_required(VERSION 2.8.5)
55 +
56 + if(COMMAND CMAKE_POLICY)
57 + cmake_policy(SET CMP0003 NEW)
58 +@@ -105,58 +105,27 @@ endif()
59 + # --------------------------------------------------------------------------
60 + # Install directories
61 + # Build DOCUMENTATION (not in ALL target and only if Doxygen is found)
62 ++include(GNUInstallDirs)
63 ++
64 + option(BUILD_DOC "Build the HTML documentation (with doxygen if available)." OFF)
65 +
66 + string(TOLOWER ${PROJECT_NAME} projectname)
67 + set(OPENJPEG_INSTALL_SUBDIR "${projectname}-${OPENJPEG_VERSION_MAJOR}.${OPENJPEG_VERSION_MINOR}")
68 +
69 +-if(NOT OPENJPEG_INSTALL_BIN_DIR)
70 +- set(OPENJPEG_INSTALL_BIN_DIR "bin")
71 +-endif()
72 +-
73 +-if(NOT OPENJPEG_INSTALL_LIB_DIR)
74 +- set(OPENJPEG_INSTALL_LIB_DIR "lib")
75 +-endif()
76 +-
77 +-if(NOT OPENJPEG_INSTALL_SHARE_DIR)
78 +- set(OPENJPEG_INSTALL_SHARE_DIR "share")
79 +-endif()
80 +-
81 +-if(NOT OPENJPEG_INSTALL_DATA_DIR)
82 +- set(OPENJPEG_INSTALL_DATA_DIR "${OPENJPEG_INSTALL_SHARE_DIR}/${OPENJPEG_INSTALL_SUBDIR}")
83 +-endif()
84 +-
85 +-if(NOT OPENJPEG_INSTALL_INCLUDE_DIR)
86 +- set(OPENJPEG_INSTALL_INCLUDE_DIR "include/${OPENJPEG_INSTALL_SUBDIR}")
87 +-endif()
88 +-
89 +-if(BUILD_DOC)
90 +-if(NOT OPENJPEG_INSTALL_MAN_DIR)
91 +- set(OPENJPEG_INSTALL_MAN_DIR "share/man/")
92 +-endif()
93 +-
94 +-if(NOT OPENJPEG_INSTALL_DOC_DIR)
95 +- set(OPENJPEG_INSTALL_DOC_DIR "share/doc/${OPENJPEG_INSTALL_SUBDIR}")
96 +-endif()
97 +-endif()
98 +-
99 + if(NOT OPENJPEG_INSTALL_JNI_DIR)
100 + if(WIN32)
101 +- set(OPENJPEG_INSTALL_JNI_DIR ${OPENJPEG_INSTALL_BIN_DIR})
102 ++ set(OPENJPEG_INSTALL_JNI_DIR ${CMAKE_INSTALL_BINDIR})
103 + else()
104 +- set(OPENJPEG_INSTALL_JNI_DIR ${OPENJPEG_INSTALL_LIB_DIR})
105 ++ set(OPENJPEG_INSTALL_JNI_DIR ${CMAKE_INSTALL_LIBDIR})
106 + endif()
107 + endif()
108 +
109 + if(NOT OPENJPEG_INSTALL_PACKAGE_DIR)
110 +- # We could install *.cmake files in share/ however those files contains
111 +- # hardcoded path to libraries on a multi-arch system (fedora/debian) those
112 +- # path will be different (lib/i386-linux-gnu vs lib/x86_64-linux-gnu)
113 +- set(OPENJPEG_INSTALL_PACKAGE_DIR "${OPENJPEG_INSTALL_LIB_DIR}/${OPENJPEG_INSTALL_SUBDIR}")
114 ++ set(OPENJPEG_INSTALL_PACKAGE_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${OPENJPEG_INSTALL_SUBDIR}")
115 + endif()
116 +
117 + if (APPLE)
118 +- list(APPEND OPENJPEG_LIBRARY_PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/${OPENJPEG_INSTALL_LIB_DIR}")
119 ++ list(APPEND OPENJPEG_LIBRARY_PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}")
120 + option(OPJ_USE_DSYMUTIL "Call dsymutil on binaries after build." OFF)
121 + endif()
122 +
123 +@@ -366,14 +335,14 @@ if(BUILD_PKGCONFIG_FILES)
124 + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/lib/openjp2/libopenjp2.pc.cmake.in
125 + ${CMAKE_CURRENT_BINARY_DIR}/libopenjp2.pc @ONLY)
126 + install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libopenjp2.pc DESTINATION
127 +- ${OPENJPEG_INSTALL_LIB_DIR}/pkgconfig )
128 ++ ${CMAKE_INSTALL_LIBDIR}/pkgconfig )
129 + #
130 + if(BUILD_JPWL)
131 + # install in lib and not share (see multi-arch note above)
132 + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/lib/openjpwl/libopenjpwl.pc.cmake.in
133 + ${CMAKE_CURRENT_BINARY_DIR}/libopenjpwl.pc @ONLY)
134 + install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libopenjpwl.pc DESTINATION
135 +- ${OPENJPEG_INSTALL_LIB_DIR}/pkgconfig )
136 ++ ${CMAKE_INSTALL_LIBDIR}/pkgconfig )
137 + endif()
138 + #
139 + if(BUILD_JPIP)
140 +@@ -381,7 +350,7 @@ if(BUILD_PKGCONFIG_FILES)
141 + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/lib/openjpip/libopenjpip.pc.cmake.in
142 + ${CMAKE_CURRENT_BINARY_DIR}/libopenjpip.pc @ONLY)
143 + install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libopenjpip.pc DESTINATION
144 +- ${OPENJPEG_INSTALL_LIB_DIR}/pkgconfig )
145 ++ ${CMAKE_INSTALL_LIBDIR}/pkgconfig )
146 + endif()
147 + #
148 + if(BUILD_JP3D)
149 +@@ -389,7 +358,7 @@ if(BUILD_PKGCONFIG_FILES)
150 + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/lib/openjp3d/libopenjp3d.pc.cmake.in
151 + ${CMAKE_CURRENT_BINARY_DIR}/libopenjp3d.pc @ONLY)
152 + install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libopenjp3d.pc DESTINATION
153 +- ${OPENJPEG_INSTALL_LIB_DIR}/pkgconfig )
154 ++ ${CMAKE_INSTALL_LIBDIR}/pkgconfig )
155 + endif()
156 + endif()
157 +
158 +--- a/cmake/OpenJPEGConfig.cmake.in
159 ++++ b/cmake/OpenJPEGConfig.cmake.in
160 +@@ -27,7 +27,7 @@ if(EXISTS ${SELF_DIR}/OpenJPEGTargets.cmake)
161 + # This is an install tree
162 + include(${SELF_DIR}/OpenJPEGTargets.cmake)
163 +
164 +- set(INC_DIR "@CMAKE_INSTALL_PREFIX@/@OPENJPEG_INSTALL_INCLUDE_DIR@")
165 ++ set(INC_DIR "@CMAKE_INSTALL_FULL_INCLUDEDIR@/@OPENJPEG_INSTALL_SUBDIR@")
166 + get_filename_component(OPENJPEG_INCLUDE_DIRS "${INC_DIR}" ABSOLUTE)
167 +
168 + else()
169 +--- a/doc/CMakeLists.txt
170 ++++ b/doc/CMakeLists.txt
171 +@@ -44,7 +44,7 @@ if(DOXYGEN_FOUND)
172 +
173 + # install HTML documentation (install png files too):
174 + install(DIRECTORY ${CMAKE_BINARY_DIR}/doc/html
175 +- DESTINATION ${OPENJPEG_INSTALL_DOC_DIR}
176 ++ DESTINATION ${CMAKE_INSTALL_DOCDIR}
177 + PATTERN ".svn" EXCLUDE
178 + )
179 + else()
180 +--- a/src/bin/jp2/CMakeLists.txt
181 ++++ b/src/bin/jp2/CMakeLists.txt
182 +@@ -67,7 +67,7 @@ foreach(exe opj_decompress opj_compress opj_dump)
183 + # Install exe
184 + install(TARGETS ${exe}
185 + EXPORT OpenJPEGTargets
186 +- DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications
187 ++ DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Applications
188 + )
189 + if(OPJ_USE_DSYMUTIL)
190 + add_custom_command(TARGET ${exe} POST_BUILD
191 +@@ -83,6 +83,6 @@ install(
192 + FILES ${OPENJPEG_SOURCE_DIR}/doc/man/man1/opj_compress.1
193 + ${OPENJPEG_SOURCE_DIR}/doc/man/man1/opj_decompress.1
194 + ${OPENJPEG_SOURCE_DIR}/doc/man/man1/opj_dump.1
195 +- DESTINATION ${OPENJPEG_INSTALL_MAN_DIR}/man1)
196 ++ DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
197 + #
198 + endif()
199 +--- a/src/bin/jp3d/CMakeLists.txt
200 ++++ b/src/bin/jp3d/CMakeLists.txt
201 +@@ -36,6 +36,6 @@ foreach(exe opj_jp3d_compress opj_jp3d_decompress)
202 + # Install exe
203 + install(TARGETS ${exe}
204 + EXPORT OpenJP3DTargets
205 +- DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications
206 ++ DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Applications
207 + )
208 + endforeach()
209 +--- a/src/bin/jpip/CMakeLists.txt
210 ++++ b/src/bin/jpip/CMakeLists.txt
211 +@@ -13,7 +13,7 @@ add_executable(opj_jpip_addxml opj_jpip_addxml.c)
212 + # Install exe
213 + install(TARGETS opj_jpip_addxml
214 + EXPORT OpenJPEGTargets
215 +- DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications
216 ++ DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Applications
217 + )
218 +
219 + if(BUILD_JPIP_SERVER)
220 +@@ -38,7 +38,7 @@ if(BUILD_JPIP_SERVER)
221 + # Install exe
222 + install(TARGETS opj_server
223 + EXPORT OpenJPEGTargets
224 +- DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications
225 ++ DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Applications
226 + )
227 + endif()
228 +
229 +@@ -52,7 +52,7 @@ add_executable(${exe} ${exe}.c)
230 + target_link_libraries(${exe} openjpip)
231 + install(TARGETS ${exe}
232 + EXPORT OpenJPEGTargets
233 +- DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications
234 ++ DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Applications
235 + )
236 + endforeach()
237 +
238 +@@ -123,7 +123,7 @@ if(Java_Development_FOUND AND Java_JAVAC_EXECUTABLE)
239 + )
240 +
241 + install(FILES ${LIBRARY_OUTPUT_PATH}/opj_jpip_viewer.jar
242 +- DESTINATION ${OPENJPEG_INSTALL_SHARE_DIR} COMPONENT JavaModule
243 ++ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR} COMPONENT JavaModule
244 + )
245 + else()
246 + # opj_viewer (simple, no xerces)
247 +@@ -153,7 +153,7 @@ if(Java_Development_FOUND AND Java_JAVAC_EXECUTABLE)
248 + )
249 +
250 + install(FILES ${LIBRARY_OUTPUT_PATH}/opj_jpip_viewer.jar
251 +- DESTINATION ${OPENJPEG_INSTALL_SHARE_DIR} COMPONENT JavaModule
252 ++ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR} COMPONENT JavaModule
253 + )
254 + endif()
255 + else()
256 +--- a/src/bin/jpwl/CMakeLists.txt
257 ++++ b/src/bin/jpwl/CMakeLists.txt
258 +@@ -57,6 +57,6 @@ foreach(exe decompress compress)
259 + endif()
260 +
261 + install(TARGETS ${jpwl_exe}
262 +- DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications
263 ++ DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Applications
264 + )
265 + endforeach()
266 +--- a/src/bin/mj2/CMakeLists.txt
267 ++++ b/src/bin/mj2/CMakeLists.txt
268 +@@ -43,5 +43,5 @@ foreach(exe
269 + endif()
270 +
271 + install(TARGETS ${exe}
272 +- DESTINATION ${OPENJPEG_INSTALL_BIN_DIR})
273 ++ DESTINATION ${CMAKE_INSTALL_BINDIR})
274 + endforeach()
275 +--- a/src/lib/openjp2/CMakeLists.txt
276 ++++ b/src/lib/openjp2/CMakeLists.txt
277 +@@ -2,7 +2,7 @@ include_regular_expression("^.*$")
278 +
279 + #
280 + install( FILES ${CMAKE_CURRENT_BINARY_DIR}/opj_config.h
281 +- DESTINATION ${OPENJPEG_INSTALL_INCLUDE_DIR} COMPONENT Headers)
282 ++ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${OPENJPEG_INSTALL_SUBDIR} COMPONENT Headers)
283 +
284 + include_directories(
285 + ${${OPENJPEG_NAMESPACE}_BINARY_DIR}/src/lib/openjp2 # opj_config.h and opj_config_private.h
286 +@@ -114,21 +114,21 @@ endif()
287 + # Install library
288 + install(TARGETS ${INSTALL_LIBS}
289 + EXPORT OpenJPEGTargets
290 +- RUNTIME DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications
291 +- LIBRARY DESTINATION ${OPENJPEG_INSTALL_LIB_DIR} COMPONENT Libraries
292 +- ARCHIVE DESTINATION ${OPENJPEG_INSTALL_LIB_DIR} COMPONENT Libraries
293 ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Applications
294 ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libraries
295 ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libraries
296 + )
297 +
298 + # Install includes files
299 + install(FILES openjpeg.h opj_stdint.h
300 +- DESTINATION ${OPENJPEG_INSTALL_INCLUDE_DIR} COMPONENT Headers
301 ++ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${OPENJPEG_INSTALL_SUBDIR} COMPONENT Headers
302 + )
303 +
304 + if(BUILD_DOC)
305 + # install man page of the library
306 + install(
307 + FILES ${OPENJPEG_SOURCE_DIR}/doc/man/man3/libopenjp2.3
308 +- DESTINATION ${OPENJPEG_INSTALL_MAN_DIR}/man3)
309 ++ DESTINATION ${CMAKE_INSTALL_MANDIR}/man3)
310 + endif()
311 +
312 + if(BUILD_LUTS_GENERATOR)
313 +--- a/src/lib/openjp2/libopenjp2.pc.cmake.in
314 ++++ b/src/lib/openjp2/libopenjp2.pc.cmake.in
315 +@@ -1,9 +1,9 @@
316 + prefix=@CMAKE_INSTALL_PREFIX@
317 +-bindir=${prefix}/@OPENJPEG_INSTALL_BIN_DIR@
318 +-mandir=${prefix}/@OPENJPEG_INSTALL_MAN_DIR@
319 +-docdir=${prefix}/@OPENJPEG_INSTALL_DOC_DIR@
320 +-libdir=${prefix}/@OPENJPEG_INSTALL_LIB_DIR@
321 +-includedir=${prefix}/@OPENJPEG_INSTALL_INCLUDE_DIR@
322 ++bindir=${prefix}/@CMAKE_INSTALL_BINDIR@
323 ++mandir=${prefix}/@CMAKE_INSTALL_MANDIR@
324 ++docdir=${prefix}/@CMAKE_INSTALL_DOCDIR@
325 ++libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
326 ++includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/@OPENJPEG_INSTALL_SUBDIR@
327 +
328 + Name: openjp2
329 + Description: JPEG2000 library (Part 1 and 2)
330 +--- a/src/lib/openjp3d/CMakeLists.txt
331 ++++ b/src/lib/openjp3d/CMakeLists.txt
332 +@@ -34,12 +34,12 @@ endif()
333 + # Install library
334 + install(TARGETS ${OPENJP3D_LIBRARY_NAME}
335 + EXPORT OpenJP3DTargets
336 +- DESTINATION ${OPENJPEG_INSTALL_LIB_DIR}
337 ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}
338 + COMPONENT Libraries
339 + )
340 +
341 + # Install includes files
342 + install(FILES openjp3d.h
343 +- DESTINATION ${OPENJPEG_INSTALL_INCLUDE_DIR}
344 ++ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${OPENJPEG_INSTALL_SUBDIR}
345 + COMPONENT Headers
346 + )
347 +--- a/src/lib/openjp3d/libopenjp3d.pc.cmake.in
348 ++++ b/src/lib/openjp3d/libopenjp3d.pc.cmake.in
349 +@@ -1,9 +1,9 @@
350 + prefix=@CMAKE_INSTALL_PREFIX@
351 +-bindir=${prefix}/@OPENJPEG_INSTALL_BIN_DIR@
352 +-mandir=${prefix}/@OPENJPEG_INSTALL_MAN_DIR@
353 +-docdir=${prefix}/@OPENJPEG_INSTALL_DOC_DIR@
354 +-libdir=${prefix}/@OPENJPEG_INSTALL_LIB_DIR@
355 +-includedir=${prefix}/@OPENJPEG_INSTALL_INCLUDE_DIR@
356 ++bindir=${prefix}/@CMAKE_INSTALL_BINDIR@
357 ++mandir=${prefix}/@CMAKE_INSTALL_MANDIR@
358 ++docdir=${prefix}/@CMAKE_INSTALL_DOCDIR@
359 ++libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
360 ++includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/@OPENJPEG_INSTALL_SUBDIR@
361 +
362 + Name: openjp3d
363 + Description: JPEG2000 Extensions for three-dimensional data (Part 10)
364 +--- a/src/lib/openjpip/CMakeLists.txt
365 ++++ b/src/lib/openjpip/CMakeLists.txt
366 +@@ -74,9 +74,9 @@ endif()
367 + # Install library
368 + install(TARGETS openjpip
369 + EXPORT OpenJPEGTargets
370 +- RUNTIME DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications
371 +- LIBRARY DESTINATION ${OPENJPEG_INSTALL_LIB_DIR} COMPONENT Libraries
372 +- ARCHIVE DESTINATION ${OPENJPEG_INSTALL_LIB_DIR} COMPONENT Libraries
373 ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Applications
374 ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libraries
375 ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libraries
376 + )
377 +
378 + if(BUILD_JPIP_SERVER)
379 +@@ -86,6 +86,6 @@ if(BUILD_JPIP_SERVER)
380 + PROPERTIES COMPILE_FLAGS "-DSERVER")
381 + install(TARGETS openjpip_server
382 + EXPORT OpenJPEGTargets
383 +- DESTINATION ${OPENJPEG_INSTALL_LIB_DIR} COMPONENT Libraries
384 ++ DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libraries
385 + )
386 + endif()
387 +--- a/src/lib/openjpip/libopenjpip.pc.cmake.in
388 ++++ b/src/lib/openjpip/libopenjpip.pc.cmake.in
389 +@@ -1,9 +1,9 @@
390 + prefix=@CMAKE_INSTALL_PREFIX@
391 +-bindir=${prefix}/@OPENJPEG_INSTALL_BIN_DIR@
392 +-mandir=${prefix}/@OPENJPEG_INSTALL_MAN_DIR@
393 +-docdir=${prefix}/@OPENJPEG_INSTALL_DOC_DIR@
394 +-libdir=${prefix}/@OPENJPEG_INSTALL_LIB_DIR@
395 +-includedir=${prefix}/@OPENJPEG_INSTALL_INCLUDE_DIR@
396 ++bindir=${prefix}/@CMAKE_INSTALL_BINDIR@
397 ++mandir=${prefix}/@CMAKE_INSTALL_MANDIR@
398 ++docdir=${prefix}/@CMAKE_INSTALL_DOCDIR@
399 ++libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
400 ++includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/@OPENJPEG_INSTALL_SUBDIR@
401 +
402 + Name: openjpip
403 + Description: JPEG2000 Interactivity tools, APIs and protocols (Part 9)
404 +--- a/src/lib/openjpwl/CMakeLists.txt
405 ++++ b/src/lib/openjpwl/CMakeLists.txt
406 +@@ -58,7 +58,7 @@ endif()
407 + # Install library
408 + install(TARGETS openjpwl
409 + EXPORT OpenJPEGTargets
410 +- RUNTIME DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications
411 +- LIBRARY DESTINATION ${OPENJPEG_INSTALL_LIB_DIR} COMPONENT Libraries
412 +- ARCHIVE DESTINATION ${OPENJPEG_INSTALL_LIB_DIR} COMPONENT Libraries
413 ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Applications
414 ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libraries
415 ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libraries
416 + )
417 +--- a/src/lib/openjpwl/libopenjpwl.pc.cmake.in
418 ++++ b/src/lib/openjpwl/libopenjpwl.pc.cmake.in
419 +@@ -1,9 +1,9 @@
420 + prefix=@CMAKE_INSTALL_PREFIX@
421 +-bindir=${prefix}/@OPENJPEG_INSTALL_BIN_DIR@
422 +-mandir=${prefix}/@OPENJPEG_INSTALL_MAN_DIR@
423 +-docdir=${prefix}/@OPENJPEG_INSTALL_DOC_DIR@
424 +-libdir=${prefix}/@OPENJPEG_INSTALL_LIB_DIR@
425 +-includedir=${prefix}/@OPENJPEG_INSTALL_INCLUDE_DIR@
426 ++bindir=${prefix}/@CMAKE_INSTALL_BINDIR@
427 ++mandir=${prefix}/@CMAKE_INSTALL_MANDIR@
428 ++docdir=${prefix}/@CMAKE_INSTALL_DOCDIR@
429 ++libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
430 ++includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/@OPENJPEG_INSTALL_SUBDIR@
431 +
432 + Name: openjpwl
433 + Description: JPEG2000 Wireless library (Part 11)
434 +--- a/src/lib/openmj2/CMakeLists.txt
435 ++++ b/src/lib/openmj2/CMakeLists.txt
436 +@@ -53,12 +53,12 @@ endif()
437 + # Install library
438 + install(TARGETS ${OPENMJ2_LIBRARY_NAME}
439 + EXPORT OpenMJ2Targets
440 +- DESTINATION ${OPENJPEG_INSTALL_LIB_DIR}
441 ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}
442 + COMPONENT Libraries
443 + )
444 +
445 + # Install includes files
446 + #install(FILES mj2.h
447 +-# DESTINATION ${OPENJPEG_INSTALL_INCLUDE_DIR}/${subdir}
448 ++# DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${OPENJPEG_INSTALL_SUBDIR}
449 + # COMPONENT Headers
450 + #)
451 +--- a/wrapping/java/openjp2/CMakeLists.txt
452 ++++ b/wrapping/java/openjp2/CMakeLists.txt
453 +@@ -69,5 +69,5 @@ add_custom_target(OpenJPEGJavaJar ALL
454 + )
455 +
456 + install(FILES ${LIBRARY_OUTPUT_PATH}/openjpeg.jar
457 +- DESTINATION ${OPENJPEG_INSTALL_SHARE_DIR} COMPONENT JavaModule
458 ++ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR} COMPONENT JavaModule
459 + )
460
461 diff --git a/media-libs/openjpeg/openjpeg-2.4.0.ebuild b/media-libs/openjpeg/openjpeg-2.4.0.ebuild
462 new file mode 100644
463 index 00000000000..835a389bc40
464 --- /dev/null
465 +++ b/media-libs/openjpeg/openjpeg-2.4.0.ebuild
466 @@ -0,0 +1,139 @@
467 +# Copyright 1999-2020 Gentoo Authors
468 +# Distributed under the terms of the GNU General Public License v2
469 +
470 +EAPI=7
471 +
472 +CMAKE_ECLASS=cmake
473 +inherit cmake-multilib flag-o-matic
474 +
475 +# Make sure that test data are not newer than release;
476 +# otherwise we will see "Found-But-No-Test" test failures!
477 +MY_TESTDATA_COMMIT="cd724fb1f93e6af41ebc68c4904f4bf2a4cd1e60"
478 +
479 +DESCRIPTION="Open-source JPEG 2000 library"
480 +HOMEPAGE="https://www.openjpeg.org"
481 +SRC_URI="https://github.com/uclouvain/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
482 + test? ( https://github.com/uclouvain/openjpeg-data/archive/${MY_TESTDATA_COMMIT}.tar.gz -> ${PN}-data_20201130.tar.gz )"
483 +
484 +LICENSE="BSD-2"
485 +SLOT="2/7" # based on SONAME
486 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
487 +IUSE="doc static-libs test"
488 +RESTRICT="!test? ( test )"
489 +
490 +RDEPEND="
491 + media-libs/lcms:2
492 + media-libs/libpng:0=
493 + media-libs/tiff:0
494 + sys-libs/zlib:="
495 +DEPEND="${RDEPEND}"
496 +BDEPEND="
497 + doc? ( app-doc/doxygen )"
498 +
499 +DOCS=( AUTHORS.md CHANGELOG.md NEWS.md README.md THANKS.md )
500 +
501 +PATCHES=(
502 + "${FILESDIR}/${PN}-2.4.0-gnuinstalldirs.patch" # bug 667150
503 +)
504 +
505 +src_prepare() {
506 + if use test; then
507 + mv "${WORKDIR}"/openjpeg-data-${MY_TESTDATA_COMMIT} "${WORKDIR}"/data ||
508 + die "Failed to rename test data"
509 + fi
510 +
511 + cmake_src_prepare
512 +}
513 +
514 +multilib_src_configure() {
515 + local mycmakeargs=(
516 + -DBUILD_PKGCONFIG_FILES=ON # always build pkgconfig files, bug #539834
517 + -DBUILD_TESTING="$(multilib_native_usex test)"
518 + -DBUILD_DOC=$(multilib_native_usex doc ON OFF)
519 + -DBUILD_CODEC=$(multilib_is_native_abi && echo ON || echo OFF)
520 + -DBUILD_STATIC_LIBS=$(usex static-libs)
521 + )
522 +
523 + # Cheat a little bit and force disabling fixed point magic
524 + # The test suite is extremely fragile to small changes
525 + # bug 715130, bug 715422
526 + # https://github.com/uclouvain/openjpeg/issues/1017
527 + multilib_is_native_abi && use test && append-cflags "-ffp-contract=off"
528 +
529 + cmake_src_configure
530 +}
531 +
532 +multilib_src_test() {
533 + if ! multilib_is_native_abi ; then
534 + elog "Cannot run tests for non-multilib abi."
535 + return 0
536 + fi
537 +
538 + local myctestargs=
539 +
540 + pushd "${BUILD_DIR}" > /dev/null || die
541 + [[ -e CTestTestfile.cmake ]] || die "Test suite not available! Check source!"
542 +
543 + [[ -n ${TEST_VERBOSE} ]] && myctestargs+=( --extra-verbose --output-on-failure )
544 +
545 + echo ctest "${myctestargs[@]}" "$@"
546 + if ctest "${myctestargs[@]}" "$@" ; then
547 + einfo "Tests succeeded."
548 + popd > /dev/null || die
549 + return 0
550 + else
551 + local FAILEDTEST_LOG="${BUILD_DIR}/Testing/Temporary/LastTestsFailed.log"
552 +
553 + if [[ ! -f "${FAILEDTEST_LOG}" ]] ; then
554 + # Should never happen
555 + die "Cannot analyze test failures: LastTestsFailed.log is missing!"
556 + fi
557 +
558 + echo ""
559 + einfo "Note: Upstream is maintaining a list of known test failures."
560 + einfo "We will now compare our test results against this list and sort out any known failure."
561 +
562 + local KNOWN_FAILURES_LIST="${T}/known_failures_compiled.txt"
563 + cat "${S}/tools/travis-ci/knownfailures-all.txt" > "${KNOWN_FAILURES_LIST}" || die
564 +
565 + local ARCH_SPECIFIC_FAILURES=
566 + if use amd64 ; then
567 + ARCH_SPECIFIC_FAILURES="$(find "${S}/tools/travis-ci/" -name 'knownfailures-*x86_64*.txt' -print0 | sort -z | tail -z -n 1 | tr -d '\0')"
568 + elif use x86 || use arm || use arm64; then
569 + ARCH_SPECIFIC_FAILURES="$(find "${S}/tools/travis-ci/" -name 'knownfailures-*i386*.txt' -print0 | sort -z | tail -z -n 1 | tr -d '\0')"
570 + fi
571 +
572 + if [[ -f "${ARCH_SPECIFIC_FAILURES}" ]] ; then
573 + einfo "Adding architecture specific failures (${ARCH_SPECIFIC_FAILURES}) to known failures list ..."
574 + cat "${ARCH_SPECIFIC_FAILURES}" >> "${KNOWN_FAILURES_LIST}" || die
575 + fi
576 +
577 + # Logic copied from $S/tools/travis-ci/run.sh
578 + local FAILEDTEST=
579 + local FAILURES_LOG="${BUILD_DIR}/Testing/Temporary/failures.txt"
580 + local HAS_UNKNOWN_TEST_FAILURES=0
581 +
582 + echo ""
583 +
584 + awk -F: '{ print $2 }' "${FAILEDTEST_LOG}" > "${FAILURES_LOG}"
585 + while read FAILEDTEST; do
586 + # is this failure known?
587 + if grep -x "${FAILEDTEST}" "${KNOWN_FAILURES_LIST}" > /dev/null; then
588 + ewarn "Test '${FAILEDTEST}' is known to fail, ignoring ..."
589 + continue
590 + fi
591 +
592 + eerror "New/unknown test failure found: '${FAILEDTEST}'"
593 + HAS_UNKNOWN_TEST_FAILURES=1
594 + done < "${FAILURES_LOG}"
595 +
596 + if [[ ${HAS_UNKNOWN_TEST_FAILURES} -ne 0 ]]; then
597 + die "Test suite failed. New/unknown test failure(s) found!"
598 + else
599 + echo ""
600 + einfo "Test suite passed. No new/unknown test failure(s) found!"
601 + fi
602 +
603 + return 0
604 + fi
605 +}