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