gmic/gmic.spec

304 lines
8.5 KiB
RPMSpec
Raw Normal View History

#
# spec file for package gmic
#
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# 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 _gimpplugindir %(gimptool-2.0 --gimpplugindir)/plug-ins
%if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150200
%bcond_without digikam_plugin
%else
%bcond_with digikam_plugin
%endif
# opencv3 is not available for ppc
%ifnarch ppc64 ppc64le
%bcond_without opencv
%else
%bcond_with opencv
%endif
Name: gmic
Version: 2.7.1
Release: 0
Summary: GREYC's Magick for Image Computing (denoise and others)
# gmic-qt is GPL-3.0-or-later, zart is CECILL-2.0, libgmic and cli program are
# CECILL-2.1
License: CECILL-2.1
Group: Productivity/Graphics/Bitmap Editors
URL: https://gmic.eu
# Git URL: https://framagit.org/dtschump/gmic
Source0: https://gmic.eu/files/source/gmic_%{version}.tar.gz
Source1: gmic_qt.png
BuildRequires: cmake > 3.8
BuildRequires: fftw3-threads-devel
BuildRequires: pkgconfig
BuildRequires: update-desktop-files
# Not available yet
# %%if %%{with digikam_plugin}
# BuildRequires: cmake(DigikamCore) >= 6.3.0
# %%endif
BuildRequires: cmake(Qt5Core)
BuildRequires: cmake(Qt5Gui)
BuildRequires: cmake(Qt5LinguistTools)
BuildRequires: cmake(Qt5Network)
BuildRequires: cmake(Qt5Widgets)
BuildRequires: cmake(Qt5Xml)
BuildRequires: pkgconfig(GraphicsMagick++)
BuildRequires: pkgconfig(OpenEXR)
BuildRequires: pkgconfig(fftw3)
BuildRequires: pkgconfig(gimp-2.0)
BuildRequires: pkgconfig(libcurl)
BuildRequires: pkgconfig(libjpeg)
BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(libtiff-4)
BuildRequires: pkgconfig(zlib)
%if %{with opencv}
# in openSUSE >= 15.2, opencv-devel is opencv4 and pkgconfig(opencv) is opencv3
# ...and opencv3-devel doesn't exist in leap 15.0 and 15.1
%if 0%{?suse_version} <= 1500 && 0%{?sle_version} < 150200
BuildRequires: opencv-devel
%else
BuildRequires: pkgconfig(opencv)
%endif
%endif
%description
G'MIC is a framework for image processing, providing
several different user interfaces to convert/manipulate/filter/visualize
generic image datasets, from 1d scalar signals to 3d+t sequences of
multi-spectral volumetric images.
%package -n libgmic1
Summary: Shared library that belongs to gmic
License: CECILL-2.1
Group: Productivity/Graphics/Bitmap Editors
%package -n libgmic-devel
Summary: Header and library from gmic for use in other C++ projects
License: CECILL-2.1
Group: Development/Libraries/C and C++
Requires: libgmic1 = %{version}
%description -n libgmic1
Shared library allows you to use gmic functionality from other
programs.
%description -n libgmic-devel
Header and library from gmic to needed to develop C++ code that
uses the gmic functionality provided by the gmic library.
%package -n gimp-plugin-gmic
Summary: GMIC plugin for gimp
License: GPL-3.0-or-later
Group: Productivity/Graphics/Bitmap Editors
Requires: gimp
# This package was only available in the 'graphics' repo
Provides: gmic-gimp = %{version}
Obsoletes: gmic-gimp < %{version}
%description -n gimp-plugin-gmic
This is a plugin for gimp that exposes many of the nice gmic features
for interactive use in gimp.
%package -n krita-plugin-gmic
Summary: GMIC plugin for krita
License: GPL-3.0-or-later
Group: Productivity/Graphics/Bitmap Editors
Requires: krita
%description -n krita-plugin-gmic
This is a plugin for krita to provide gmic features.
# %%if %%{with digikam_plugin}
# %%package -n digikam-plugin-gmic
# Summary: GMIC plugin for digikam
# License: GPL-3.0-or-later
# Group: Productivity/Graphics/Bitmap Editors
# Requires: digikam
#
# %%description -n digikam-plugin-gmic
# This is a plugin for digikam to provide gmic features.
# %%endif
%package zart
Summary: GMIC GUI for video streams
License: CECILL-2.0
Group: Productivity/Graphics/Bitmap Editors
%description zart
ZArt is a computer program whose purpose is to demonstrate the possibilities of
the G'MIC image processing language by offering the choice of several
manipulations on a video stream acquired from a webcam. In other words, ZArt is
a GUI for G'MIC real-time manipulations on the output of a webcam.
%prep
%setup -q
# Generated file that should not be there
rm -f zart/.qmake.stash
%build
# Leap 15.0 doesn't know %%cmake_build
%{?!cmake_build:%define cmake_build() make %{?_smp_mflags} VERBOSE=1}
# Build gmic
%cmake \
-DENABLE_DYNAMIC_LINKING=ON \
-DBUILD_LIB_STATIC=OFF
%cmake_build
cd ..
# Create link for zart dynamic linking
ln -s ../build/libgmic.so src/libgmic.so
# Build gmic{_gimp|_krita|_digikam}_qt
pushd gmic-qt
%cmake \
-DENABLE_DYNAMIC_LINKING=ON \
-DGMIC_PATH=%{_builddir}/%{name}-%{version}/src \
-DGMIC_LIB_PATH=%{_builddir}/%{name}-%{version}/build \
-DGMIC_QT_HOST=gimp
%cmake_build
cd ..
%cmake \
-DENABLE_DYNAMIC_LINKING=ON \
-DGMIC_PATH=%{_builddir}/%{name}-%{version}/src \
-DGMIC_LIB_PATH=%{_builddir}/%{name}-%{version}/build \
-DGMIC_QT_HOST=krita
%cmake_build
cd ..
# %%if %%{with digikam_plugin}
# %%cmake \
# -DENABLE_DYNAMIC_LINKING=ON \
# -DGMIC_PATH=%%{_builddir}/%%{name}-%%{version}/src \
# -DGMIC_LIB_PATH=%%{_builddir}/%%{name}-%%{version}/build \
# -DGMIC_QT_HOST=digikam
# %%cmake_build
#
# cd ..
# %%endif
%cmake \
-DENABLE_DYNAMIC_LINKING=ON \
-DGMIC_PATH=%{_builddir}/%{name}-%{version}/src \
-DGMIC_LIB_PATH=%{_builddir}/%{name}-%{version}/build \
-DGMIC_QT_HOST=none
%cmake_build
cd ..
popd
%if %{with opencv}
# Build zart
pushd zart
%qmake5 zart.pro \
CONFIG+=release \
GMIC_DYNAMIC_LINKING=on \
GMIC_PATH=%{_builddir}/%{name}-%{version}/src
%make_jobs
popd
%endif
%install
%cmake_install
install -D -m 0644 %{SOURCE1} %{buildroot}%{_datadir}/pixmaps/gmic_qt.png
%suse_update_desktop_file -c gmic_qt "G'Mic Qt" "G'MIC Qt GUI" "gmic_qt %%F" gmic_qt "Qt;Graphics;Photography;"
install -d -m 0755 %{buildroot}%{_datadir}/bash-completion/completions
install -m 0644 build/resources/gmic_bashcompletion.sh %{buildroot}%{_datadir}/bash-completion/completions
# Film color lookup tables
install -d -m 0755 %{buildroot}%{_gimpplugindir}
install -m 0644 resources/gmic_cluts.gmz %{buildroot}%{_gimpplugindir}/gmic_cluts.gmz
# qt_gmic
pushd gmic-qt
install -m 0755 build/gmic_qt %{buildroot}%{_bindir}/gmic_qt
# krita plugin
install -m 0755 build/gmic_krita_qt %{buildroot}%{_bindir}/gmic_krita_qt
# gimp plugin
install -d -m 0755 %{buildroot}%{_gimpplugindir}
install -m 0755 build/gmic_gimp_qt %{buildroot}%{_gimpplugindir}/gmic_gimp_qt
popd
# %%if %%{with digikam_plugin}
# # digikam plugin
# install -d -m 0755 %%{buildroot}%%{_libqt5_plugindir}/digikam/editor
# install -m 0755 build/Editor_GmicQt_Plugin.so %%{buildroot}%%{_libqt5_plugindir}/digikam/editor/Editor_GmicQt_Plugin.so
# %%endif
%if %{with opencv}
# zart
pushd zart
install -m 0755 zart %{buildroot}%{_bindir}/zart
popd
%endif
%post -n libgmic1 -p /sbin/ldconfig
%postun -n libgmic1 -p /sbin/ldconfig
%files
%license COPYING
%doc README gmic-qt/README.md
%{_bindir}/gmic
%{_bindir}/gmic_qt
%{_mandir}/man1/gmic.1%{?ext_man}
%{_datadir}/applications/gmic_qt.desktop
%dir %{_datadir}/bash-completion
%dir %{_datadir}/bash-completion/completions
%{_datadir}/bash-completion/completions/gmic_bashcompletion.sh
%{_datadir}/pixmaps/gmic_qt.png
%if %{with opencv}
%files zart
%{_bindir}/zart
%endif
%files -n gimp-plugin-gmic
%license COPYING
%{_gimpplugindir}/gmic_gimp_qt
%{_gimpplugindir}/gmic_cluts.gmz
%files -n krita-plugin-gmic
%license COPYING
%{_bindir}/gmic_krita_qt
# %%if %%{with digikam_plugin}
# %%files -n digikam-plugin-gmic
# %%license COPYING
# %%dir %%{_libqt5_plugindir}/digikam
# %%dir %%{_libqt5_plugindir}/digikam/editor
# %%{_libqt5_plugindir}/digikam/editor/Editor_GmicQt_Plugin.so
# %%endif
%files -n libgmic1
%license COPYING
%{_libdir}/libgmic.so.*
%files -n libgmic-devel
%{_includedir}/gmic.h
%{_libdir}/libgmic.so
%{_libdir}/cmake/gmic/
%changelog