#%global debug_package %{nil}
%undefine _ld_as_needed
  
%define major 3

Name:    freeimage
Version: 3.18.0
Release: 7
Summary: FreeImage is a library project for developers who would like to support popular graphics image formats (PNG, JPEG, TIFF, BMP and others)
License: GPLv2 or GPLv3 and FIPL
URL:	 https://freeimage.sourceforge.io/
Source0: http://downloads.sourceforge.net/freeimage/FreeImage3180.zip

Patch0:         CVE-2019-12211_2019-12213.patch

# https://github.com/glennrp/libpng/commit/32784523239c376dfe544bb6c7012c4934624a6d
Patch1:         fix-libpng-arm-neon.patch
Patch2:         FreeImage_unbundle.patch
# Fix incorrect path in doxyfile
Patch3:         FreeImage_doxygen.patch
# Fix incorrect variable names in BIGENDIAN blocks
Patch4:         FreeImage_bigendian.patch
Patch5:		substream.patch
Patch6:		Fix-build-failure-with-OpenEXR-3.0.patch


BuildRequires:  doxygen  gcc-c++ make jxrlib-devel libjpeg-devel libmng-devel libpng-devel libtiff-devel libwebp-devel LibRaw-devel OpenEXR-devel openjpeg2-devel


%description
FreeImage is a library project for developers who would like to support popular graphics image formats (PNG, JPEG, TIFF, BMP and others). Some highlights are: extremely simple in use, not limited to the local PC (unique FreeImageIO) and Plugin driven!

%package devel
Summary: FreeImage is a library project for developers who would like to support popular graphics image formats (PNG, JPEG, TIFF, BMP and others)
Requires: %{name} = %{version}-%{release}
%description devel
FreeImage is a library project for developers who would like to support popular graphics image formats (PNG, JPEG, TIFF, BMP and others). Some highlights are: extremely simple in use, not limited to the local PC (unique FreeImageIO) and Plugin driven!

%prep
%autosetup -p1 -n FreeImage 
# remove all included libs to make sure these don't get used during compile
rm -r Source/Lib* Source/ZLib Source/OpenEXR

# clear files which cannot be built due to dependencies on private headers
# (see also unbundle patch)
> Source/FreeImage/PluginG3.cpp
> Source/FreeImageToolkit/JPEGTransform.cpp

# sanitize encodings / line endings
for file in `find . -type f -name '*.c' -or -name '*.cpp' -or -name '*.h' -or -name '*.txt' -or -name Makefile`; do
  iconv --from=ISO-8859-15 --to=UTF-8 $file > $file.new && \
  sed -i 's|\r||g' $file.new && \
  touch -r $file $file.new && mv $file.new $file
done


%build
sh ./gensrclist.sh
sh ./genfipsrclist.sh
%ifarch %{power64} %{mips32} aarch64
%make_build -f Makefile.gnu CFLAGS="%{optflags} -fPIC" CXXFLAGS="%{optflags} -fPIC" LDFLAGS="%{__global_ldflags}"
%make_build -f Makefile.fip CFLAGS="%{optflags} -fPIC" CXXFLAGS="%{optflags} -fPIC" LDFLAGS="%{__global_ldflags}"
%else
%make_build -f Makefile.gnu CFLAGS="%{optflags}" CXXFLAGS="%{optflags}" LDFLAGS="%{__global_ldflags}"
%make_build -f Makefile.fip CFLAGS="%{optflags}" CXXFLAGS="%{optflags}" LDFLAGS="%{__global_ldflags}"
%endif

pushd Wrapper/FreeImagePlus/doc
doxygen FreeImagePlus.dox
popd


%install
install -Dpm 755 Dist/lib%{name}-%{version}.so %{buildroot}%{_libdir}/lib%{name}-%{version}.so
ln -s lib%{name}-%{version}.so %{buildroot}%{_libdir}/lib%{name}.so

install -Dpm 755 Dist/lib%{name}plus-%{version}.so %{buildroot}%{_libdir}/lib%{name}plus-%{version}.so
ln -s lib%{name}plus-%{version}.so %{buildroot}%{_libdir}/lib%{name}plus.so
install -Dpm 644 Source/FreeImage.h %{buildroot}%{_includedir}/FreeImage.h
install -Dpm 644 Wrapper/FreeImagePlus/FreeImagePlus.h %{buildroot}%{_includedir}/FreeImagePlus.h

# install missing symlink (was giving no-ldconfig-symlink rpmlint errors)
ldconfig -n %{buildroot}%{_libdir}

%pre
%preun
%post
%postun

%check

%files
%license license-*.txt 
%doc README.linux README.md Whatsnew.txt
%{_libdir}/lib%{name}-%{version}.so
%{_libdir}/lib%{name}.so.*
%{_libdir}/lib%{name}plus-%{version}.so
%{_libdir}/lib%{name}plus.so.*

%files devel
%doc Examples Wrapper/FreeImagePlus/html
%{_includedir}/FreeImage.h
%{_libdir}/lib%{name}.so
%{_includedir}/FreeImagePlus.h
%{_libdir}/lib%{name}plus.so


%changelog
* Tue Mar 01 2022 weidong <weidong@uniontech.com> -3.18.0-7
- Fix build error

* Tue Feb 09 2021 Jiachen Fan <fanjiachen3@huawei.com> -3.18.0-6
- correct the substream.patch: correct the line

* Wed Dec 16 2020 Senlin <xiasenlin1@huawei.com> -3.18.0-5
- correct the substream.patch: add an empty line at end of file

* Tue Dec 15 2020 Senlin <xiasenlin1@huawei.com> -3.18.0-4
- Rebuild for new LibRaw

* Mon Nov 09 2020 weidong <weidong@uniontech.com>
- Unbundle bundled libraries
- Fix incorrect path in doxyfile
- Fix incorrect variable names in BIGENDIAN blocks

* Thu Sep 10 2020 weidong <weidong@uniontech.com>
- fix libpng arm neon in freeimage 

* Mon May 4 2020 Wei Xiong <myeuler@163.com>
- Package init

