Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:marcinbajor
darktable
darktable.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File darktable.spec of Package darktable
# # 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 optimization_architecture @BUILD_FLAVOR@%{nil} %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 %if 0%{?suse_version} >= 1550 || 0%{?fedora} >= 38 %bcond_without libraw %global _use_system_libraw "ON" %else %bcond_with libraw %global _use_system_libraw "ON" %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 %if "%{optimization_architecture}" == "znver2" && ((0%{?suse_version} && 0%{?suse_version} < 1550) || (0%{?fedora} && 0%{?fedora} < 30)) ExclusiveArch: do_not_build %endif %if "%{optimization_architecture}" != "" Name: darktable-%{optimization_architecture} %else Name: darktable %endif Version: 0 Release: 0 %global pkg_name darktable %global pkg_version %{version} URL: http://www.darktable.org/ Source0: %{pkg_name}-%{version}.tar.xz #Source1: %%{name}-%%{version}.tar.xz.asc Source2: %{pkg_name}-rpmlintrc # Source95: series Source97: darktable.dsc Source98: debian.tar.xz Source99: README.openSUSE # Patch0: darktable-rawspeed-build-type-override.patch # Conflicts: otherproviders(darktable) %if "%{optimization_architecture}" != "" Provides: darktable = %{version}-%{release} %if "%{optimization_architecture}" != "asan" ExcludeArch: aarch64 ppc64le # /"%%{optimization_architecture}" != "asan" %endif %else ExclusiveArch: x86_64 aarch64 ppc64le riscv64 # /"%%{optimization_architecture}" != "" %endif # build time tools BuildRequires: clang >= 13 BuildRequires: cmake >= 3.18 %if 0%{?fedora} BuildRequires: ninja-build %else BuildRequires: ninja %endif BuildRequires: fdupes BuildRequires: llvm-devel %if 0%{?fedora} BuildRequires: libasan 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) 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 %if %{with libraw} BuildRequires: pkgconfig(libraw) >= 0.21 %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 %define __builder ninja %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}" \\\ -DCOMPILER_SUPPORTS_SPLIT_DEBUG_INFO=OFF \\\ -DBINARY_PACKAGE_BUILD=1 \\\ -DRAWSPEED_ENABLE_LTO=ON \\\ -DUSE_OPENCL="%{_use_opencl}" \\\ -DUSE_OPENMP="%{_use_openmp}" \\\ -DUSE_GMIC="%{_use_gmic}" \\\ -DUSE_AVIF="%{_use_avif}" \\\ -DDONT_USE_INTERNAL_LIBRAW="%{_use_system_libraw}" \\\ -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 ./tools/create_version_c.sh src/version_gen.c "%{version}-%{release}%{?optimization_architecture}" %if %{with clang} export CC="/usr/bin/clang" export CXX="/usr/bin/clang++" %endif %if "%{optimization_architecture}" != "" %if "%{optimization_architecture}" == "asan" export CFLAGS="$(echo '%{optflags}' | perl -p -e 's|-fstack-\S+ ||g') -fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls" export CXXFLAGS="${CFLAGS}" export LDFLAGS="-fsanitize=address" %else export CFLAGS="%{optflags} -march=%{optimization_architecture}" export CXXFLAGS="${CFLAGS}" %endif %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 %define __builder ninja %if "%{optimization_architecture}" == "asan" # Do not strip asan binaries export NO_BRP_STRIP_DEBUG="true" export NO_DEBUGINFO_STRIP_DEBUG="true" # Do not create debuginfo package %define debug_package %{nil} %define __debug_install_post %{nil} : >debugfiles.list %if 0%{?suse_version} >= 1500 || 0%{?fedora} > 27 : >debugsourcefiles.list %else : >debugsources.list %endif %endif %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
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor