diff --git a/1.0.tar.gz b/1.0.tar.gz new file mode 100644 index 0000000..408e4da Binary files /dev/null and b/1.0.tar.gz differ diff --git a/CharLS.spec b/CharLS.spec new file mode 100644 index 0000000..560495c --- /dev/null +++ b/CharLS.spec @@ -0,0 +1,70 @@ +Name: CharLS +Version: 1.0 +Release: 1 +Summary: An optimized implementation of the JPEG-LS standard +License: BSD +URL: https://github.com/team-charls/charls +Source0: https://github.com/team-charls/charls/archive/%{version}.tar.gz +Patch0: charls_add_cmake_install_target.patch +Patch1: charls_add_sharedlib_soname.patch +Patch2: charls_fix_tests.patch +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: cmake >= 2.6.0 +BuildRequires: dos2unix +%description +An optimized implementation of the JPEG-LS standard for loss less and +near loss less image compression. JPEG-LS is a low-complexity standard that +matches JPEG 2000 compression ratios. In terms of speed, CharLS outperforms +open source and commercial JPEG LS implementations. +JPEG-LS (ISO-14495-1/ITU-T.87) is a standard derived from the Hewlett Packard +LOCO algorithm. JPEG LS has low complexity (meaning fast compression) and high +compression ratios, similar to JPEG 2000. JPEG-LS is more similar to the old +loss less JPEG than to JPEG 2000, but interestingly the two different techniques +result in vastly different performance characteristics. + +%prep +%setup -q -n charls-%{version} +rm CharLS.vcproj +rm CharLS.sln +dos2unix *.h +dos2unix *.c* +dos2unix *.txt +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 + +%build +%cmake -DBUILD_SHARED_LIBS:BOOL=ON\ + -Dcharls_BUILD_SHARED_LIBS:BOOL=ON\ + -DCMAKE_BUILD_TYPE:STRING="Release"\ + -DCMAKE_VERBOSE_MAKEFILE=ON\ + -DBUILD_TESTING=ON . +make %{?_smp_mflags} + +%install +make install DESTDIR=$RPM_BUILD_ROOT + +%check +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:. +ctest . +%ldconfig_scriptlets + +%files +%license License.txt +%{_libdir}/*.so.* + +%package devel +Summary: Libraries and headers for CharLS +Requires: %{name}%{?_isa} = %{version}-%{release} +%description devel +CharLS Library Header Files and Link Libraries. + +%files devel +%dir %{_includedir}/%{name}/ +%{_includedir}/%{name}/* +%{_libdir}/*.so + +%changelog +* Thu Aug 27 2020 geyanan - 1.0-1 +- package init diff --git a/CharLS.yaml b/CharLS.yaml new file mode 100644 index 0000000..e9c8b6d --- /dev/null +++ b/CharLS.yaml @@ -0,0 +1,4 @@ +version_control:github +src_repo:/team-charls/charls +tag_prefix:"v" +seperator:"." diff --git a/charls_add_cmake_install_target.patch b/charls_add_cmake_install_target.patch new file mode 100644 index 0000000..bd96ffa --- /dev/null +++ b/charls_add_cmake_install_target.patch @@ -0,0 +1,24 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 8304f0d..88f0949 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -12,6 +12,11 @@ SET(CMAKE_CXX_FLAGS "-D NDEBUG -O3" ) + ENDIF(CMAKE_COMPILER_IS_GNUCC) + ENDIF(NOT CMAKE_BUILD_TYPE) + ++SET( charls_HEADERS "colortransform.h" "context.h" "decoderstrategy.h" "encoderstrategy.h" "interface.h" ++ "losslesstraits.h" "scan.h" "streams.h" "config.h" "contextrunmode.h" "defaulttraits.h" ++ "header.h" "lookuptable.h" "processline.h" "util.h" "publictypes.h" ++) ++ + OPTION(charls_BUILD_SHARED_LIBS "Build CharLS with shared libraries." OFF) + SET(BUILD_SHARED_LIBS ${charls_BUILD_SHARED_LIBS}) + +@@ -21,3 +26,7 @@ add_library(CharLS header.cpp interface.cpp jpegls.cpp ) + add_executable(charlstest test/main.cpp test/time.cpp test/util.cpp test/bitstreamdamage.cpp test/compliance.cpp test/performance.cpp test/dicomsamples.cpp) + target_link_libraries (charlstest CharLS) + ++# Installs the header files into the {build_dir}/include/libcharls directory ++install(FILES ${charls_HEADERS} DESTINATION include/CharLS) ++ ++ diff --git a/charls_add_sharedlib_soname.patch b/charls_add_sharedlib_soname.patch new file mode 100644 index 0000000..35dee21 --- /dev/null +++ b/charls_add_sharedlib_soname.patch @@ -0,0 +1,36 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 88f0949..c57ef72 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -20,8 +20,21 @@ SET( charls_HEADERS "colortransform.h" "context.h" "decoderstrategy.h" "encode + OPTION(charls_BUILD_SHARED_LIBS "Build CharLS with shared libraries." OFF) + SET(BUILD_SHARED_LIBS ${charls_BUILD_SHARED_LIBS}) + +-add_library(CharLS header.cpp interface.cpp jpegls.cpp ) ++# Add soname to generated shared lib + ++SET(CHARLS_LIB_MAJOR_VERSION 1) ++SET(CHARLS_LIB_MINOR_VERSION 0) ++ ++IF(BUILD_SHARED_LIBS) ++ add_library(CharLS SHARED header.cpp interface.cpp jpegls.cpp ++ stdafx.cpp ++ ) ++ set_target_properties( CharLS PROPERTIES ++ VERSION ${CHARLS_LIB_MAJOR_VERSION}.${CHARLS_LIB_MINOR_VERSION} ++ SOVERSION ${CHARLS_LIB_MAJOR_VERSION} ++ ) ++ ++ENDIF(BUILD_SHARED_LIBS) + + add_executable(charlstest test/main.cpp test/time.cpp test/util.cpp test/bitstreamdamage.cpp test/compliance.cpp test/performance.cpp test/dicomsamples.cpp) + target_link_libraries (charlstest CharLS) +@@ -29,4 +42,8 @@ target_link_libraries (charlstest CharLS) + # Installs the header files into the {build_dir}/include/libcharls directory + install(FILES ${charls_HEADERS} DESTINATION include/CharLS) + ++# Installs the target file (libCharLS.so) into the {build_dir}/lib directory ++install(TARGETS CharLS LIBRARY DESTINATION lib${LIB_SUFFIX}) ++ ++ + diff --git a/charls_fix_tests.patch b/charls_fix_tests.patch new file mode 100644 index 0000000..2ea6291 --- /dev/null +++ b/charls_fix_tests.patch @@ -0,0 +1,13 @@ +diff --git a/defaulttraits.h b/defaulttraits.h +index 5032f7d..734bcea 100644 +--- a/defaulttraits.h ++++ b/defaulttraits.h +@@ -2,7 +2,7 @@ + // (C) Jan de Vaan 2007-2010, all rights reserved. See the accompanying "License.txt" for licensed use. + // + +- ++#include "header.h" + #ifndef CHARLS_DEFAULTTRAITS + #define CHARLS_DEFAULTTRAITS +