%define major 8 %define libname %mklibname jpeg %{major} %define devname %mklibname jpeg -d %define sdevname %mklibname jpeg -d -s %define majorturbo 0 %define libturbo %mklibname turbojpeg %{majorturbo} %define major62 62 %define libname62 %mklibname jpeg %{major62} Summary: A MMX/SSE2 accelerated library for manipulating JPEG image files Name: libjpeg-turbo #Epoch: 1 Version: 3.0.4 Release: 1 License: wxWidgets Library License Group: System/Libraries URL: https://www.libjpeg-turbo.org #Source0: https://sourceforge.net/projects/libjpeg-turbo/files/%{version}/%{name}-%{version}.tar.gz Source0: https://github.com/libjpeg-turbo/libjpeg-turbo/archive/%{version}/%{name}-%{version}.tar.gz # These two allow automatic lossless rotation of JPEG images from a digital # camera which have orientation markings in the EXIF data. After rotation # the orientation markings are reset to avoid duplicate rotation when # applying these programs again. Source2: http://jpegclub.org/jpegexiforient.c Source3: http://jpegclub.org/exifautotran.txt Patch0: jpeg-6b-c++fixes.patch BuildRequires: cmake BuildRequires: libtool >= 1.4 %ifarch %{ix86} x86_64 BuildRequires: nasm %endif %description This package contains a library of functions for manipulating JPEG images. It is a high-speed, libjpeg-compatible version for x86 and x86-64 processors which uses SIMD instructions (MMX, SSE2, etc.) to accelerate baseline JPEG compression and decompression. It is generally 2-4x as fast as the unmodified version of libjpeg, all else being equal. #---------------------------------------------------------------------------- %package -n %{libname} Summary: A library for manipulating JPEG image format files Group: System/Libraries %description -n %{libname} This package contains the library needed to run programs dynamically linked with libjpeg. %files -n %{libname} %doc change.log %{_libdir}/libjpeg.so.%{major}* #---------------------------------------------------------------------------- %package -n %{libname62} Summary: A library for manipulating JPEG image format files Group: System/Libraries %description -n %{libname62} This package contains the library needed to run programs dynamically linked with libjpeg. %files -n %{libname62} %{_libdir}/libjpeg.so.%{major62}* #---------------------------------------------------------------------------- %package -n %{libturbo} Summary: TurboJPEG library Group: System/Libraries %description -n %{libturbo} This package contains the library needed to run programs dynamically linked with libturbojpeg. %files -n %{libturbo} %{_libdir}/libturbojpeg.so.%{majorturbo}* #---------------------------------------------------------------------------- %package -n %{devname} Summary: Development tools for programs which will use the libjpeg library Group: Development/C Requires: %{libname} = %{EVRD} Requires: %{libturbo} = %{EVRD} Provides: jpeg-devel = %{EVRD} Conflicts: jpeg6-devel Conflicts: %{_lib}turbojpeg < 1:1.3.0 Obsoletes: %{_lib}turbojpeg < 1:1.3.0 Obsoletes: %{mklibname jpeg 62 -d} < 6b-45 %description -n %{devname} The libjpeg-turbo devel package includes the header files necessary for developing programs which will manipulate JPEG files using the libjpeg library. %files -n %{devname} %doc coderules.txt example.c jconfig.txt libjpeg.txt structure.txt %{_libdir}/libjpeg.so %{_libdir}/libturbojpeg.so %{_includedir}/*.h %{_libdir}/pkgconfig/libjpeg.pc %{_libdir}/pkgconfig/libturbojpeg.pc %{_libdir}/cmake/libjpeg-turbo/*.cmake #---------------------------------------------------------------------------- %package -n %{sdevname} Summary: Static libraries for programs which will use the libjpeg library Group: Development/C Requires: %{devname} = %{EVRD} Provides: jpeg-static-devel = %{EVRD} Conflicts: jpeg6-static-devel Obsoletes: %{mklibname jpeg 62 -d -s} < 6b-45 Obsoletes: %{mklibname jpeg 7 -d -s} < 7-3 %description -n %{sdevname} The libjpeg static devel package includes the static libraries necessary for developing programs which will manipulate JPEG files using the libjpeg library. %files -n %{sdevname} %{_libdir}/libjpeg.a %{_libdir}/libturbojpeg.a #---------------------------------------------------------------------------- %package -n jpeg-progs Summary: Programs for manipulating JPEG format image files Group: Graphics %rename libjpeg-progs %rename jpeg6-progs %description -n jpeg-progs This package contains simple client programs for accessing the libjpeg functions. The library client programs include cjpeg, djpeg, jpegtran, rdjpgcom, wrjpgcom and jpegexiforient, coupled with the script exifautotran. 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: it can make lossless cropping of JPEG files and lossless pasting of one JPEG into another (dropping). Rdjpgcom displays any text comments included in a JPEG file. Wrjpgcom inserts text comments into a JPEG file. Jpegexiforient allow automatic lossless rotation of JPEG images from a digital camera which have orientation markings in the EXIF data. %files -n jpeg-progs %doc usage.txt wizard.txt %{_bindir}/* %{_mandir}/man1/* #---------------------------------------------------------------------------- %prep %setup -q %patch0 -p0 cp %{SOURCE2} jpegexiforient.c cp %{SOURCE3} exifautotran %build # Prepare build dirs mkdir -p jpeg8 mkdir -p jpeg62 # Build jpeg v8 API pushd jpeg8 CFLAGS="%{optflags} -Ofast -funroll-loops" \ %cmake ../.. -DWITH_JPEG8="True" %make_build -s popd # Build jpeg v6.2 API pushd jpeg62 CFLAGS="%{optflags} -Ofast -funroll-loops" \ %cmake ../.. \ -DWITH_ARITH_DEC="True" \ -DWITH_ARITH_ENC="True" %make_build -s popd # Build jpegexiforient binary %__cc %{optflags} %{ldflags} -o jpegexiforient jpegexiforient.c %install %make_install -C jpeg8/build %make_install -C jpeg62/build install -m755 jpegexiforient -D %{buildroot}%{_bindir}/jpegexiforient install -m755 exifautotran -D %{buildroot}%{_bindir}/exifautotran #(neoclust) Provide jpegint.h because it is needed by certain software install -m644 jpegint.h -D %{buildroot}%{_includedir}/jpegint.h # Cleanup rm -rf %{buildroot}%{_docdir}/*