38d6f1152a
- Update to version 4.4.0 - add darktable.keyring - update build requirements OBS-URL: https://build.opensuse.org/request/show/1094733 OBS-URL: https://build.opensuse.org/package/show/graphics:darktable/darktable?expand=0&rev=58
420 lines
11 KiB
RPMSpec
420 lines
11 KiB
RPMSpec
#
|
|
# spec file for package darktable
|
|
#
|
|
# Copyright (c) 2023 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 desktop_filename org.darktable.darktable
|
|
|
|
%bcond_with clang
|
|
|
|
%if 0%{?fedora} || 0%{?suse_version} >= 1590
|
|
%bcond_with use_intree_lua
|
|
%else
|
|
%bcond_without use_intree_lua
|
|
%endif
|
|
|
|
%if %{with use_intree_lua}
|
|
%define _dont_use_intree_lua OFF
|
|
%else
|
|
%define _dont_use_intree_lua ON
|
|
%endif
|
|
|
|
%if 0%{?suse_version} || 0%{?fedora}
|
|
%bcond_without cmake_macros
|
|
%else
|
|
%bcond_with cmake_macros
|
|
%endif
|
|
|
|
%if 0%{?is_opensuse} || 0%{?fedora}
|
|
%bcond_without osmgpsmap
|
|
%bcond_without flickcurl
|
|
%bcond_without translated_manpages
|
|
%else
|
|
%bcond_with osmgpsmap
|
|
%bcond_with flickcurl
|
|
%bcond_with translated_manpages
|
|
%endif
|
|
|
|
%if 0%{?suse_version} >= 1550 || 0%{?fedora}
|
|
%bcond_without avif
|
|
%else
|
|
%bcond_with avif
|
|
%endif
|
|
|
|
%if 0%{?suse_version} >= 1550 || 0%{?fedora} >= 37
|
|
%bcond_without jxl
|
|
%else
|
|
%bcond_with jxl
|
|
%endif
|
|
|
|
%if 0%{?suse_version} >= 1550
|
|
%bcond_without gmic
|
|
%else
|
|
%bcond_with gmic
|
|
%endif
|
|
|
|
%if 0%{?suse_version}
|
|
%bcond_without libheif
|
|
%else
|
|
%bcond_with libheif
|
|
%endif
|
|
|
|
%ifarch ppc64le
|
|
# The OpenCL kernels don't compile on ppc64le and if you get
|
|
# them compiled there are funny runtime issues.
|
|
%bcond_with opencl
|
|
%else
|
|
%bcond_without opencl
|
|
%endif
|
|
|
|
%bcond_without openmp
|
|
|
|
%if %{with openmp}
|
|
%global _use_openmp "ON"
|
|
%else
|
|
%global _use_openmp "OFF"
|
|
%endif
|
|
|
|
%if %{with opencl}
|
|
%global _use_opencl "ON"
|
|
%else
|
|
%global _use_opencl "OFF"
|
|
%endif
|
|
|
|
%if %{with gmic}
|
|
%global _use_gmic "ON"
|
|
%else
|
|
%global _use_gmic "OFF"
|
|
%endif
|
|
|
|
%if %{with avif}
|
|
%global _use_avif "ON"
|
|
%else
|
|
%global _use_avif "OFF"
|
|
%endif
|
|
|
|
%if 0%{?suse_version} && 0%{?suse_version} < 1550
|
|
%global force_gcc_version 12
|
|
%endif
|
|
|
|
Name: darktable
|
|
Version: 4.4.0
|
|
Release: 0
|
|
%global pkg_name darktable
|
|
%global pkg_version %{version}
|
|
URL: http://www.darktable.org/
|
|
Source0: https://github.com/darktable-org/darktable/releases/download/release-%{version}/%{pkg_name}-%{version}.tar.xz
|
|
Source1: https://github.com/darktable-org/darktable/releases/download/release-%{version}/%{pkg_name}-%{version}.tar.xz.asc
|
|
Source2: %{pkg_name}-rpmlintrc
|
|
Source3: %{pkg_name}.keyring
|
|
#
|
|
Source97: darktable.dsc
|
|
Source98: debian.tar.xz
|
|
Source99: README.openSUSE
|
|
#
|
|
Patch0: darktable-old-glib.patch
|
|
#
|
|
ExclusiveArch: x86_64 aarch64 ppc64le
|
|
# build time tools
|
|
BuildRequires: clang >= 13
|
|
BuildRequires: cmake >= 3.18
|
|
BuildRequires: fdupes
|
|
BuildRequires: llvm-devel
|
|
%if 0%{?fedora}
|
|
BuildRequires: llvm-static
|
|
%endif
|
|
%if %{without clang}
|
|
BuildRequires: gcc%{?force_gcc_version}-c++ >= 12
|
|
%if 0%{?force_gcc_version}
|
|
#!BuildIgnore: libgcc_s1
|
|
%endif
|
|
%endif
|
|
BuildRequires: intltool
|
|
BuildRequires: libxslt
|
|
%if %{with translated_manpages}
|
|
BuildRequires: po4a
|
|
%endif
|
|
%if 0%{?suse_version}
|
|
BuildRequires: update-desktop-files
|
|
%endif
|
|
BuildRequires: desktop-file-utils
|
|
BuildRequires: hicolor-icon-theme
|
|
BuildRequires: xz
|
|
# libraries deps
|
|
BuildRequires: cups-devel
|
|
BuildRequires: libjpeg-devel
|
|
BuildRequires: pkgconfig(libtiff-4)
|
|
BuildRequires: pkgconfig(libxml-2.0)
|
|
#
|
|
%if 0%{?suse_version} >= 1550
|
|
BuildRequires: pkgconfig(lua5.4)
|
|
%else
|
|
BuildRequires: pkgconfig(lua)
|
|
%endif
|
|
BuildRequires: pkgconfig(pugixml)
|
|
#
|
|
BuildRequires: pkgconfig
|
|
BuildRequires: pkgconfig(ImageMagick)
|
|
BuildRequires: pkgconfig(OpenEXR) >= 3
|
|
BuildRequires: pkgconfig(atk)
|
|
BuildRequires: pkgconfig(colord)
|
|
BuildRequires: pkgconfig(colord-gtk)
|
|
BuildRequires: pkgconfig(exiv2)
|
|
BuildRequires: pkgconfig(libopenjp2)
|
|
%if %{with flickcurl}
|
|
BuildRequires: pkgconfig(flickcurl)
|
|
%endif
|
|
BuildRequires: pkgconfig(gdk-pixbuf-2.0)
|
|
BuildRequires: pkgconfig(gio-2.0)
|
|
BuildRequires: pkgconfig(glib-2.0)
|
|
BuildRequires: pkgconfig(gtk+-3.0) >= 3.24.5
|
|
BuildRequires: pkgconfig(iso-codes)
|
|
BuildRequires: pkgconfig(json-glib-1.0)
|
|
BuildRequires: pkgconfig(lcms2)
|
|
BuildRequires: pkgconfig(lensfun) >= 0.3.2
|
|
BuildRequires: pkgconfig(libcurl)
|
|
BuildRequires: pkgconfig(libgphoto2)
|
|
%if %{with libheif}
|
|
BuildRequires: pkgconfig(libheif)
|
|
%endif
|
|
%if %{with jxl}
|
|
BuildRequires: pkgconfig(libjxl) >= 0.7.0
|
|
%endif
|
|
BuildRequires: pkgconfig(librsvg-2.0)
|
|
BuildRequires: pkgconfig(libsecret-1)
|
|
BuildRequires: pkgconfig(libwebp)
|
|
%if %{with osmgpsmap}
|
|
BuildRequires: pkgconfig(osmgpsmap-1.0)
|
|
%endif
|
|
BuildRequires: pkgconfig(pango)
|
|
BuildRequires: pkgconfig(sdl2)
|
|
BuildRequires: pkgconfig(sqlite3)
|
|
BuildRequires: pkgconfig(tinfo)
|
|
%if %{with opencl}
|
|
BuildRequires: opencl-headers
|
|
%endif
|
|
%if %{with gmic}
|
|
%if 0%{?is_opensuse}
|
|
BuildRequires: libgmic-devel
|
|
%else
|
|
BuildRequires: gmic-devel
|
|
%endif
|
|
# /gmic
|
|
%endif
|
|
%if %{with avif}
|
|
BuildRequires: libavif-devel >= 0.9.0
|
|
%endif
|
|
BuildRequires: portmidi-devel
|
|
|
|
# for the sake of simplicity we do not enforce the version here
|
|
# the package is small enough that installing it doesnt hurt
|
|
Requires: iso-codes
|
|
#
|
|
# Some CSS themes suggest to use the the Roboto font family
|
|
# https://github.com/darktable-org/darktable/releases/tag/release-3.0.0
|
|
%if 0%{?fedora}
|
|
Recommends: roboto-fontface-fonts
|
|
%else
|
|
Recommends: google-roboto-fonts
|
|
%endif
|
|
#
|
|
Summary: A virtual Lighttable and Darkroom
|
|
License: GPL-3.0-or-later
|
|
Group: Productivity/Graphics/Viewers
|
|
Obsoletes: darktable-docs < %{version}-%{release}
|
|
Provides: darktable-docs = %{version}-%{release}
|
|
|
|
%description
|
|
darktable is a virtual lighttable and darkroom for photographers: it manages
|
|
digital negatives in a database and can show them through a zoomable
|
|
lighttable. It also enables developing raw images and enhance them.
|
|
|
|
%package tools-basecurve
|
|
Summary: The basecurve tool from tools/basecurve/
|
|
Group: Productivity/Graphics/Viewers
|
|
Requires: /usr/bin/convert
|
|
Requires: dcraw
|
|
Requires: exiftool
|
|
|
|
%description tools-basecurve
|
|
darktable is a virtual lighttable and darkroom for photographers: it manages
|
|
digital negatives in a database and can show them through a zoomable
|
|
lighttable. It also enables developing raw images and enhance them.
|
|
|
|
This package provides the basecurve tool from tools/basecurve/.
|
|
Another option to solve the same problem might be the darktable-chart module
|
|
from the darktable package.
|
|
|
|
%package tools-noise
|
|
Summary: Noise profiling tools to support new cameras
|
|
Group: Productivity/Graphics/Viewers
|
|
Requires: /usr/bin/convert
|
|
Requires: ghostscript
|
|
Requires: gnuplot
|
|
|
|
%description tools-noise
|
|
darktable is a virtual lighttable and darkroom for photographers: it manages
|
|
digital negatives in a database and can show them through a zoomable
|
|
lighttable. It also enables developing raw images and enhance them.
|
|
|
|
This package provides the noise profiling tools to add support for new cameras.
|
|
|
|
%prep
|
|
%autosetup -p1 -n %{pkg_name}-%{version}
|
|
|
|
cp %{SOURCE99} .
|
|
|
|
# Remove bundled OpenCL headers.
|
|
rm -rf src/external/CL src/external/OpenCL
|
|
sed -i -e 's, \"external/CL/\*\.h\" , ,' src/CMakeLists.txt
|
|
|
|
%if %{without use_intree_lua}
|
|
# Remove bundled lua
|
|
rm -rf src/external/lua/
|
|
%endif
|
|
|
|
%build
|
|
%global cmake_options \\\
|
|
-DCMAKE_INSTALL_LIBDIR=%{_lib} \\\
|
|
-DCMAKE_SKIP_RPATH:BOOL=OFF -DCMAKE_SKIP_INSTALL_RPATH:BOOL=OFF \\\
|
|
-DCMAKE_INSTALL_DATAROOTDIR="share" \\\
|
|
-DCMAKE_INSTALL_LIBEXECDIR="%{_libexecdir}" \\\
|
|
-DCMAKE_INSTALL_DOCDIR="%{_defaultdocdir}/%{pkg_name}" \\\
|
|
-DBINARY_PACKAGE_BUILD=1 \\\
|
|
-DRAWSPEED_ENABLE_LTO=ON \\\
|
|
-DUSE_OPENCL="%{_use_opencl}" \\\
|
|
-DUSE_OPENMP="%{_use_openmp}" \\\
|
|
-DUSE_GMIC="%{_use_gmic}" \\\
|
|
-DUSE_AVIF="%{_use_avif}" \\\
|
|
-DBUILD_NOISE_TOOLS=ON \\\
|
|
-DBUILD_CURVE_TOOLS=ON
|
|
|
|
%if 0%{?force_gcc_version}
|
|
export CC="gcc-%{?force_gcc_version}"
|
|
export CXX="g++-%{?force_gcc_version}"
|
|
%endif
|
|
%if %{with clang}
|
|
export CC="/usr/bin/clang"
|
|
export CXX="/usr/bin/clang++"
|
|
%endif
|
|
export _OPENCL_INCLUDE_DIR=$(clang -print-search-dirs | awk -F= '/^libra/ {print $2}' | awk -F: '{print $1 "/include"}')
|
|
|
|
%if %{with cmake_macros}
|
|
#suse branch
|
|
%cmake \
|
|
-DCLANG_OPENCL_INCLUDE_DIR=${_OPENCL_INCLUDE_DIR} \
|
|
-DDONT_USE_INTERNAL_LUA=%{_dont_use_intree_lua} \
|
|
%ifarch aarch64
|
|
-DTESTBUILD_OPENCL_PROGRAMS=OFF \
|
|
%endif
|
|
%{cmake_options} \
|
|
%if "%{optimization_architecture}" == "asan"
|
|
-DCMAKE_EXE_LINKER_FLAGS="" -DCMAKE_MODULE_LINKER_FLAGS="" -DCMAKE_SHARED_LINKER_FLAGS="" -DCMAKE_BUILD_TYPE=RELWITHDEBINFO \
|
|
%endif
|
|
|| cat CMakeFiles/CMakeError.log
|
|
%cmake_build
|
|
#/ suse branch
|
|
%else
|
|
#fedora branch
|
|
mkdir %{_target_platform}
|
|
pushd %{_target_platform}
|
|
%cmake \
|
|
-DDONT_USE_INTERNAL_LUA=%{_dont_use_intree_lua} \
|
|
%ifarch aarch64
|
|
-DTESTBUILD_OPENCL_PROGRAMS=OFF \
|
|
%endif
|
|
%{cmake_options} ..
|
|
make %{_smp_mflags} VERBOSE=1
|
|
|
|
#/ with cmake_macros
|
|
%endif
|
|
|
|
%install
|
|
%if %{with cmake_macros}
|
|
%cmake_install
|
|
|
|
%if 0%{?suse_version}
|
|
%suse_update_desktop_file %{desktop_filename}
|
|
%endif
|
|
#/ cmake macros branch
|
|
%else
|
|
# fedora branch
|
|
%make_install -C %{_target_platform}
|
|
#/ fedora branch
|
|
%endif
|
|
|
|
%find_lang darktable
|
|
|
|
rm %{buildroot}%{_defaultdocdir}/%{pkg_name}/LICENSE
|
|
|
|
%fdupes %{buildroot}/%{_prefix}
|
|
|
|
%if ! 0%{?suse_version}
|
|
%post
|
|
touch --no-create %{_datadir}/icons/hicolor >/dev/null 2>/dev/null || :
|
|
|
|
%postun
|
|
update-desktop-database >/dev/null 2>/dev/null || :
|
|
if [ $1 -eq 0 ] ; then
|
|
touch --no-create %{_datadir}/icons/hicolor >/dev/null 2>/dev/null
|
|
gtk-update-icon-cache %{_datadir}/icons/hicolor >/dev/null 2>/dev/null || :
|
|
fi
|
|
|
|
%posttrans
|
|
gtk-update-icon-cache %{_datadir}/icons/hicolor >/dev/null 2>/dev/null || :
|
|
%endif
|
|
|
|
%files -f darktable.lang
|
|
%doc %{_defaultdocdir}/%{pkg_name}
|
|
%license LICENSE
|
|
%exclude %{_defaultdocdir}/%{pkg_name}/README.tools.basecurve.md
|
|
%{_bindir}/darktable
|
|
%if %{with opencl}
|
|
%{_bindir}/darktable-cltest
|
|
%endif
|
|
%{_bindir}/darktable-cli
|
|
%{_bindir}/darktable-generate-cache
|
|
%{_bindir}/darktable-chart
|
|
%{_bindir}/darktable-cmstest
|
|
%{_bindir}/darktable-rs-identify
|
|
%{_libdir}/darktable
|
|
%{_datadir}/applications/%{desktop_filename}.desktop
|
|
%{_datadir}/darktable
|
|
%exclude %{_datadir}/%{pkg_name}/tools/basecurve/
|
|
%dir %{_datadir}/metainfo
|
|
%{_datadir}/metainfo/%{desktop_filename}.appdata.xml
|
|
%{_datadir}/icons/hicolor/*/apps/darktable*
|
|
%{_mandir}/man1/darktable*.1*
|
|
%if %{with translated_manpages}
|
|
%{_mandir}/*/man1/darktable*.1*
|
|
%endif
|
|
%dir %{_libexecdir}/darktable
|
|
%dir %{_libexecdir}/darktable/tools
|
|
|
|
%files tools-basecurve
|
|
%{_libexecdir}/darktable/tools/darktable-curve-tool
|
|
%{_libexecdir}/darktable/tools/darktable-curve-tool-helper
|
|
%{_datadir}/%{pkg_name}/tools/basecurve/
|
|
%doc %{_defaultdocdir}/%{pkg_name}/README.tools.basecurve.md
|
|
|
|
%files tools-noise
|
|
%{_libexecdir}/darktable/tools/darktable-gen-noiseprofile
|
|
%{_libexecdir}/darktable/tools/darktable-noiseprofile
|
|
%{_libexecdir}/darktable/tools/profiling-shot.xmp
|
|
%{_libexecdir}/darktable/tools/subr.sh
|
|
|
|
%changelog
|