summaryrefslogtreecommitdiffstats
path: root/graphics-libs
diff options
context:
space:
mode:
authorIsmael Luceno2021-09-07 18:46:56 +0200
committerIsmael Luceno2021-09-07 18:50:09 +0200
commit5eb21754547de4648d97d2c3f4343edcf2d5e934 (patch)
tree92aad7b3c8d392640917843498df48f79e24ae3e /graphics-libs
parentb6217f4b7d50064c3511705f907406f38f2a0c35 (diff)
jxrlib: new spell, JPEG-XR library
Diffstat (limited to 'graphics-libs')
-rwxr-xr-xgraphics-libs/jxrlib/CONFIGURE1
-rwxr-xr-xgraphics-libs/jxrlib/DEPENDS1
-rwxr-xr-xgraphics-libs/jxrlib/DETAILS31
-rw-r--r--graphics-libs/jxrlib/HISTORY3
-rwxr-xr-xgraphics-libs/jxrlib/PRE_BUILD3
-rw-r--r--graphics-libs/jxrlib/patches/0001-usecmake.patch137
-rw-r--r--graphics-libs/jxrlib/patches/0002-bug748590.patch16
-rw-r--r--graphics-libs/jxrlib/patches/0003-typos.patch28
8 files changed, 220 insertions, 0 deletions
diff --git a/graphics-libs/jxrlib/CONFIGURE b/graphics-libs/jxrlib/CONFIGURE
new file mode 100755
index 0000000000..b1e2770061
--- /dev/null
+++ b/graphics-libs/jxrlib/CONFIGURE
@@ -0,0 +1 @@
+. "$GRIMOIRE"/CMAKE_CONFIGURE
diff --git a/graphics-libs/jxrlib/DEPENDS b/graphics-libs/jxrlib/DEPENDS
new file mode 100755
index 0000000000..bd2c258971
--- /dev/null
+++ b/graphics-libs/jxrlib/DEPENDS
@@ -0,0 +1 @@
+. "$GRIMOIRE"/CMAKE_DEPENDS
diff --git a/graphics-libs/jxrlib/DETAILS b/graphics-libs/jxrlib/DETAILS
new file mode 100755
index 0000000000..097f6c51fe
--- /dev/null
+++ b/graphics-libs/jxrlib/DETAILS
@@ -0,0 +1,31 @@
+. "$GRIMOIRE"/CMAKE_FUNCTIONS
+ SPELL=jxrlib
+ VERSION=1.1
+ SOURCE="${SPELL}_$VERSION.orig.tar.gz"
+ SOURCE_URL[0]="http://deb.debian.org/debian/pool/main/j/$SPELL/$SOURCE"
+ SOURCE_HASH=sha512:5c9b040f2be90bc891b991aa6e58c8a08f11367833479734504432896aa46dce72d83b85d1e3ec9cb5891adb586fce2976aa50d63f5a9f8630424f78cea1844f
+SOURCE_DIRECTORY="$BUILD_DIRECTORY/$SPELL-$VERSION"
+ WEB_SITE="https://jxrlib.codeplex.com/"
+ LICENSE[0]="BSD-2-Clause"
+ ENTERED=20210907
+ KEYWORDS=""
+ SHORT="JPEG-XR library"
+cat << EOF
+JPEG XR is an approved ISO/IEC International standard (its official designation
+is ISO/IEC 29199-2).
+
+JPEG XR started its life in Microsoft Research. It publicly first appeared
+as the HD Photo format in Windows Vista.
+
+For web developers, JPEG XR has a large number of interesting features, see
+the table below. Some of these are big advantages over other image formats
+like JPEG, PNG, OpenEXR, and TIFF.
+
+- Better Compression (40% smaller than JPEG)
+- Lossless Mode (better compression than PNG)
+- Alpha Channel (compress color lossy and alpha losslessly)
+- Extended Bitdepth (supports 8/16/32-bit channels)
+- Progressive Decode
+- Advanced Decoding Features (tile-based layout, for efficient
+ region-of-interest access)
+EOF
diff --git a/graphics-libs/jxrlib/HISTORY b/graphics-libs/jxrlib/HISTORY
new file mode 100644
index 0000000000..66409e78ec
--- /dev/null
+++ b/graphics-libs/jxrlib/HISTORY
@@ -0,0 +1,3 @@
+2021-09-07 Ismael Luceno <ismael@sourcemage.org>
+ * CONFIGURE, DEPENDS, DETAILS, PRE_BUILD, patches/0001-usecmake.patch,
+ patches/0002-bug748590.patch, patches/0003-typos.patch: spell created
diff --git a/graphics-libs/jxrlib/PRE_BUILD b/graphics-libs/jxrlib/PRE_BUILD
new file mode 100755
index 0000000000..c230ad14bf
--- /dev/null
+++ b/graphics-libs/jxrlib/PRE_BUILD
@@ -0,0 +1,3 @@
+default_pre_build &&
+cd "$SOURCE_DIRECTORY" &&
+apply_patch_dir patches
diff --git a/graphics-libs/jxrlib/patches/0001-usecmake.patch b/graphics-libs/jxrlib/patches/0001-usecmake.patch
new file mode 100644
index 0000000000..d8699d0670
--- /dev/null
+++ b/graphics-libs/jxrlib/patches/0001-usecmake.patch
@@ -0,0 +1,137 @@
+Description: Prefer a cmake based build system
+Author: Mathieu Malaterre <malat@debian.org>
+Forwarded: https://jxrlib.codeplex.com/discussions/440294
+
+Origin: Debian
+[ismael@iodev.co.uk: Integrated fixes from typos.patch, cleaned up,
+ fixed libbsd dep]
+
+--- /dev/null
++++ b/CMakeLists.txt
+@@ -0,0 +1,126 @@
++# Copyright Mathieu Malaterre <malat@debian.org>
++# BSD (Same as jxrlib)
++cmake_minimum_required(VERSION 2.8)
++project(jxrlib C)
++
++# Need shared libs for ABI
++set(BUILD_SHARED_LIBS ON)
++
++# helper macro to preserve original Makefile convention
++macro(JXR_MAKE_OBJ SET_NAME)
++ foreach(src ${SRC_${SET_NAME}})
++ list(APPEND OBJ_${SET_NAME} ${DIR_${SET_NAME}}/${src})
++ endforeach()
++endmacro()
++
++include(TestBigEndian)
++test_big_endian(ISBIGENDIAN)
++if(ISBIGENDIAN)
++ set(DEF_ENDIAN _BIG__ENDIAN_)
++endif()
++
++set(DIR_SYS image/sys)
++set(DIR_DEC image/decode)
++set(DIR_ENC image/encode)
++
++set(DIR_GLUE jxrgluelib)
++set(DIR_TEST jxrtestlib)
++set(DIR_EXEC jxrencoderdecoder)
++
++if(NOT JXRLIB_INSTALL_BIN_DIR)
++ set(JXRLIB_INSTALL_BIN_DIR "bin")
++endif()
++
++if(NOT JXRLIB_INSTALL_LIB_DIR)
++ set(JXRLIB_INSTALL_LIB_DIR "lib")
++endif()
++
++if(NOT JXRLIB_INSTALL_INCLUDE_DIR)
++ set(JXRLIB_INSTALL_INCLUDE_DIR "include/jxrlib")
++endif()
++
++include_directories(
++ common/include
++ ${DIR_SYS}
++ ${DIR_GLUE}
++ ${DIR_TEST}
++)
++
++# where is strlcpy ?
++include(CheckSymbolExists)
++check_symbol_exists(strlcpy "string.h" HAVE_STRLCPY)
++if(NOT HAVE_STRLCPY)
++ pkg_check_modules(LIBBSD REQUIRED libbsd-overlay)
++ target_link_libraries(jxrglue ${LIBBSD_LIBRARIES})
++ target_include_directories(jxrglue SYSTEM BEFORE PRIVATE ${LIBBSD_INCLUDE_DIRS})
++endif()
++
++# JPEG-XR
++set(SRC_SYS adapthuff.c image.c strcodec.c strPredQuant.c strTransform.c perfTimerANSI.c)
++JXR_MAKE_OBJ(SYS)
++set(SRC_DEC decode.c postprocess.c segdec.c strdec.c strInvTransform.c strPredQuantDec.c JXRTranscode.c)
++JXR_MAKE_OBJ(DEC)
++set(SRC_ENC encode.c segenc.c strenc.c strFwdTransform.c strPredQuantEnc.c)
++JXR_MAKE_OBJ(ENC)
++
++add_library(jpegxr ${OBJ_ENC} ${OBJ_DEC} ${OBJ_SYS})
++set_property(TARGET jpegxr
++ PROPERTY COMPILE_DEFINITIONS __ANSI__ DISABLE_PERF_MEASUREMENT ${DEF_ENDIAN}
++)
++set_property(TARGET jpegxr PROPERTY LINK_INTERFACE_LIBRARIES "")
++set_property(TARGET jpegxr PROPERTY COMPILE_FLAGS -w)
++# VERSION/SOVERSION
++set_property(TARGET jpegxr PROPERTY VERSION 1.1)
++set_property(TARGET jpegxr PROPERTY SOVERSION 0)
++install(TARGETS jpegxr
++ EXPORT JXRLibTargets
++ RUNTIME DESTINATION ${JXRLIB_INSTALL_BIN_DIR} COMPONENT Applications
++ LIBRARY DESTINATION ${JXRLIB_INSTALL_LIB_DIR} COMPONENT Libraries
++)
++
++# JXR-GLUE
++set(SRC_GLUE JXRGlue.c JXRMeta.c JXRGluePFC.c JXRGlueJxr.c)
++JXR_MAKE_OBJ(GLUE)
++set(SRC_TEST JXRTest.c JXRTestBmp.c JXRTestHdr.c JXRTestPnm.c JXRTestTif.c JXRTestYUV.c)
++JXR_MAKE_OBJ(TEST)
++
++add_library(jxrglue ${OBJ_GLUE} ${OBJ_TEST})
++set_property(TARGET jxrglue
++ PROPERTY COMPILE_DEFINITIONS __ANSI__ DISABLE_PERF_MEASUREMENT ${DEF_ENDIAN}
++)
++set_property(TARGET jxrglue PROPERTY COMPILE_FLAGS -w)
++# VERSION/SOVERSION
++set_property(TARGET jxrglue PROPERTY VERSION 1.1)
++set_property(TARGET jxrglue PROPERTY SOVERSION 0)
++install(TARGETS jxrglue
++ EXPORT JXRLibTargets
++ RUNTIME DESTINATION ${JXRLIB_INSTALL_BIN_DIR} COMPONENT Applications
++ LIBRARY DESTINATION ${JXRLIB_INSTALL_LIB_DIR} COMPONENT Libraries
++)
++target_link_libraries(jxrglue PRIVATE jpegxr m)
++# Enc app files
++set(ENCAPP JxrEncApp)
++add_executable(${ENCAPP} ${DIR_EXEC}/${ENCAPP}.c)
++set_property(TARGET ${ENCAPP}
++ PROPERTY COMPILE_DEFINITIONS __ANSI__ DISABLE_PERF_MEASUREMENT ${DEF_ENDIAN}
++)
++target_link_libraries(${ENCAPP} jxrglue) # jpegxr)
++install(TARGETS ${ENCAPP} RUNTIME DESTINATION ${JXRLIB_INSTALL_BIN_DIR})
++# Dec app files
++set(DECAPP JxrDecApp)
++add_executable(${DECAPP} ${DIR_EXEC}/${DECAPP}.c)
++set_property(TARGET ${DECAPP}
++ PROPERTY COMPILE_DEFINITIONS __ANSI__ DISABLE_PERF_MEASUREMENT ${DEF_ENDIAN}
++)
++set_property(TARGET ${DECAPP} PROPERTY COMPILE_FLAGS -w)
++target_link_libraries(${DECAPP} jxrglue) # jpegxr)
++install(TARGETS ${DECAPP} RUNTIME DESTINATION ${JXRLIB_INSTALL_BIN_DIR})
++
++# install rules
++install(FILES jxrgluelib/JXRGlue.h jxrgluelib/JXRMeta.h jxrtestlib/JXRTest.h
++ image/sys/windowsmediaphoto.h
++ DESTINATION ${JXRLIB_INSTALL_INCLUDE_DIR} COMPONENT Headers
++)
++install(DIRECTORY common/include/ DESTINATION ${JXRLIB_INSTALL_INCLUDE_DIR}
++ FILES_MATCHING PATTERN "*.h"
++)
diff --git a/graphics-libs/jxrlib/patches/0002-bug748590.patch b/graphics-libs/jxrlib/patches/0002-bug748590.patch
new file mode 100644
index 0000000000..9efc339b45
--- /dev/null
+++ b/graphics-libs/jxrlib/patches/0002-bug748590.patch
@@ -0,0 +1,16 @@
+Description: Fix function signature
+Author: Mathieu Malaterre <malat@debian.org>
+Origin: upstream, https://jxrlib.codeplex.com/SourceControl/changeset/04cf339385b8196f98025b43a366a0790deac994
+Bug-Debian: http://bugs.debian.org/748590
+
+--- jxrlib-1.1.orig/image/decode/JXRTranscode.c
++++ jxrlib-1.1/image/decode/JXRTranscode.c
+@@ -47,7 +47,7 @@ EXTERN_C Void FreeCodingContextDec(CWMIm
+ EXTERN_C Int StrEncInit(CWMImageStrCodec *);
+ EXTERN_C Void StrIOEncTerm(CWMImageStrCodec *);
+ EXTERN_C Void FreeCodingContextEnc(CWMImageStrCodec *);
+-EXTERN_C Void encodeMB(CWMImageStrCodec *, Int, Int);
++EXTERN_C Int encodeMB(CWMImageStrCodec *, Int, Int);
+ EXTERN_C Int writeIndexTableNull(CWMImageStrCodec *);
+ EXTERN_C Void writePacketHeader(BitIOInfo *, U8, U8);
+
diff --git a/graphics-libs/jxrlib/patches/0003-typos.patch b/graphics-libs/jxrlib/patches/0003-typos.patch
new file mode 100644
index 0000000000..63a09ea72d
--- /dev/null
+++ b/graphics-libs/jxrlib/patches/0003-typos.patch
@@ -0,0 +1,28 @@
+Description: Fix typos and remove some warnings
+Author: Mathieu Malaterre <malat@debian.org>
+
+Origin: Debian
+[ismael@iodev.co.uk: Removed buildsystem fixes]
+
+--- a/jxrencoderdecoder/JxrEncApp.c
++++ b/jxrencoderdecoder/JxrEncApp.c
+@@ -578,7 +578,7 @@ main(int argc, char* argv[])
+
+ //================================
+ Call(PKCreateCodecFactory(&pCodecFactory, WMP_SDK_VERSION));
+- Call(pCodecFactory->CreateCodec(&IID_PKImageWmpEncode, &pEncoder));
++ Call(pCodecFactory->CreateCodec(&IID_PKImageWmpEncode, (void**)&pEncoder));
+
+ //----------------------------------------------------------------
+ Call(PKCreateTestFactory(&pTestFactory, WMP_SDK_VERSION));
+--- a/jxrgluelib/JXRMeta.h
++++ b/jxrgluelib/JXRMeta.h
+@@ -34,7 +34,7 @@
+
+ #ifndef UNREFERENCED_PARAMETER
+ #define UNREFERENCED_PARAMETER(P) { (P) = (P); }
+-#endif UNREFERENCED_PARAMETER
++#endif /*UNREFERENCED_PARAMETER*/
+
+ //================================================================
+ // Container