GraphicsMagick: jp2/* Update lib jasper to 2.0.6.

GraphicsMagick Commits <[email protected]>
Newsgroups gmane.comp.video.graphicsmagick.cvs
Message-ID <mailman.38378.1672586163.1567.graphicsmagick-commit@lists.sourceforge.net>
changeset 85c004da4dd6 in /hg/GraphicsMagick
details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=85c004da4dd6
summary: jp2/* Update lib jasper to 2.0.6.

diffstat:

 jp2/CMakeLists.txt                                               |  373 ++-
 jp2/ChangeLog                                                    |  753 +++++++++-
 jp2/build/cmake/modules/Sanitizers.cmake                         |   16 +-
 jp2/build/jasper.pc.in                                           |    4 +-
 jp2/data/test/bad/heap-out-of-bound-read-due-to-off-by-1-poc.jp2 |  Bin 
 jp2/data/test/bad/null-pointer-dereference-poc.jp2               |  Bin 
 jp2/doc/CMakeLists.txt                                           |   41 +-
 jp2/doc/html/bmp__cod_8h_source.html                             |    9 +-
 jp2/doc/html/bmp__enc_8h_source.html                             |    9 +-
 jp2/doc/html/dir_06c90920e3eae62b3319bb4f7e82b29e.html           |  135 +
 jp2/doc/html/dir_0ae4d01e0214b3b16f510bdb0a43da97.html           |  109 +
 jp2/doc/html/dir_253f277ccfe4e82659157434c26f3673.html           |  117 +
 jp2/doc/html/dir_2e450c83cbab4d121afe3bb6b9a1a815.html           |  117 +
 jp2/doc/html/dir_3e64a87ba1f1507e1e35533c04d15094.html           |  117 +
 jp2/doc/html/dir_423062511bee2d6ca434c4712632ac70.html           |  127 +
 jp2/doc/html/dir_43dadee5b59cae5a554d5cdab2dced57.html           |  143 +
 jp2/doc/html/dir_53055196011d2e0f89672618394e49c2.html           |  121 +
 jp2/doc/html/dir_6cf8f22baa2cc2b15c07b55f31825bfc.html           |  189 ++
 jp2/doc/html/dir_7bdbd26f0525cfc2f0148f78f5dbffe8.html           |  117 +
 jp2/doc/html/dir_89c853c8098ab04f353f6f7587310470.html           |  121 +
 jp2/doc/html/dir_9b898d60e50abb0512d85471d0556212.html           |  111 +
 jp2/doc/html/dir_a4788ab39066acc5dd80e31a17189720.html           |  117 +
 jp2/doc/html/dir_cb52bb4f2fb56fbea96d6b81b24d0ad7.html           |  111 +
 jp2/doc/html/dir_d5cd1de484bb3f95af01723a0e2791b6.html           |  109 +
 jp2/doc/html/faq.html                                            |    7 +-
 jp2/doc/html/files.html                                          |  106 +-
 jp2/doc/html/files.js                                            |    1 +
 jp2/doc/html/getting_started.html                                |    7 +-
 jp2/doc/html/index.html                                          |    9 +-
 jp2/doc/html/install.html                                        |    7 +-
 jp2/doc/html/jas__cm_8h_source.html                              |   75 +-
 jp2/doc/html/jas__debug_8h_source.html                           |   15 +-
 jp2/doc/html/jas__dll_8h_source.html                             |  132 +
 jp2/doc/html/jas__fix_8h_source.html                             |    9 +-
 jp2/doc/html/jas__getopt_8h_source.html                          |   17 +-
 jp2/doc/html/jas__icc_8h_source.html                             |    9 +-
 jp2/doc/html/jas__image_8h_source.html                           |   59 +-
 jp2/doc/html/jas__init_8h_source.html                            |   13 +-
 jp2/doc/html/jas__malloc_8h_source.html                          |   13 +-
 jp2/doc/html/jas__math_8h_source.html                            |    9 +-
 jp2/doc/html/jas__seq_8h_source.html                             |   41 +-
 jp2/doc/html/jas__stream_8h_source.html                          |   67 +-
 jp2/doc/html/jas__string_8h_source.html                          |   11 +-
 jp2/doc/html/jas__tmr_8h_source.html                             |   15 +-
 jp2/doc/html/jas__tvp_8h_source.html                             |   23 +-
 jp2/doc/html/jas__types_8h_source.html                           |    9 +-
 jp2/doc/html/jas__version_8h_source.html                         |   11 +-
 jp2/doc/html/jasper_8h_source.html                               |    9 +-
 jp2/doc/html/jp2__cod_8h_source.html                             |    9 +-
 jp2/doc/html/jp2__dec_8h_source.html                             |    9 +-
 jp2/doc/html/jpc__bs_8h_source.html                              |    9 +-
 jp2/doc/html/jpc__cod_8h_source.html                             |    9 +-
 jp2/doc/html/jpc__cs_8h_source.html                              |    9 +-
 jp2/doc/html/jpc__dec_8h_source.html                             |    9 +-
 jp2/doc/html/jpc__enc_8h_source.html                             |    9 +-
 jp2/doc/html/jpc__fix_8h_source.html                             |    9 +-
 jp2/doc/html/jpc__flt_8h_source.html                             |    9 +-
 jp2/doc/html/jpc__math_8h_source.html                            |    9 +-
 jp2/doc/html/jpc__mct_8h_source.html                             |    9 +-
 jp2/doc/html/jpc__mqcod_8h_source.html                           |    9 +-
 jp2/doc/html/jpc__mqdec_8h_source.html                           |    9 +-
 jp2/doc/html/jpc__mqenc_8h_source.html                           |    9 +-
 jp2/doc/html/jpc__qmfb_8h_source.html                            |    9 +-
 jp2/doc/html/jpc__t1cod_8h_source.html                           |    9 +-
 jp2/doc/html/jpc__t1dec_8h_source.html                           |    9 +-
 jp2/doc/html/jpc__t1enc_8h_source.html                           |    9 +-
 jp2/doc/html/jpc__t2cod_8h_source.html                           |    9 +-
 jp2/doc/html/jpc__t2dec_8h_source.html                           |    9 +-
 jp2/doc/html/jpc__t2enc_8h_source.html                           |    9 +-
 jp2/doc/html/jpc__tagtree_8h_source.html                         |    9 +-
 jp2/doc/html/jpc__tsfb_8h_source.html                            |    9 +-
 jp2/doc/html/jpc__util_8h_source.html                            |    9 +-
 jp2/doc/html/jpg__cod_8h_source.html                             |    9 +-
 jp2/doc/html/jpg__enc_8h_source.html                             |    9 +-
 jp2/doc/html/jpg__jpeglib_8h_source.html                         |    9 +-
 jp2/doc/html/known_bugs.html                                     |   10 +-
 jp2/doc/html/mif__cod_8h_source.html                             |    9 +-
 jp2/doc/html/navtreedata.js                                      |   10 +-
 jp2/doc/html/navtreeindex0.js                                    |  126 +-
 jp2/doc/html/organization.html                                   |    7 +-
 jp2/doc/html/pages.html                                          |    7 +-
 jp2/doc/html/pgx__cod_8h_source.html                             |    9 +-
 jp2/doc/html/pgx__enc_8h_source.html                             |    9 +-
 jp2/doc/html/pnm__cod_8h_source.html                             |    9 +-
 jp2/doc/html/pnm__enc_8h_source.html                             |    9 +-
 jp2/doc/html/ras__cod_8h_source.html                             |    9 +-
 jp2/doc/html/ras__enc_8h_source.html                             |    9 +-
 jp2/doc/html/search/all_3.js                                     |    2 +-
 jp2/doc/html/search/all_4.js                                     |    2 +-
 jp2/doc/html/search/all_5.js                                     |    2 +-
 jp2/doc/html/search/pages_3.js                                   |    2 +-
 jp2/doc/html/search/pages_4.js                                   |    2 +-
 jp2/doc/html/search/pages_5.js                                   |    2 +-
 jp2/doc/html/search/searchdata.js                                |    4 +-
 jp2/doc/manual.pdf                                               |  Bin 
 jp2/doc/src/bugs.dox                                             |   12 +-
 jp2/src/appl/CMakeLists.txt                                      |   11 +-
 jp2/src/appl/jiv.c                                               |    6 +-
 jp2/src/libjasper/CMakeLists.txt                                 |   23 +-
 jp2/src/libjasper/base/jas_debug.c                               |    2 +-
 jp2/src/libjasper/include/jasper/jas_cm.h                        |   16 +-
 jp2/src/libjasper/include/jasper/jas_config.h                    |    7 +
 jp2/src/libjasper/include/jasper/jas_config.h.in                 |    7 +
 jp2/src/libjasper/include/jasper/jas_debug.h                     |    6 +-
 jp2/src/libjasper/include/jasper/jas_dll.h                       |   29 +
 jp2/src/libjasper/include/jasper/jas_getopt.h                    |    8 +-
 jp2/src/libjasper/include/jasper/jas_image.h                     |   50 +-
 jp2/src/libjasper/include/jasper/jas_init.h                      |    4 +-
 jp2/src/libjasper/include/jasper/jas_malloc.h                    |    4 +-
 jp2/src/libjasper/include/jasper/jas_seq.h                       |   32 +-
 jp2/src/libjasper/include/jasper/jas_stream.h                    |   58 +-
 jp2/src/libjasper/include/jasper/jas_string.h                    |    2 +-
 jp2/src/libjasper/include/jasper/jas_tmr.h                       |    6 +-
 jp2/src/libjasper/include/jasper/jas_tvp.h                       |   14 +-
 jp2/src/libjasper/include/jasper/jas_version.h                   |    2 +-
 jp2/src/libjasper/jpc/jpc_t2cod.c                                |    4 +-
 jp2/test/bin/codec_tests                                         |   10 +-
 jp2/test/bin/run_codec_test                                      |   41 +-
 jp2/test/bin/run_test_3                                          |    9 +-
 jp2/test/bin/wrapper.in                                          |   20 +
 120 files changed, 3625 insertions(+), 980 deletions(-)

diffs (truncated from 7304 to 500 lines):

diff -r 6767d8d8906b -r 85c004da4dd6 jp2/CMakeLists.txt
--- a/jp2/CMakeLists.txt	Sun Jan 01 11:19:55 2023 +0100
+++ b/jp2/CMakeLists.txt	Sun Jan 01 16:15:19 2023 +0100
@@ -1,8 +1,6 @@
 cmake_minimum_required (VERSION 2.8.11)
 
-set(JAS_PROJECT_NAME "JasPer")
-
-project("${JAS_PROJECT_NAME}")
+project(JasPer)
 
 set(CMAKE_MODULE_PATH
   ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/build/cmake/modules/")
@@ -17,7 +15,7 @@
 # The major, minor, and micro version numbers of the project.
 set(JAS_VERSION_MAJOR 2)
 set(JAS_VERSION_MINOR 0)
-set(JAS_VERSION_PATCH 0)
+set(JAS_VERSION_PATCH 6)
 
 # The project version.
 set(JAS_VERSION
@@ -51,22 +49,48 @@
 set(JAS_SO_NAME "${JAS_SO_VERSION}.${JAS_SO_MINOR}.${JAS_SO_RELEASE}")
 
 ################################################################################
+# Include modules and set policies.
+################################################################################
 
-set(CMAKE_C_STANDARD 11)
-set(CMAKE_VERBOSE_MAKEFILE on)
+# Adhere to GNU filesystem layout conventions.
+include(GNUInstallDirs)
 
 include(CheckIncludeFiles)
 include(CheckFunctionExists)
+include(CheckCSourceCompiles)
 include(CTest)
 include(Sanitizers)
+
 cmake_policy(SET CMP0012 NEW)
 
-option(JAS_ENABLE_LIBJPEG "Enable use of JPEG Library" true)
-option(JAS_ENABLE_OPENGL "Enable use of OpenGL Library" true)
+################################################################################
+# Define options.
+################################################################################
+
+option(JAS_ENABLE_SHARED "Enable building of shared library" true)
+option(JAS_ENABLE_LIBJPEG "Enable the use of the JPEG Library" true)
+option(JAS_ENABLE_OPENGL "Enable the use of the OpenGL/GLUT Library" true)
 option(JAS_ENABLE_STRICT "Enable pedantic error checking" false)
-option(JAS_ENABLE_SHARED "Enable building of shared library" true)
+option(JAS_ENABLE_AUTOMATIC_DEPENDENCIES "Enable automatic dependencies" true)
+option(JAS_LOCAL "Enable local hacks for developers (do not enable)" false)
+
+################################################################################
+#
+################################################################################
+
+#set(CMAKE_VERBOSE_MAKEFILE on)
+set(CMAKE_C_STANDARD 11)
 
-if (APPLE AND ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+if (JAS_ENABLE_AUTOMATIC_DEPENDENCIES)
+	message(WARNING
+	  "If this software is being built as a package for a Linux distribution, "
+	  "you should probably set JAS_ENABLE_AUTOMATIC_DEPENDENCIES to false.")
+	set(JAS_REQUIRED "")
+else()
+	set(JAS_REQUIRED "REQUIRED")
+endif()
+
+if (APPLE AND CMAKE_SYSTEM_NAME MATCHES "Darwin")
 	set(MACOSX true)
 endif()
 
@@ -83,53 +107,66 @@
 endif()
 message("Platform ${JAS_PLATFORM}")
 
-if (WIN32)
-	if (JAS_ENABLE_SHARED)
-		message(WARNING
-		  "Disabling the building of shared libraries "
-		  "(since this does not currently work on this platform). "
-		  "Setting JAS_ENABLE_SHARED to false."
-		)
-		set(JAS_ENABLE_SHARED false)
-	endif()
-endif()
-
 if (JAS_ENABLE_SHARED AND MACOSX)
 	set(CMAKE_MACOSX_RPATH true)
 endif()
 
+if (JAS_ENABLE_SHARED)
+	set(JAS_DLL 1)
+endif()
+
+message("JAS_LOCAL ${JAS_LOCAL}")
 message("CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE}")
 message("CMAKE_C_COMPILER_ID ${CMAKE_C_COMPILER_ID}")
 message("CMAKE_C_COMPILER ${CMAKE_C_COMPILER}")
 message("CMAKE_C_FLAGS ${CMAKE_C_FLAGS}")
-if (${CMAKE_BUILD_TYPE} MATCHES Debug)
-	if (${CMAKE_C_COMPILER_ID} MATCHES GNU OR ${CMAKE_C_COMPILER_ID} MATCHES Clang)
+if (JAS_LOCAL AND (CMAKE_BUILD_TYPE MATCHES "Debug"))
+	if (CMAKE_C_COMPILER_ID MATCHES "GNU" OR
+	  CMAKE_C_COMPILER_ID MATCHES "Clang")
 		add_definitions("-O0")
 	endif()
 endif()
 
-INCLUDE(InstallRequiredSystemLibraries)
-SET(CPACK_PACKAGE_NAME "${CMAKE_PROJECT_NAME}")
-SET(CPACK_PACKAGE_VERSION "${JAS_VERSION}")
-SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "JasPer Image Processing Tool Kit")
-SET(CPACK_PACKAGE_VENDOR "Michael Adams")
-SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
-SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
-SET(CPACK_PACKAGE_VERSION_MAJOR "${JAS_VERSION_MAJOR}")
-SET(CPACK_PACKAGE_VERSION_MINOR "${JAS_VERSION_MINOR}")
-SET(CPACK_PACKAGE_VERSION_PATCH "${JAS_VERSION_PATCH}")
-SET(CPACK_PACKAGE_INSTALL_DIRECTORY
+include(InstallRequiredSystemLibraries)
+set(CPACK_PACKAGE_NAME "${CMAKE_PROJECT_NAME}")
+set(CPACK_PACKAGE_VERSION "${JAS_VERSION}")
+set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "JasPer Image Processing Tool Kit")
+set(CPACK_PACKAGE_VENDOR "Michael Adams")
+set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
+set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
+set(CPACK_PACKAGE_VERSION_MAJOR "${JAS_VERSION_MAJOR}")
+set(CPACK_PACKAGE_VERSION_MINOR "${JAS_VERSION_MINOR}")
+set(CPACK_PACKAGE_VERSION_PATCH "${JAS_VERSION_PATCH}")
+set(CPACK_PACKAGE_INSTALL_DIRECTORY
   "CMake ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}")
-SET(CPACK_PACKAGE_FILE_NAME
+set(CPACK_PACKAGE_FILE_NAME
   "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}")
-SET(CPACK_GENERATOR "TGZ")
+set(CPACK_GENERATOR "TGZ")
 include(CPack)
 
+if (JAS_STRICT)
+	set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-unused")
+	set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pedantic")
+	set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -W -Wformat -Wmissing-prototypes -Wstrict-prototypes")
+endif()
+
+################################################################################
+# Perform plaform checks.
+################################################################################
+
 find_package(Doxygen)
-
+find_package(LATEX COMPONENTS PDFLATEX)
 find_program(BASH_PROGRAM bash)
-# HACK to disable tests
-#set(BASH_PROGRAM "")
+
+# On some (or maybe all?) systems, LATEX_FOUND is not set by FindLATEX.
+# So, instead, rely on LATEX_PDFLATEX_FOUND.
+message("PDFLATEX_COMPILER: ${PDFLATEX_COMPILER}")
+if ((NOT LATEX_FOUND) AND PDFLATEX_COMPILER)
+	message(WARNING "Setting LATEX_FOUND to true.")
+	message(WARNING "Your version of CMake may be buggy.")
+	set(LATEX_FOUND true)
+endif()
+message("LATEX_FOUND ${LATEX_FOUND}")
 
 check_include_files(fcntl.h JAS_HAVE_FCNTL_H)
 check_include_files(io.h JAS_HAVE_IO_H)
@@ -141,142 +178,182 @@
 check_function_exists(gettimeofday JAS_HAVE_GETTIMEOFDAY)
 check_function_exists(getrusage JAS_HAVE_GETRUSAGE)
 
-if (JAS_STRICT)
-	set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-unused")
-	set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pedantic")
-	set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -W -Wformat -Wmissing-prototypes -Wstrict-prototypes")
-endif()
+################################################################################
+# Check for the JPEG library.
+################################################################################
 
-find_package(JPEG)
-if (JPEG_FOUND)
-	include_directories("${JPEG_INCLUDE_DIR}")
-endif()
-#check_include_files(jpeglib.h JAS_HAVE_JPEGLIB_H)
-# HACK
-set(JAS_HAVE_JPEGLIB_H 1)
+find_package(JPEG ${JAS_LIBJPEG_REQUIRED})
 message("JPEG library found: ${JPEG_FOUND}")
-message("JPEG libraries: ${JPEG_LIBRARIES}")
-message("JPEG include directory: ${JPEG_INCLUDE_DIR}")
-message("JAS_ENABLE_LIBJPEG: ${JAS_ENABLE_LIBJPEG}")
-message("JAS_HAVE_JPEGLIB_H: ${JAS_HAVE_JPEGLIB_H}")
-if(JPEG_FOUND AND (NOT JAS_ENABLE_LIBJPEG OR NOT JAS_HAVE_JPEGLIB_H))
-	message("disabling LIBJPEG")
-	set(JPEG_FOUND false)
+if (JAS_ENABLE_LIBJPEG AND JPEG_FOUND)
+	set(JAS_HAVE_LIBJPEG 0)
+	message("JPEG include directory: ${JPEG_INCLUDE_DIR}")
+	message("JPEG libraries: ${JPEG_LIBRARIES}")
+	# In some versions of the JPEG library, the header file jpeglib.h
+	# does not include some of the header files upon which it depends
+	# (e.g., stdio.h and stdint.h).  So, we cannot reliably use
+	# check_include_file here.
+	set(CMAKE_REQUIRED_INCLUDES ${JPEG_INCLUDE_DIR})
+	check_c_source_compiles("
+		#include <stdio.h>
+		#include <stdint.h>
+		#include <jpeglib.h>
+		int main() {}
+	" JAS_HAVE_JPEGLIB_H)
+	message("JAS_HAVE_JPEGLIB_H: ${JAS_HAVE_JPEGLIB_H}")
+	if(JAS_HAVE_JPEGLIB_H)
+		set(JAS_HAVE_LIBJPEG 1)
+		include_directories(${JPEG_INCLUDE_DIR})
+	else()
+		message(WARNING "The header file jpeglib.h appears to be missing.")
+		message(WARNING "Disabling LIBJPEG.")
+		set(JPEG_FOUND false)
+		set(JPEG_LIBRARIES "")
+		set(JPEG_INCLUDE_DIR "")
+		set(JAS_ENABLE_LIBJPEG 0)
+	endif()
+else()
+	set(JAS_HAVE_LIBJPEG 0)
+	set(JPEG_INCLUDE_DIR "")
 	set(JPEG_LIBRARIES "")
-	set(JPEG_INCLUDE_DIR "")
 endif()
-# HACK
-#if (MACOSX)
-#	message("disabling LIBJPEG")
-#	set(JPEG_FOUND false)
-#	set(JPEG_LIBRARIES "")
-#	set(JPEG_INCLUDE_DIR "")
-#endif()
+message("JAS_HAVE_LIBJPEG: ${JAS_HAVE_LIBJPEG}")
 
-find_package(GLUT)
-if(GLUT_FOUND)
-	include_directories("${GLUT_INCLUDE_DIR}")
-endif()
-check_include_files(GL/glut.h JAS_HAVE_GL_GLUT_H)
-message("GLUT library found: ${GLUT_FOUND}")
-message("GLUT libraries: ${GLUT_LIBRARIES}")
-message("GLUT include directory: ${GLUT_INCLUDE_DIR}")
+################################################################################
+# Check for the OpenGL and GLUT libraries.
+################################################################################
+
+find_package(OpenGL ${JAS_REQUIRED})
 message("JAS_ENABLE_OPENGL: ${JAS_ENABLE_OPENGL}")
-message("JAS_HAVE_GL_GLUT_H: ${JAS_HAVE_GL_GLUT_H}")
-if(GLUT_FOUND AND (NOT JAS_HAVE_GL_GLUT_H OR NOT JAS_ENABLE_OPENGL))
-	message("disabling GLUT")
-	set(GLUT_FOUND false)
+message("OpenGL library found: ${OPENGL_FOUND}")
+if (JAS_ENABLE_OPENGL AND OPENGL_FOUND)
+	set(JAS_HAVE_OPENGL 0)
+	message("OpenGL include directory: ${OPENGL_INCLUDE_DIR}")
+	message("OpenGL libraries: ${OPENGL_LIBRARIES}")
+	find_package(GLUT ${JAS_REQUIRED})
+	message("GLUT library found: ${GLUT_FOUND}")
+	if (GLUT_FOUND)
+		message("GLUT include directory: ${GLUT_INCLUDE_DIR}")
+		message("GLUT libraries: ${GLUT_LIBRARIES}")
+		set(CMAKE_REQUIRED_INCLUDES ${GLUT_INCLUDE_DIR})
+		check_include_files(GL/glut.h JAS_HAVE_GL_GLUT_H)
+		check_include_files(glut.h JAS_HAVE_GLUT_H)
+		message("JAS_HAVE_GLUT_H: ${JAS_HAVE_GLUT_H}")
+		message("JAS_HAVE_GL_GLUT_H: ${JAS_HAVE_GL_GLUT_H}")
+		if (JAS_HAVE_GL_GLUT_H OR JAS_HAVE_GLUT_H)
+			set(JAS_HAVE_OPENGL 1)
+			include_directories(${GLUT_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR})
+		else()
+			message(WARNING "The header files GL/glut.h and glut.h both appear to be missing.")
+			message(WARNING "Disabling OpenGL.")
+		endif()
+	endif()
+	# On some systems (e.g., Fedora 21), there is a bug in the cmake code
+	# that detects GLUT libraries.  The following ugliness is a workaround for 
+	# this problem.
+	if (NOT GLUT_Xmu_LIBRARY OR NOT GLUT_Xmi_LIBRARY)
+		if (NOT GLUT_Xmu_LIBRARY)
+			set(GLUT_Xmu_LIBRARY "")
+			message(WARNING "Clearing bogus value for GLUT_Xmu_LIBRARY.")
+			message(WARNING "Your version of CMake may be buggy.")
+		endif()
+		if (NOT GLUT_Xmi_LIBRARY)
+			set(GLUT_Xmi_LIBRARY "")
+			message(WARNING "Clearing bogus value for GLUT_Xmi_LIBRARY.")
+			message(WARNING "Your version of CMake may be buggy.")
+		endif()
+		set(GLUT_LIBRARIES "${GLUT_glut_LIBRARY}")
+	endif()
+else()
+	set(JAS_HAVE_OPENGL 0)
+	set(OPENGL_INCLUDE_DIR "")
+	set(OPENGL_LIBRARIES "")
+	set(GLUT_INCLUDE_DIR "")
 	set(GLUT_LIBRARIES "")
-	set(GLUT_INCLUDE_DIR "")
 endif()
+message("JAS_HAVE_OPENGL: ${JAS_HAVE_OPENGL}")
 
-if(UNIX)
-	set(MATH_LIBRARY m)
-else()
+################################################################################
+# Check for the Math library.
+################################################################################
+
+find_library(MATH_LIBRARY m)
+if (NOT MATH_LIBRARY)
 	set(MATH_LIBRARY "")
 endif()
 
-if (JAS_MEMORY_LIMIT)
-	add_definitions(-DJAS_MEMORY_LIMIT=${JAS_MEMORY_LIMIT})
-endif()
-
 ################################################################################
-
-# use, i.e. don't skip the full RPATH for the build tree
-SET(CMAKE_SKIP_BUILD_RPATH  FALSE)
-
-# when building, don't use the install RPATH already
-# (but later on when installing)
-SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) 
-
-SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
+#
+################################################################################
 
-# add the automatically determined parts of the RPATH
-# which point to directories outside the build tree to the install RPATH
-SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
-
-
-# the RPATH to be used when installing, but only if it's not a system directory
-LIST(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib" isSystemDir)
-IF("${isSystemDir}" STREQUAL "-1")
-   SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
-ENDIF("${isSystemDir}" STREQUAL "-1")
+if (JAS_MEMORY_LIMIT)
+	add_definitions("-DJAS_MEMORY_LIMIT=${JAS_MEMORY_LIMIT}")
+endif()
 
 ################################################################################
+#
+################################################################################
 
-subdirs(src/libjasper src/appl doc)
+if (JAS_ENABLE_SHARED)
+
+	# use, i.e. don't skip the full RPATH for the build tree
+	set(CMAKE_SKIP_BUILD_RPATH FALSE)
+
+	# when building, don't use the install RPATH already
+	# (but later on when installing)
+	set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) 
+
+	set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
+
+	# add the automatically determined parts of the RPATH
+	# which point to directories outside the build tree to the install RPATH
+	set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
 
-#include_directories(${CMAKE_CURRENT_BINARY_DIR}/src/libjasper/include)
-#include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/libjasper/include)
-#target_include_directories(libjasper PUBLIC 
-#"${CMAKE_CURRENT_BINARY_DIR}/src/libjasper/include"
-#"${CMAKE_CURRENT_SOURCE_DIR}/src/libjasper/include")
+	# The RPATH to be used when installing, but only if it's not a
+	# system directory
+	list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
+	  "${CMAKE_INSTALL_PREFIX}/lib" isSystemDir)
+	if("${isSystemDir}" STREQUAL "-1")
+	   set(CMAKE_INSTALL_RPATH
+		  "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
+	endif("${isSystemDir}" STREQUAL "-1")
+
+endif()
+
+################################################################################
+#
+################################################################################
 
-set(ENV{JAS_ABS_TOP_BUILDDIR} "${CMAKE_CURRENT_BINARY_DIR}")
-set(ENV{JAS_ABS_TOP_SRCDIR} "${CMAKE_CURRENT_SOURCE_DIR}")
-set(ENV{JAS_TOP_BUILDDIR} "${CMAKE_CURRENT_BINARY_DIR}")
-set(ENV{JAS_TOP_SRCDIR} "${CMAKE_CURRENT_SOURCE_DIR}")
-#	"JAS_TOP_BUILDDIR=../../build"
-#	"JAS_TOP_SRCDIR=../.."
+add_subdirectory(src/libjasper)
+add_subdirectory(src/appl)
+add_subdirectory(doc)
+
+# The package configuation (pc) file should be installed in
+# ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig.
+configure_file("${CMAKE_CURRENT_SOURCE_DIR}/build/jasper.pc.in"
+  "${CMAKE_CURRENT_BINARY_DIR}/build/jasper.pc" @ONLY)
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/build/jasper.pc"
+  DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
+
+install(FILES "README" DESTINATION "${CMAKE_INSTALL_DOCDIR}")
+
+################################################################################
+# Test suite
+################################################################################
+
+configure_file("${CMAKE_CURRENT_SOURCE_DIR}/test/bin/wrapper.in"
+  "${CMAKE_CURRENT_BINARY_DIR}/test/bin/wrapper" @ONLY)
 
 if (BASH_PROGRAM)
 	add_test(run_test_1
-	  "${BASH_PROGRAM}" "${CMAKE_CURRENT_SOURCE_DIR}/test/bin/wrapper"
-	  "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}"
+	  "${BASH_PROGRAM}" "${CMAKE_CURRENT_BINARY_DIR}/test/bin/wrapper"
 	  "${CMAKE_CURRENT_SOURCE_DIR}/test/bin/run_test_1")
 	add_test(run_test_2
-	  "${BASH_PROGRAM}" "${CMAKE_CURRENT_SOURCE_DIR}/test/bin/wrapper"
-	  "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}"
+	  "${BASH_PROGRAM}" "${CMAKE_CURRENT_BINARY_DIR}/test/bin/wrapper"
 	  "${CMAKE_CURRENT_SOURCE_DIR}/test/bin/run_test_2")
 	add_test(run_test_3
-	  "${BASH_PROGRAM}" "${CMAKE_CURRENT_SOURCE_DIR}/test/bin/wrapper"
-	  "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}"
+	  "${BASH_PROGRAM}" "${CMAKE_CURRENT_BINARY_DIR}/test/bin/wrapper"
 	  "${CMAKE_CURRENT_SOURCE_DIR}/test/bin/run_test_3")
 	add_test(run_test_4
-	  "${BASH_PROGRAM}" "${CMAKE_CURRENT_SOURCE_DIR}/test/bin/wrapper"
-	  "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}"
+	  "${BASH_PROGRAM}" "${CMAKE_CURRENT_BINARY_DIR}/test/bin/wrapper"
 	  "${CMAKE_CURRENT_SOURCE_DIR}/test/bin/run_test_4")
 endif()
-
-#find_package(MakeDist)
-
-#set(EXTRA_DIST data)
-
-#add_makedist(
-#	${CMAKE_CURRENT_BINARY_DIR}/README
-#	${CMAKE_CURRENT_BINARY_DIR}/LICENSE
-#)
-
-#file(GENERATE OUTPUT ChangeLog2 CONTENT echo)
-execute_process(COMMAND git log OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog2)
-
-# The package configuation (pc) file should be installed in
-# ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig.
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/build/jasper.pc.in
-  ${CMAKE_CURRENT_BINARY_DIR}/build/jasper.pc @ONLY)
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/build/jasper.pc
-  DESTINATION lib/pkgconfig)
-
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/build/jasper.spec.in
-  ${CMAKE_CURRENT_BINARY_DIR}/build/jasper.spec @ONLY)
-
diff -r 6767d8d8906b -r 85c004da4dd6 jp2/ChangeLog
--- a/jp2/ChangeLog	Sun Jan 01 11:19:55 2023 +0100
+++ b/jp2/ChangeLog	Sun Jan 01 16:15:19 2023 +0100
@@ -1,6 +1,757 @@
+commit be67b65abd0b4727b8b98cc12b59218561aefbba
+Author: Michael Adams <[email protected]>
+Date:   Fri Dec 9 06:03:04 2016 -0800
+
+    Bumped the version number
+
+M	CMakeLists.txt
+
+commit db17951211b0a56359c37a53348ec81cd958cecf
+Author: Michael Adams <[email protected]>
+Date:	Fri Dec 9 05:58:50 2016 -0800
+
+    Made some further changes to a private build script.
+
+M	build/my_build
+
+commit 0e38d23e342ef2181fa4d7d56d9cc576cc3fbcdc
+Author: Michael Adams <[email protected]>
+Date:	Fri Dec 9 05:57:36 2016 -0800
+
+    Added two new regression test cases.
+
+A	data/test/bad/heap-out-of-bound-read-due-to-off-by-1-poc.jp2
+A	data/test/bad/null-pointer-dereference-poc.jp2
+
+commit 99a50593254d1b53002719bbecfc946c84b23d27
+Author: Michael Adams <[email protected]>
+Date:	Fri Dec 9 05:42:39 2016 -0800
+
+    Apply a patch for the following bug report:
+	https://github.com/mdadams/jasper/issues/103
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.