Petr Gajdos
17d9d2771e
- Update to version 3.0.2 * Fixed a signed integer overflow in the tj3CompressFromYUV8(), tj3DecodeYUV8(), tj3DecompressToYUV8(), and tj3EncodeYUV8() functions, detected by the Clang and GCC undefined behavior sanitizers, that could be triggered by setting the align parameter to an unreasonably large value. This issue did not pose a security threat, but removing the warning made it easier to detect actual security issues, should they arise in the future. * Introduced a new parameter (TJPARAM_MAXMEMORY in the TurboJPEG C API and TJ.PARAM_MAXMEMORY in the TurboJPEG Java API) and a corresponding TJBench option (-maxmemory) for specifying the maximum amount of memory (in megabytes) that will be allocated for intermediate buffers, which are used with progressive JPEG compression and decompression, optimized baseline entropy coding, lossless JPEG compression, and lossless transformation. The new parameter and option serve the same purpose as the max_memory_to_use field in the jpeg_memory_mgr struct in the libjpeg API, the JPEGMEM environment variable, and the cjpeg/djpeg/jpegtran -maxmemory option. * Introduced a new parameter (TJPARAM_MAXPIXELS in the TurboJPEG C API and TJ.PARAM_MAXPIXELS in the TurboJPEG Java API) and a corresponding TJBench option (-maxpixels) for specifying the maximum number of pixels that the decompression, lossless transformation, and packed-pixel image loading functions/methods will process. * Fixed an error ("Unsupported color conversion request") that occurred when attempting to decompress a 3-component lossless JPEG image without an Adobe APP14 marker. The decompressor OBS-URL: https://build.opensuse.org/request/show/1144368 OBS-URL: https://build.opensuse.org/package/show/graphics/libjpeg-turbo?expand=0&rev=153
231 lines
6.7 KiB
RPMSpec
231 lines
6.7 KiB
RPMSpec
#
|
|
# spec file for package libjpeg-turbo
|
|
#
|
|
# Copyright (c) 2024 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%global flavor @BUILD_FLAVOR@%{nil}
|
|
%if "%{flavor}" == ""
|
|
%global flavor libjpeg-turbo
|
|
%endif
|
|
|
|
%define asan_build 0
|
|
%define debug_build 0
|
|
%define srcver 3.0.2
|
|
%if "%{flavor}" == "libjpeg-turbo"
|
|
%define major 8
|
|
%define minor 3
|
|
%define micro 2
|
|
%define tmajor 0
|
|
%define tminor 3
|
|
%define tmicro 0
|
|
%define tlibver %{tmajor}.%{tminor}.%{tmicro}
|
|
%endif
|
|
%if "%{flavor}" == "libjpeg62-turbo"
|
|
%define major 62
|
|
%define minor 4
|
|
%define micro 0
|
|
%endif
|
|
%define libver %{major}.%{minor}.%{micro}
|
|
Name: %{flavor}
|
|
Version: %{srcver}
|
|
Release: 0
|
|
Summary: A SIMD-accelerated library for manipulating JPEG image files
|
|
License: BSD-3-Clause
|
|
URL: https://libjpeg-turbo.org/
|
|
Source0: https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/%{version}/libjpeg-turbo-%{version}.tar.gz
|
|
Source1: https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/%{version}/libjpeg-turbo-%{version}.tar.gz.sig
|
|
Source2: libjpeg-turbo.keyring
|
|
Source3: baselibs.conf
|
|
Patch1: libjpeg-turbo-1.3.0-tiff-ojpeg.patch
|
|
BuildRequires: cmake
|
|
BuildRequires: gcc-c++
|
|
BuildRequires: nasm
|
|
BuildRequires: pkgconfig
|
|
%if "%{flavor}" == "libjpeg-turbo"
|
|
Conflicts: jpeg%{major}
|
|
Obsoletes: jpeg = 6b
|
|
Obsoletes: jpeg = 8.0.1
|
|
Obsoletes: jpeg = 8.0.2
|
|
Provides: jpeg = %{version}
|
|
Obsoletes: jpeg < %{version}
|
|
Provides: jpegtran = %{version}
|
|
%{?suse_build_hwcaps_libs}
|
|
%endif
|
|
%if "%{flavor}" == "libjpeg62-turbo"
|
|
# needed for tests as we remove the lib here
|
|
BuildRequires: libturbojpeg0 >= 8.2.2
|
|
Conflicts: jpeg%{major}
|
|
%endif
|
|
|
|
%description
|
|
The libjpeg-turbo package contains a library of functions for manipulating
|
|
JPEG images. It supports architecture-specific SIMD instructions,
|
|
such as SSE/SSE2/AVX2, AltiVec, NEON, MIPS DSPR2, and Loongson MMI.
|
|
%if "%{flavor}" == "libjpeg-turbo"
|
|
It also includes the following command line utilities:
|
|
djpeg - decompress a JPEG file to an image file
|
|
jpegtran - lossless transformation of JPEG files
|
|
rdjpgcom - display text comments from a JPEG file
|
|
wrjpgcom - insert text comments into a JPEG file
|
|
tjbench - a JPEG decompression/compression benchmark
|
|
%endif
|
|
|
|
%package -n libjpeg%{major}
|
|
Version: %{libver}
|
|
Release: 0
|
|
Summary: A SIMD-accelerated JPEG compression/decompression library
|
|
|
|
%description -n libjpeg%{major}
|
|
A library for manipulating JPEG images. It supports
|
|
architecture-specific SIMD instructions, such as SSE/SSE2/AVX2,
|
|
AltiVec, NEON, MIPS DSPR2, and Loongson MMI.
|
|
|
|
%if "%{flavor}" == "libjpeg-turbo"
|
|
%package -n libturbojpeg%{tmajor}
|
|
Version: %{version}
|
|
Release: 0
|
|
Summary: A SIMD-accelerated JPEG compression/decompression library
|
|
|
|
%description -n libturbojpeg%{tmajor}
|
|
A library for manipulating JPEG images. It supports
|
|
architecture-specific SIMD instructions, such as SSE/SSE2/AVX2,
|
|
AltiVec, NEON, MIPS DSPR2, and Loongson MMI.
|
|
%endif
|
|
|
|
%package -n libjpeg%{major}-devel
|
|
Version: %{libver}
|
|
Release: 0
|
|
Summary: Development Tools for applications which will use the Libjpeg Library
|
|
Requires: libjpeg%{major} = %{version}
|
|
%if "%{flavor}" == "libjpeg-turbo"
|
|
Requires: libturbojpeg%{tmajor} = %{version}
|
|
%endif
|
|
Conflicts: libjpeg-devel
|
|
Provides: libjpeg-devel = %{version}
|
|
Obsoletes: libjpeg-devel < %{version}
|
|
|
|
%description -n libjpeg%{major}-devel
|
|
The libjpeg-devel package includes the header files and libraries
|
|
necessary for compiling and linking programs which will manipulate JPEG
|
|
files using the libjpeg library.
|
|
|
|
%prep
|
|
%autosetup -p1 -n libjpeg-turbo-%{srcver}
|
|
|
|
%build
|
|
MYLDFLAGS="-Wl,-z,relro,-z,now"
|
|
MYCFLAGS="%{optflags}"
|
|
%if %{asan_build}
|
|
MYLDFLAGS="$MYLDFLAGS -lasan"
|
|
MYCFLAGS="$MYCFLAGS -fsanitize=address"
|
|
%endif
|
|
%if %{debug_build}
|
|
MYCFLAGS="$MYCFLAGS -O0 -g"
|
|
%endif
|
|
%cmake \
|
|
%if "%{flavor}" == "libjpeg-turbo"
|
|
-DWITH_JPEG8=ON \
|
|
%endif
|
|
%if %{debug_build} || %{asan_build}
|
|
-DCMAKE_BUILD_TYPE=DEBUG \
|
|
-DCMAKE_C_FLAGS_DEBUG="$MYCFLAGS" \
|
|
%endif
|
|
%ifarch armv6l armv6hl
|
|
-DWITH_SIMD=FALSE \
|
|
%endif
|
|
%ifarch x86_64 %{ix86} aarch64 ppc64le
|
|
-DREQUIRE_SIMD=TRUE \
|
|
%endif
|
|
-DCMAKE_SHARED_LINKER_FLAGS="$MYLDFLAGS" \
|
|
-DENABLE_STATIC=OFF \
|
|
%ifarch s390x riscv64
|
|
-DFLOATTEST=fp-contract \
|
|
%endif
|
|
%{nil}
|
|
%make_build
|
|
|
|
%check
|
|
%if %{asan_build}
|
|
# ASAN needs /proc to be mounted
|
|
exit 0
|
|
%endif
|
|
export LD_LIBRARY_PATH=%{buildroot}%{_libdir}${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
|
|
%if 0%{?fedora_version} || 0%{?centos_version}
|
|
ctest --output-on-failure --force-new-ctest-process
|
|
%else
|
|
%ctest
|
|
%endif
|
|
|
|
%install
|
|
%if 0%{?fedora_version} || 0%{?centos_version}
|
|
make DESTDIR=%{buildroot} install/fast
|
|
%else
|
|
%cmake_install
|
|
%endif
|
|
# Remove docs, we'll select docs manually
|
|
rm -rf %{buildroot}%{_datadir}/doc/
|
|
%if "%{flavor}" == "libjpeg62-turbo"
|
|
# Remove unwanted files
|
|
rm %{buildroot}%{_bindir}/*
|
|
rm %{buildroot}%{_mandir}/man1/*
|
|
# libjpegturbo is provided with libjpeg-turbo.spec yet
|
|
rm %{buildroot}%{_includedir}/turbojpeg.h
|
|
rm %{buildroot}%{_libdir}/libturbojpeg.so*
|
|
rm %{buildroot}%{_libdir}/pkgconfig/libturbojpeg.pc
|
|
rm -r %{buildroot}%{_libdir}/cmake
|
|
%endif
|
|
|
|
%post -n libjpeg%{major} -p /sbin/ldconfig
|
|
%postun -n libjpeg%{major} -p /sbin/ldconfig
|
|
%if "%{flavor}" == "libjpeg-turbo"
|
|
%post -n libturbojpeg%{tmajor} -p /sbin/ldconfig
|
|
%postun -n libturbojpeg%{tmajor} -p /sbin/ldconfig
|
|
%endif
|
|
|
|
%if "%{flavor}" == "libjpeg-turbo"
|
|
%files
|
|
%doc README.md change.log ChangeLog.md
|
|
%doc usage.txt wizard.txt
|
|
%{_bindir}/*
|
|
%{_mandir}/man1/*
|
|
%endif
|
|
|
|
%files -n libjpeg%{major}
|
|
%license LICENSE.md
|
|
%{_libdir}/libjpeg.so.%{libver}
|
|
%{_libdir}/libjpeg.so.%{major}
|
|
|
|
%if "%{flavor}" == "libjpeg-turbo"
|
|
%files -n libturbojpeg%{tmajor}
|
|
%license LICENSE.md
|
|
%{_libdir}/libturbojpeg.so.%{tmajor}
|
|
%{_libdir}/libturbojpeg.so.%{tlibver}
|
|
%endif
|
|
|
|
%files -n libjpeg%{major}-devel
|
|
%{_includedir}/*.h
|
|
%{_libdir}/libjpeg.so
|
|
%{_libdir}/pkgconfig/libjpeg.pc
|
|
%doc coderules.txt jconfig.txt libjpeg.txt structure.txt tjexample.c
|
|
%if "%{flavor}" == "libjpeg-turbo"
|
|
%{_libdir}/libturbojpeg.so
|
|
%{_libdir}/pkgconfig/libturbojpeg.pc
|
|
%dir %{_libdir}/cmake/libjpeg-turbo
|
|
%{_libdir}/cmake/libjpeg-turbo/*
|
|
%endif
|
|
|
|
%changelog
|