Accepting request 946946 from home:darix:playground

- added 56f7340ecb.patch
  make it search in /usr/share/gmic/ with all clients.

- prepare gimp 3 support
- install also the denoise data file
- introduce a new gmic-data subpackage and require it from all the
  frontends so we can access it more easily once this is resolved:
  https://discuss.pixls.us/t/fixing-more-things-in-gmic-packaging/28894
- make bash-completion noarch

- move shared options for all the gmic-qt versions into a define
  to reduce duplication

- Rework patches:
  - drop old patches with git generated copies:
    - 5e34754707b78358ef818d542d1e81d008bb2d12.patch
    - dont-set-gmic_build.patch
    - gmic-krita5.patch
    - make-build-without-gmic-cpp.patch
  - new patches:
    - gmic-make-build-without-gmic-cpp.patch
    - gmic-qt-make-it-work-without-gmic-cpp.patch
    - krita5.patch
- Update krita patch so we can apply it as normal patch without
  breaking other gmic-qt instances

- Remove unneeded BuildRequires fftw3-devel and cmake(KF5CoreAddons) 

- Use simpler syntax for the pkg version comparison

- enable building with Krita 5
  new BR: krita-devel
  new patches:
  - 5e34754707b78358ef818d542d1e81d008bb2d12.patch
  - gmic-krita5.patch

- Add dont-set-gmic_build.patch:
  Make gmic-qt flavors build without gmic.cpp. This should help
  with getting the new krita plugin built

- enable opencv support xshm support
  - Add BuildRequires xorg-x11-devel 

- add missing files for to make the devel package work:
  make-build-without-gmic-cpp.patch
- also track series for easier patching

- Add Conflicts for krita >= 5 as it needs the intree version of
  gmic-qt now

- Update to 3.0.1
  https://discuss.pixls.us/t/on-the-road-to-3-1/28221

OBS-URL: https://build.opensuse.org/request/show/946946
OBS-URL: https://build.opensuse.org/package/show/graphics/gmic?expand=0&rev=65
This commit is contained in:
2022-01-18 09:47:00 +00:00
committed by Git OBS Bridge
parent cc24ae2ac5
commit feb99f287c
9 changed files with 2099 additions and 36 deletions

143
gmic.spec
View File

@@ -1,7 +1,7 @@
#
# spec file for package gmic
#
# Copyright (c) 2021 SUSE LLC
# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,9 +16,31 @@
#
%global _gimpplugindir %(gimptool-2.0 --gimpplugindir)/plug-ins
%if %{pkg_vcmp krita >= 5}
%bcond_without krita5
%else
%bcond_with krita5
%endif
%if %{pkg_vcmp gimp >= 2.99}
%define gimp_suffix 3
%global _gimpplugindir %(gimptool-2.99 --gimpplugindir)/plug-ins/
%else
%global _gimpplugindir %(gimptool-2.0 --gimpplugindir)/plug-ins/
%endif
%if %{with krita5}
%define hostapps gimp%{?gimp_suffix}
%else
%define hostapps gimp%{?gimp_suffix} krita
%endif
%define gmic_qt_options -DENABLE_SYSTEM_GMIC=OFF -DENABLE_DYNAMIC_LINKING=ON -DGMIC_PATH=%{_builddir}/%{name}-%{version}/src -DGMIC_LIB_PATH=%{_builddir}/%{name}-%{version}/build
%define gmic_datadir %{_datadir}/gmic
Name: gmic
Version: 3.0.0
Version: 3.0.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
@@ -29,10 +51,32 @@ URL: https://gmic.eu
# Git URL: https://github.com/dtschump/gmic
Source0: https://gmic.eu/files/source/gmic_%{version}.tar.gz
Source1: gmic_qt.png
Source99: series
# PATCH-FIX-UPSTREAM gmic-make-build-without-gmic-cpp.patch - all those changes are already merged
Patch1: gmic-make-build-without-gmic-cpp.patch
# PATCH-FIX-UPSTREAM gmic-qt-make-it-work-without-gmic-cpp.patch - https://github.com/c-koi/gmic-qt/pull/134
Patch2: gmic-qt-make-it-work-without-gmic-cpp.patch
# PATCH-FIX-UPSTREAM krita.patch - Will be sent upstream soon. For now https://github.com/darix/gmic-qt/tree/krita5
Patch3: krita5.patch
# PATCH-FIX-UPSTREAM 56f7340ecb1fbbe6fce87d0a5c8d35dd13359577.patch - Already upstream
Patch4: https://github.com/dtschump/gmic/commit/56f7340ecb1fbbe6fce87d0a5c8d35dd13359577.patch
BuildRequires: cmake >= 3.14.0
BuildRequires: fftw3-threads-devel
#
# BR for pkg_vcmp
#
# Those 2 are used for the pkg_vcmp conditionals above and also the rich expressions in the BuildRequiresb below
#
BuildRequires: gimp
BuildRequires: krita
#
#/BR for pkg_vcmp
#
BuildRequires: pkgconfig
BuildRequires: update-desktop-files
BuildRequires: (krita-devel if krita >= 5)
BuildRequires: (pkgconfig(gimp-2.0) if gimp < 2.99)
BuildRequires: (pkgconfig(gimp-3.0) if gimp >= 2.99)
BuildRequires: cmake(Qt5Core)
BuildRequires: cmake(Qt5Gui)
BuildRequires: cmake(Qt5LinguistTools)
@@ -42,7 +86,6 @@ 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)
@@ -61,6 +104,8 @@ BuildRequires: pkgconfig(opencv4)
BuildRequires: pkgconfig(zlib)
%endif
%endif
BuildRequires: xorg-x11-devel
Requires: gmic-data = %{version}
%description
G'MIC is a framework for image processing, providing
@@ -91,10 +136,11 @@ uses the gmic functionality provided by the gmic library.
Summary: GMIC plugin for gimp
License: GPL-3.0-or-later
Group: Productivity/Graphics/Bitmap Editors
Requires: gimp
%requires_eq gimp
# This package was only available in the 'graphics' repo
Provides: gmic-gimp = %{version}
Obsoletes: gmic-gimp < %{version}
Requires: gmic-data = %{version}
%description -n gimp-plugin-gmic
This is a plugin for gimp that exposes many of the nice gmic features
@@ -104,7 +150,8 @@ for interactive use in gimp.
Summary: GMIC plugin for krita
License: GPL-3.0-or-later
Group: Productivity/Graphics/Bitmap Editors
Requires: krita
%requires_eq krita
Requires: gmic-data = %{version}
%description -n krita-plugin-gmic
This is a plugin for krita to provide gmic features.
@@ -115,72 +162,94 @@ License: CECILL-2.1
Group: Productivity/Graphics/Bitmap Editors
Requires: bash-completion
Supplements: (%{name} and bash-completion)
BuildArch: noarch
%description bash-completion
This package contain de bash completion command for gmic.
This package contains the bash completion command for gmic.
%package data
Summary: Shared data files for the various gmic frontends
License: CECILL-2.1
Group: Productivity/Graphics/Bitmap Editors
BuildArch: noarch
%description data
This package contains shared data files for the various gmic frontends.
%prep
%autosetup -p1
%setup -q
%patch1 -p1
pushd gmic-qt
%patch2 -p1
%patch3 -p1
popd
%patch4 -p1
%build
# Build gmic
%cmake \
-DENABLE_DYNAMIC_LINKING=ON \
-DBUILD_LIB_STATIC=OFF
-DBUILD_LIB_STATIC=OFF \
-DENABLE_OPENCV:BOOL=ON \
-DENABLE_XSHM:BOOL=ON
%cmake_build
cd ..
# Build gmic{_gimp|_krita}_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 %{gmic_qt_options} -DGMIC_QT_HOST=none
%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
for hostapp in %{hostapps} ; do
%cmake %{gmic_qt_options} -DGMIC_QT_HOST=${hostapp}
%cmake_build
cd ..
done
%cmake \
-DENABLE_DYNAMIC_LINKING=ON \
-DGMIC_PATH=%{_builddir}/%{name}-%{version}/src \
-DGMIC_LIB_PATH=%{_builddir}/%{name}-%{version}/build \
-DGMIC_QT_HOST=none
%cmake_build
%if %{with krita5}
%cmake_kf5 -d plugin-build -- -DCMAKE_INSTALL_LOCALEDIR=%{_kf5_localedir} %{gmic_qt_options} -DGMIC_QT_HOST=krita-plugin -DCMAKE_BUILD_TYPE=RelWithDebInfo
%make_jobs
cd ..
%endif
popd
%install
%cmake_install
%if %{with krita5}
pushd gmic-qt/plugin-build
%make_install
popd
%else
# krita plugin
install -m 0755 build/gmic_krita_qt %{buildroot}%{_bindir}/gmic_krita_qt
%endif
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;"
# Film color lookup tables
install -d -m 0755 %{buildroot}%{_gimpplugindir}
install -m 0644 resources/gmic_cluts.gmz %{buildroot}%{_gimpplugindir}/gmic_cluts.gmz
install -d -m 0755 \
%{buildroot}%{_gimpplugindir} \
%{buildroot}%{gmic_datadir}/
for file in gmic_cluts.gmz gmic_denoise_cnn.gmz ; do
install -m 0644 resources/${file} %{buildroot}%{gmic_datadir}/${file}
done
# 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
@@ -196,20 +265,28 @@ popd
%{_datadir}/applications/gmic_qt.desktop
%{_datadir}/pixmaps/gmic_qt.png
%files data
%license COPYING
%{gmic_datadir}
%files -n gimp-plugin-gmic
%license COPYING
%{_gimpplugindir}/gmic_gimp_qt
%{_gimpplugindir}/gmic_cluts.gmz
%{_gimpplugindir}/
%files -n krita-plugin-gmic
%license COPYING
%if %{with krita5}
%{_libdir}/kritaplugins/krita_gmic_qt.so
%else
%{_bindir}/gmic_krita_qt
%endif
%files -n libgmic1
%license COPYING
%{_libdir}/libgmic.so.*
%files -n libgmic-devel
%{_includedir}/CImg.h
%{_includedir}/gmic.h
%{_libdir}/libgmic.so
%{_libdir}/cmake/gmic/