Files
desktop/libraw/libraw.spec
2026-03-10 21:36:09 +08:00

144 lines
4.2 KiB
RPMSpec

%define debug_build 0
%define asan_build 0
%define tar_name LibRaw
%define lver 23
%define lname libraw%{lver}
Name: libraw
Version: 0.21.4
Release: 0
Summary: Library for reading RAW files obtained from digital photo cameras
License: CDDL-1.0 OR LGPL-2.1-only
Group: Development/Libraries/C and C++
URL: https://www.libraw.org/
#Git-Clone: git://github.com/LibRaw/LibRaw
Source0: https://www.libraw.org/data/%tar_name-%version.tar.gz
# CVE-2020-22628 [bsc#1215308], stretch() function in librawsrcpostprocessing
Patch0: libraw-CVE-2020-22628.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: pkgconfig(libjpeg)
BuildRequires: lcms2
BuildRequires: libtool
BuildRequires: pkgconfig
# zlib for deflate DNG support
BuildRequires: zlib-devel
%description
LibRaw is a library for reading RAW files obtained from digital photo
cameras (CRW/CR2, NEF, RAF, DNG, and others).
LibRaw is based on the source codes of the dcraw utility, where part of
drawbacks have already been eliminated and part will be fixed in future.
%package tools
Summary: Tools for reading RAW files obtained from digital photo cameras
Group: Productivity/Graphics/Other
%description tools
LibRaw is a library for reading RAW files obtained from digital photo
cameras (CRW/CR2, NEF, RAF, DNG, and others).
LibRaw is based on the source codes of the dcraw utility, where part of
drawbacks have already been eliminated and part will be fixed in future.
%package -n %lname
Summary: Library for reading RAW files obtained from digital photo cameras
Group: System/Libraries
%description -n %lname
LibRaw is a library for reading RAW files obtained from digital photo
cameras (CRW/CR2, NEF, RAF, DNG, and others).
LibRaw is based on the source codes of the dcraw utility, where part of
drawbacks have already been eliminated and part will be fixed in future.
%package devel
Summary: Development files for libraw
Group: Development/Libraries/C and C++
Requires: %lname = %version
%description devel
LibRaw is a library for reading RAW files obtained from digital photo
cameras (CRW/CR2, NEF, RAF, DNG, and others).
LibRaw is based on the source codes of the dcraw utility, where part of
drawbacks have already been eliminated and part will be fixed in future.
%package devel-static
Summary: Library for reading RAW files obtained from digital photo cameras
Group: Development/Libraries/C and C++
Requires: %name-devel = %version
%description devel-static
LibRaw is a library for reading RAW files obtained from digital photo
cameras (CRW/CR2, NEF, RAF, DNG, and others).
LibRaw is based on the source codes of the dcraw utility, where part of
drawbacks have already been eliminated and part will be fixed in future.
This package contains static libraries that applications can use to build
against LibRaw. LibRaw does not provide dynamic libraries.
%prep
%autosetup -p1 -n %{tar_name}-%{version}
%build
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
export CXXFLAGS="%{optflags} -fPIC -DUSE_ZLIB"
export LDFLAGS="$LDFLAGS -pie"
%if %{debug_build}
export CXXFLAGS="$CXXFLAGS -O0"
%endif
export LIBS="$LIBS -lz"
autoreconf -fi
%configure
%if %{asan_build}
sed -i -e 's/\(^CXXFLAGS =.*\)/\1 -fsanitize=address/' \
-e 's/\(^LIBS =.*\)/\1 -lasan/' \
Makefile
%endif
make %{?_smp_mflags}
%install
find doc -type f -name "*.html" -exec chmod a-x "{}" "+"
mv doc manual
# The source tree has these with execute permissions for some reason
chmod -x Changelog.txt LICENSE.CDDL LICENSE.LGPL COPYRIGHT
chmod -x manual/index.html
# The Libraries
%make_install
find %buildroot -type f -name "*.la" -delete -print
# duplicated files
rm -rf %buildroot%_datadir/doc
%fdupes %buildroot/%_libdir
%post -n %lname -p /sbin/ldconfig
%postun -n %lname -p /sbin/ldconfig
%files tools
%_bindir/*
%files devel
%doc Changelog.txt
%license COPYRIGHT LICENSE.CDDL LICENSE.LGPL
%doc manual
%_includedir/%name/
%_libdir/pkgconfig/*.pc
%_libdir/libraw.so
%_libdir/libraw_r.so
%files -n %lname
%_libdir/libraw.so.%{lver}*
%_libdir/libraw_r.so.%{lver}*
%files devel-static
%_libdir/libraw.a
%_libdir/libraw_r.a
%changelog