Name:           openjpeg2
Version:        2.5.0
Release:        1
Summary:        C-Library for JPEG 2000
License:        BSD and MIT
URL:            https://github.com/uclouvain/openjpeg
Source0:        https://github.com/uclouvain/openjpeg/archive/v%{version}/openjpeg-%{version}.tar.gz

Patch0:         openjpeg2_opj2.patch
Patch1:         heap-buffer-overflow.patch

BuildRequires:  cmake gcc-c++ make zlib-devel libpng-devel libtiff-devel lcms2-devel doxygen java-devel xerces-j2
BuildRequires:  jbigkit-devel libjpeg-turbo-devel

%description
OpenJPEG is an open-source JPEG 2000 codec written in C language. It has been developed in order
to promote the use of JPEG 2000, a still-image compression standard from the Joint Photographic
Experts Group (JPEG). Since April 2015, it is officially recognized by ISO/IEC and ITU-T as a
JPEG 2000 Reference Software.

%package        devel
Summary:        Development files for OpenJPEG 2
Requires:       %{name}%{?_isa} = %{version}-%{release}
# OpenJPEGTargets.cmake refers to the tools
Requires:%{name}-tools%{?_isa} = %{version}-%{release}

%description    devel
The %{name}-devel package contains libraries and header files for developing
applications that use OpenJPEG 2.

%package tools
Summary:        OpenJPEG 2 command line tools
Requires:       %{name}%{?_isa} = %{version}-%{release}
 
%description tools
Command line tools for JPEG 2000 file manipulation, using OpenJPEG2:
 * opj2_compress
 * opj2_decompress
 * opj2_dump

%package_help

%prep
%autosetup -n openjpeg-%{version} -p1 

# Remove all third party libraries just to be sure
find thirdparty/ -mindepth 1 -maxdepth 1 -type d -exec rm -rf {} \;

%build
mkdir %{_target_platform}
pushd %{_target_platform}
%cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DOPENJPEG_INSTALL_LIB_DIR=%{_lib} \
    %{?optional_components:-DBUILD_MJ2=ON -DBUILD_JPWL=ON -DBUILD_JPIP=ON -DBUILD_JP3D=ON} \
    -DBUILD_DOC=ON \
    -DBUILD_STATIC_LIBS=OFF \
    -DBUILD_SHARED_LIBS=ON \
    %{?runcheck:-DBUILD_TESTING:BOOL=ON -DOPJ_DATA_ROOT=$PWD/../data} \
    ..
popd

%make_build VERBOSE=1 -C %{_target_platform}


%install
%make_install -C %{_target_platform}

mv %{buildroot}%{_mandir}/man1/opj_compress.1 %{buildroot}%{_mandir}/man1/opj2_compress.1
mv %{buildroot}%{_mandir}/man1/opj_decompress.1 %{buildroot}%{_mandir}/man1/opj2_decompress.1
mv %{buildroot}%{_mandir}/man1/opj_dump.1 %{buildroot}%{_mandir}/man1/opj2_dump.1

%ldconfig_scriptlets

%files
%defattr(-,root,root)
%{!?_licensedir:%global license %doc}
%doc AUTHORS.md
%license LICENSE
%{_libdir}/libopenjp2.so.*
%exclude %{_datadir}/doc/

%files devel
%defattr(-,root,root)
%{_includedir}/openjpeg-2.5/*.h
%{_libdir}/*.so
%{_libdir}/openjpeg-2.5/
%{_libdir}/pkgconfig/libopenjp2.pc

%files help
%defattr(-,root,root)
%doc %{_target_platform}/doc/html
%doc NEWS.md README.md THANKS.md
%{_mandir}/man1/*.1*
%{_mandir}/man3/*.3*

%files tools
%{_bindir}/opj2_compress
%{_bindir}/opj2_decompress
%{_bindir}/opj2_dump

%changelog
* Sat Nov 05 2022 zhouwenpei <zhouwenpei1@h-partners.com> - 2.5.0-1
- update 2.5.0

* Mon May 16 2022 dongyuzhen <dongyuzhen@h-partners.com> - 2.4.0-6
- fix CVE-2022-1122

* Tue Apr 12 2022 dongyuzhen <dongyuzhen@h-partners.com> - 2.4.0-5
- fix the issue of opj2_compress/opj2_decompress don't work with png/tiff images

* Tue Jan 18 2022 yangcheng <yangcheng87@huawei.com> - 2.4.0-4
- fix poppler compilation failed to find opj2_decompress

* Wed Jan 12 2022 yangcheng <yangcheng87@huawei.com> - 2.4.0-3
- fix file duplication

* Wed Jan 12 2022 yangcheng <yangcheng87@huawei.com> - 2.4.0-2
- fix binary duplication

* Sat Dec 04 2021 xingxing <xingxing9@huawei.com> - 2.4.0-1
- update to 2.4.0

* Fri Sep 24 2021 yangcheng <yangcheng87@huawei.com> - 2.3.1-7
- fix CVE-2021-29338

* Tue Jun 8 2021 liuyumeng <liuyumeng5@huawei.com> - 2.3.1-6
- fix CVE-2020-8112 CVE-2020-6851 CVE-2020-27823 CVE-2020-27824,avoid integer overflow:pre-patch of CVE-2020-27841,fix fuzz

* Tue Feb 23 2021 jinzhimin <jinzhimin2@huawei.com> - 2.3.1-5
- fix CVE-2020-27841 CVE-2020-27843 CVE-2020-27845

* Sat Feb 20 2021 jinzhimin <jinzhimin2@huawei.com> - 2.3.1-4
- fix CVE-2020-27814

* Sat Jul 25 2020 zhangnaru <zhangnaru@huawei.com> -2.3.1-3
- fix CVE-2020-15389 

* Thu Sep 19 2019 openEuler Buildteam <buildteam@openeuler.org> - 2.3.1-2
- fix CVE-2016-10505 and CVE-2016-7445

* Thu Sep 19 2019 openEuler Buildteam <buildteam@openeuler.org> - 2.3.1-1
- Package init
