%define build_compat32 %{?_with_compat32:1}%{!?_with_compat32:0}

Summary:	A MMX/SSE2/SIMD accelerated library for manipulating JPEG image files
Summary(ja):	MMX/SSE2/SIMD でアクセラレーションされた libjpeg ライブラリ

Name:		libjpeg-turbo
Version:	2.1.4
Release:	1%{?_dist_release}
Group:		system
Vendor:		Project Vine
Distribution:	Vine Linux

License:	IJG
URL:		http://sourceforge.net/projects/libjpeg-turbo

Source0:	http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
Patch0:		libjpeg-turbo-cmake.patch
Patch1:		libjpeg-turbo-CET.patch

BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root

BuildRequires:	cmake
%ifarch %{ix86} x86_64
BuildRequires:	nasm
%endif

Obsoletes:	libjpeg < 6b-50vl6
Provides:	libjpeg = 6b-50vl6

%description
The libjpeg-turbo package contains a library of functions for manipulating
JPEG images


%package devel
Summary:	Headers for the libjpeg-turbo library
Summary(ja):	libjpeg-turbo ライブラリのヘッダファイル
Group:		programming
Obsoletes:	libjpeg-devel < 6b-50vl6
Obsoletes:	libjpeg-static < 6b-50vl6
Provides:	libjpeg-devel = 6b-50vl6
Requires:	libjpeg-turbo = %{version}-%{release}

%description devel
This package contains header files necessary for developing programs which
will manipulate JPEG files using the libjpeg-turbo library


%package utils
Summary:	Utilities for manipulating JPEG images
Summary(ja):	JPEG イメージを操作するためのユーティリティ
Group:		graphics
Requires:	libjpeg-turbo = %{version}-%{release}

%description utils
The libjpeg-turbo-utils package contains simple client programs for
accessing the libjpeg functions. It contains cjpeg, djpeg, jpegtran,
rdjpgcom and wrjpgcom. Cjpeg compresses an image file into JPEG format.
Djpeg decompresses a JPEG file into a regular image file. Jpegtran
can perform various useful transformations on JPEG files. Rdjpgcom
displays any text comments included in a JPEG file. Wrjpgcom inserts
text comments into a JPEG file.


## to build compat32 for x86_64 architecture support
%package -n compat32-%{name}
Summary:	A MMX/SSE2 accelerated library for manipulating JPEG image files
Summary(ja):	MMX/SSE2 でアクセラレーションされた libjpeg ライブラリ
Group:		system,legacy
Obsoletes:	compat32-libjpeg < 6b-50vl6
Provides:	compat32-libjpeg = 6b-50vl6

%description -n compat32-%{name}
The libjpeg-turbo package contains a library of functions for manipulating
JPEG images


%package -n compat32-%{name}-devel
Summary:	Headers for the libjpeg-turbo library
Summary(ja):	libjpeg-turbo ライブラリのヘッダファイル
Group:		programming,legacy
Obsoletes:	compat32-libjpeg-devel < 6b-50vl6
Provides:	compat32-libjpeg-devel = 6b-50vl6
Requires:	libjpeg-turbo = %{version}-%{release}

%description -n compat32-%{name}-devel
This package contains header files necessary for developing programs which
will manipulate JPEG files using the libjpeg-turbo library


%debug_package


%prep
%setup -q
%patch0 -p1
%patch1 -p1


%build
%ifarch %{ix86} x86_64
export LDFLAGS="$RPM_LD_FLAGS -Wl,-z,ibt -Wl,-z,shstk"
%endif

mkdir jpeg6
pushd jpeg6
%{cmake} \
         -DCMAKE_SKIP_RPATH:BOOL=YES \
         -DCMAKE_SKIP_INSTALL_RPATH:BOOL=YES \
         -DENABLE_STATIC:BOOL=NO \
         ..

%cmake_build
popd

mkdir jpeg8
pushd jpeg8
%{cmake} \
         -DWITH_JPEG8=YES \
         -DCMAKE_SKIP_RPATH:BOOL=YES \
         -DCMAKE_SKIP_INSTALL_RPATH:BOOL=YES \
         -DENABLE_STATIC:BOOL=NO \
         ..

%cmake_build
popd

# Fix perms
chmod -x README.md


%install
rm -rf %{buildroot}
pushd jpeg6
%cmake_install
popd

rm -rf %{buildroot}%{_mandir}/*
rm -f %{buildroot}%{_includedir}/*
rm -f %{buildroot}%{_bindir}/*
rm -f %{buildroot}%{_libdir}/pkgconfig/*
rm -f %{buildroot}%{_libdir}/lib*.so

pushd jpeg8
%cmake_install
popd

# Remove unwanted files
rm -f %{buildroot}/%{_libdir}/lib{,turbo}jpeg.la


%check
export LD_LIBRARY_PATH=%{buildroot}%{_libdir}
pushd jpeg6
%ctest
popd

pushd jpeg8
%ctest
popd


%clean
rm -rf %{buildroot}


%files
%defattr(-,root,root,-)
%license LICENSE.md
%doc README.md README.ijg ChangeLog.md
%{_libdir}/libjpeg.so.*
%{_libdir}/libturbojpeg.so.*

%files devel
%defattr(-,root,root,-)
%doc coderules.txt jconfig.txt libjpeg.txt structure.txt
%{_includedir}/jconfig.h
%{_includedir}/jerror.h
%{_includedir}/jmorecfg.h
%{_includedir}/jpegint.h
%{_includedir}/jpeglib.h
%{_includedir}/turbojpeg.h
%{_libdir}/libjpeg.so
%{_libdir}/libturbojpeg.so
%{_libdir}/pkgconfig/libjpeg.pc
%{_libdir}/pkgconfig/libturbojpeg.pc
%{_libdir}/cmake/libjpeg-turbo

%files utils
%defattr(-,root,root,-)
%doc usage.txt wizard.txt
%{_bindir}/cjpeg
%{_bindir}/djpeg
%{_bindir}/jpegtran
%{_bindir}/rdjpgcom
%{_bindir}/wrjpgcom
%{_mandir}/man1/cjpeg.1*
%{_mandir}/man1/djpeg.1*
%{_mandir}/man1/jpegtran.1*
%{_mandir}/man1/rdjpgcom.1*
%{_mandir}/man1/wrjpgcom.1*

## to build compat32 for x86_64 architecture support
%if %{build_compat32}
%files -n compat32-%{name}
%defattr(-,root,root)
%{_libdir}/libjpeg.so.*
%{_libdir}/libturbojpeg.so.*

%files -n compat32-%{name}-devel
%defattr(-,root,root)
%{_libdir}/*.so
%endif


%changelog
* Sat Aug 13 2022 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.1.4-1
- new upstream release.

* Sat Feb 26 2022 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.1.3-1
- new upstream release.

* Sat Nov 20 2021 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.1.2-1
- new upstream release.

* Fri Oct 15 2021 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.1.1-1
- new upstream release.

* Fri Jun 11 2021 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.1.0-1
- new upstream release.
- dropped ldconfig scriptlets.
- updated Patch0 and 1.

* Tue Dec 29 2020 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.0.6-1
- new upstream release.

* Wed Sep 23 2020 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.0.5-1
- new upstream release.
- dropped Patch1000: fixed in upstream.

* Mon Jun 08 2020 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.0.4-2
- added Patch1000 to fix CVE-2020-13790.

* Mon Feb 10 2020 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.0.4-1
- new upstream release.

* Sat Oct 05 2019 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.0.3-2
- built both of libjpeg.so.62 and libjpeg.so.8.

* Sun Sep 08 2019 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 2.0.3-1
- new upstream release.
- dropped all patches.
- imported Patch0 and 1 from rawhide.

* Tue Dec 19 2017 Satoshi IWAMOTO <satoshi.iwamoto@nifty.ne.jp> 1.5.3-1
- update to 1.5.3
- update Patch0,doc

* Mon Nov 09 2015 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.4.2-1
- update to 1.4.2
- update Patch0

* Sun Sep 07 2014 Daisuke SUZUKI <daisuke@vinelinux.org> 1.3.1-1
- update to 1.3.1
- ship turbojpeg library and headers

* Sun Jul 20 2014 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.2.1-2
- rebuild with VineSeed environment

* Mon Sep 17 2012 Daisuke SUZUKI <daisuke@linux.or.jp> 1.2.1-1
- new upstream release 

* Tue Mar 29 2011 Daisuke SUZUKI <daisuke@linux.or.jp> 1.1.0-1
- new upstream release

* Tue Sep 14 2010 Daisuke SUZUKI <daisuke@linux.or.jp> 	1.0.0-1
- initial build for Vine Linux

* Wed Aug 04 2010 Adam Tkac <atkac redhat com> 1.0.0-3
- fix huffman decoder to handle broken JPEGs well (#617469)

* Fri Jul 02 2010 Adam Tkac <atkac redhat com> 1.0.0-2
- add libjpeg-devel%%{_isa} provides to -devel subpkg to satisfy imlib-devel
  deps

* Fri Jul 02 2010 Adam Tkac <atkac redhat com> 1.0.0-1
- update to 1.0.0
- patches merged
  - libjpeg-turbo-programs.patch
  - libjpeg-turbo-nosimd.patch
- add libjpeg provides to the main package to workaround problems with broken
  java-1.6.0-openjdk package

* Fri Jul 02 2010 Adam Tkac <atkac redhat com> 0.0.93-13
- remove libjpeg provides from -utils subpkg

* Wed Jun 30 2010 Rex Dieter <rdieter@fedoraproject.org> 0.0.93-12
- move Obsoletes: libjpeg to main pkg

* Wed Jun 30 2010 Rex Dieter <rdieter@fedoraproject.org> 0.0.93-11
- -utils: Requires: %%name ...

* Wed Jun 30 2010 Adam Tkac <atkac redhat com> 0.0.93-10
- add Provides = libjpeg to -utils subpackage

* Mon Jun 28 2010 Adam Tkac <atkac redhat com> 0.0.93-9
- merge review related fixes (#600243)

* Wed Jun 16 2010 Adam Tkac <atkac redhat com> 0.0.93-8
- merge review related fixes (#600243)

* Mon Jun 14 2010 Adam Tkac <atkac redhat com> 0.0.93-7
- obsolete -static libjpeg subpackage (#600243)

* Mon Jun 14 2010 Adam Tkac <atkac redhat com> 0.0.93-6
- improve package description a little (#600243)
- include example.c as %%doc in the -devel subpackage

* Fri Jun 11 2010 Adam Tkac <atkac redhat com> 0.0.93-5
- don't use "fc12" disttag in obsoletes/provides (#600243)

* Thu Jun 10 2010 Adam Tkac <atkac redhat com> 0.0.93-4
- fix compilation on platforms without MMX/SSE (#600243)

* Thu Jun 10 2010 Adam Tkac <atkac redhat com> 0.0.93-3
- package review related fixes (#600243)

* Wed Jun 09 2010 Adam Tkac <atkac redhat com> 0.0.93-2
- package review related fixes (#600243)

* Fri Jun 04 2010 Adam Tkac <atkac redhat com> 0.0.93-1
- initial package