diff --git a/0001-Find-the-local-gmic-library.patch b/0001-Find-the-local-gmic-library.patch new file mode 100644 index 0000000..63c5855 --- /dev/null +++ b/0001-Find-the-local-gmic-library.patch @@ -0,0 +1,39 @@ +From 66475044c5ebed112d75cb51af925f9643b20d18 Mon Sep 17 00:00:00 2001 +From: Christophe Giboudeaux +Date: Sat, 30 Apr 2022 09:23:31 +0200 +Subject: [PATCH] Find the local gmic library + +GMic's working build system was replaced by a Makefile for unknown reasons +(the gmic author doesn't add messages to his commits). + +To keep using CMake in gmic-qt, we need to teach it where the libgmic library is located. +--- + gmic-qt/CMakeLists.txt | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/gmic-qt/CMakeLists.txt b/gmic-qt/CMakeLists.txt +index 3d4b109..fd360ba 100644 +--- a/gmic-qt/CMakeLists.txt ++++ b/gmic-qt/CMakeLists.txt +@@ -119,6 +119,9 @@ if (NOT ENABLE_SYSTEM_GMIC) + if (NOT(${GMIC_VERSION} EQUAL ${CIMG_VERSION})) + message(FATAL_ERROR "\nVersion numbers of files 'gmic.h' (" ${GMIC_VERSION} ") and 'CImg.h' (" ${CIMG_VERSION} ") mismatch") + endif() ++ ++ # find the 'gmic' library built using 'make lib' in the top folder ++ find_library(gmic NAMES gmic PATHS "${CMAKE_CURRENT_SOURCE_DIR}/../src") + endif() + + +@@ -567,7 +570,7 @@ if(ENABLE_DYNAMIC_LINKING) + set(CMAKE_SKIP_RPATH TRUE) + set(gmic_qt_LIBRARIES + ${gmic_qt_LIBRARIES} +- "gmic" ++ ${gmic} + ) + if (NOT ENABLE_SYSTEM_GMIC) + link_directories(${GMIC_LIB_PATH}) +-- +2.36.0 + diff --git a/0001-Remove-unneeded-CImg-include.patch b/0001-Remove-unneeded-CImg-include.patch deleted file mode 100644 index 48fd0ff..0000000 --- a/0001-Remove-unneeded-CImg-include.patch +++ /dev/null @@ -1,38 +0,0 @@ -From de25bc1fab42ce294fbc0aa94f0cd0621491bf2e Mon Sep 17 00:00:00 2001 -From: Christophe Giboudeaux -Date: Mon, 7 Feb 2022 22:12:15 +0100 -Subject: [PATCH] Remove unneeded CImg include - -Build fails if CImg.h is included before gmic.h ---- - src/gmic_cli.cpp | 1 - - src/gmic_libc.cpp | 1 - - 2 files changed, 2 deletions(-) - -diff --git a/src/gmic_cli.cpp b/src/gmic_cli.cpp -index b9ffa22..6d21160 100644 ---- a/src/gmic_cli.cpp -+++ b/src/gmic_cli.cpp -@@ -49,7 +49,6 @@ - */ - - #include --#include "CImg.h" - #include "gmic.h" - using namespace cimg_library; - -diff --git a/src/gmic_libc.cpp b/src/gmic_libc.cpp -index 0736126..9aef11a 100644 ---- a/src/gmic_libc.cpp -+++ b/src/gmic_libc.cpp -@@ -41,7 +41,6 @@ - */ - - #include --#include "CImg.h" - #include "gmic.h" - #include "gmic_libc.h" - --- -2.35.1 - diff --git a/gmic.changes b/gmic.changes index 0c8e9ea..9258453 100644 --- a/gmic.changes +++ b/gmic.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Fri Apr 29 06:37:52 UTC 2022 - Christophe Giboudeaux + +- Update to 3.1.0. No changelog. +- Rebase patches: + * krita5.patch +- Add patch to keep using CMake when building gmic-qt: + * 0001-Find-the-local-gmic-library.patch +- Drop patch, no longer needed: + * 0001-Remove-unneeded-CImg-include.patch + ------------------------------------------------------------------- Mon Feb 7 10:11:38 UTC 2022 - Christophe Giboudeaux @@ -57,7 +68,7 @@ Fri Jan 14 18:41:47 UTC 2022 - Marcus Rueckert ------------------------------------------------------------------- Fri Jan 14 17:39:09 UTC 2022 - Marcus Rueckert -- Remove unneeded BuildRequires fftw3-devel and cmake(KF5CoreAddons) +- Remove unneeded BuildRequires fftw3-devel and cmake(KF5CoreAddons) ------------------------------------------------------------------- Fri Jan 14 17:31:52 UTC 2022 - Marcus Rueckert @@ -84,7 +95,7 @@ Fri Jan 14 11:01:21 UTC 2022 - Marcus Rueckert Thu Jan 13 22:27:47 UTC 2022 - Marcus Rueckert - enable opencv support xshm support - - Add BuildRequires xorg-x11-devel + - Add BuildRequires xorg-x11-devel ------------------------------------------------------------------- Thu Jan 13 22:26:56 UTC 2022 - Marcus Rueckert @@ -180,7 +191,7 @@ Mon Feb 10 23:56:42 UTC 2020 - Christophe Giboudeaux ------------------------------------------------------------------- Fri Jan 24 08:19:13 UTC 2020 - Paolo Stivanin -- update to 2.8.3. No changelog +- update to 2.8.3. No changelog ------------------------------------------------------------------- Tue Jan 14 20:44:14 UTC 2020 - Christophe Giboudeaux @@ -350,10 +361,10 @@ Mon Jul 6 18:04:16 CEST 2015 - kurt@garloff.de ------------------------------------------------------------------- Wed Jul 1 23:23:18 CEST 2015 - kurt@garloff.de -- Update to gmic-1.6.5.0: +- Update to gmic-1.6.5.0: * https://www.flickr.com/groups/gmic/discuss/72157653514140862/ * New commands: -label3d, -head, -files - * Improvements -repeat, -axes, -warn, -displacement, -files2video, + * Improvements -repeat, -axes, -warn, -displacement, -files2video, -apply_files * Math parser now supports sqr() * Bugfixes: Iain Fergusson denoising with selections and new layers, @@ -376,8 +387,8 @@ Thu Apr 30 17:58:26 CEST 2015 - kurt@garloff.de * https://www.flickr.com/groups/gmic/discuss/72157651409869115/ * New commands -apply_timeout, -boxfilter, -serialize, -unserialize, -fps, -transition. - * New filters Sequences / Spatial transition, Colors / Transfer colors - [advanced] + * New filters Sequences / Spatial transition, Colors / Transfer colors + [advanced] * Improved error message line numbers in -if .. -endif block. * Improved -blur, -displacement, - input, -warp * Compressed storage of custom commands @@ -397,12 +408,12 @@ Thu Apr 30 17:58:26 CEST 2015 - kurt@garloff.de - Udpate to gmic-1.6.0.4: * https://www.flickr.com/groups/gmic/discuss/72157649713920459/ * New commands -array3d, -size3d, -imagegrid_hexagonal - * New filters Arrays & tiles / Grid [hexagonal], Arrays & Tiles / + * New filters Arrays & tiles / Grid [hexagonal], Arrays & Tiles / Ministeck, Patterns / Crystal * New command -delaunay3d, filter Artistic / Polygonize [delaunay] * Improved -rgb2lab , -frame, -remove_pixels, -hostigram, -equalize. - * Bugfixes for bbox with very very large images in -select and + * Bugfixes for bbox with very very large images in -select and -display. ------------------------------------------------------------------- Thu Jan 8 14:57:41 CET 2015 - kurt@garloff.de @@ -424,7 +435,7 @@ Thu Jan 8 14:57:41 CET 2015 - kurt@garloff.de * New --guided, -cumulate * New -apply_video, -video2files, -files2video, -average_video * New -dct and -idct - * Improvements to -parallel + * Improvements to -parallel * Improving -fitscreen and tiff -output * Improvements for -snapshot3d, -text, -fft, -ifft, -blur * Major ZArt update @@ -462,11 +473,11 @@ Sat Sep 6 23:59:57 CEST 2014 - kurt@garloff.de * New filters for zart. * Only support image datatypes with floats (thus remove -type), but optionally do conversion in -input and -output. - * Supply boundary values in -map derived with + * Supply boundary values in -map derived with neumann/dirichlet/periodic. * More -blend paramaters. * -apply_pose3d renamed to -pose3d. - * Remove -background3d (use enahnced -display3d and -snapshot3d + * Remove -background3d (use enahnced -display3d and -snapshot3d to replace). * Better exception handling (-onfail). * gmic -h command suggests corrections for misspelled cmds. @@ -513,10 +524,10 @@ Sat Sep 6 23:59:57 CEST 2014 - kurt@garloff.de * @{-1,t} now always returns a string * Disable sharing global vars between threads * -uncommand and -command improvements -- Update to gmic-1.5.8.5 +- Update to gmic-1.5.8.5 * Support for PANDORE-5 (.pan) output files. * Improve and optmize -replace-seq. - * Support for is_binary_data and maximum_sequence_length in + * Support for is_binary_data and maximum_sequence_length in -compress-rle. * Recoded and improved -text. * Bugfixes for -output and math expressions starting with < or >. @@ -537,7 +548,7 @@ Sat Mar 8 19:47:38 CET 2014 - kurt@garloff.de * New output modes for Arrays & tiles / Extract objects. * More imporvements to -inpaint. * Fix line number displayed when error in .gmic file found. - * Fix thread destruction with non-wait mode and sub-commands. + * Fix thread destruction with non-wait mode and sub-commands. ------------------------------------------------------------------- Fri Feb 14 12:10:02 CET 2014 - kurt@garloff.de @@ -553,7 +564,7 @@ Thu Feb 13 15:42:00 CET 2014 - kurt@garloff.de - Update to 1.5.8.3: * New plug-in filter Frames / Frame[blur] * Improvements: Less warnings on TIFFs, valgrind found bugfixes, - OS name in plug-in titlebar, slightly better -inpaint_patch, + OS name in plug-in titlebar, slightly better -inpaint_patch, more options for -taquin, significantly better -inpaint * Fixed invalid mem access when reading command files * Update reference manual. @@ -578,17 +589,17 @@ Fri Jan 10 10:04:17 CET 2014 - kurt@garloff.de * Bugfixes, Optimizations, and Improvements * Small API changes - Update to 1.5.7.2: - * New commands -output_ggr, -at_line, -x_metaballs, -cubes3d, + * New commands -output_ggr, -at_line, -x_metaballs, -cubes3d, -color_med, -x_bouncing, -mutex * Fast marching algo available in -distance * New substituion $"*" which does quoting to protect whitespace - * GIMP plugin filters Rendering/Gradient [custom shape] and + * GIMP plugin filters Rendering/Gradient [custom shape] and [from line] * Improvements for -display, -ball and documentation * Fix CPU eating of gmic display * Compilation improvements (for clang++) - Update to 1.5.7.1: - * Improve parallelization (-fft, -apply_parallel, + * Improve parallelization (-fft, -apply_parallel, -apply_parallel_overlap) @@ -600,26 +611,26 @@ Fri Sep 13 17:09:48 CEST 2013 - kurt@garloff.de -parallel, -apply_parallel, -apply_parallel{2,4,8} to use it. Smoothing and sharpening filters use it already ... * New: -image_integral, -autocrop_components, -bilateral - * Bugfixes: Added more randomness to the PRNG (gimp plugin), bug + * Bugfixes: Added more randomness to the PRNG (gimp plugin), bug in -polygon, in -output (% symbol), valgrind warings (false positives actually) - Update to 1.5.6.1: * New filters 'Lights & Shadows / Drop shadow 3d', 'Colors / Colorize comics' * New commands '-pack_sprites', '-rprogress' - * Converted native commands '-haar' and '-ihaar' as custom + * Converted native commands '-haar' and '-ihaar' as custom commands, re-organized filter tree sections (gimp), volumetric images zoom in viewer keeps displaying z-coords. * Bugfixes: raw files now correctly use unsigned int when requested so (instead of unsigned short), -polygon, gimp non-interactive mode. - Update to 1.5.6.0: - * New command (and filter) -bokeh + * New command (and filter) -bokeh * Math parser accepts 'j(dx,_dy,_dz,_dc,_interpolation,_boundary)' - * Commands '-deblur_richardsonlucy' and '-deblur_goldmeinel' + * Commands '-deblur_richardsonlucy' and '-deblur_goldmeinel' integrated into trunk. * gimp plug-in external filter source management, optimiztion of - math parser, replace native -resize2x and 3x with custom + math parser, replace native -resize2x and 3x with custom -scale2x and 3x, -blend_median recoded * Integrate external filters in gimp plugin * Bugfix: 3d rendering with parallel projection @@ -627,7 +638,7 @@ Fri Sep 13 17:09:48 CEST 2013 - kurt@garloff.de ------------------------------------------------------------------- Tue May 14 06:37:54 CEST 2013 - kurt@garloff.de -- Disable GraphicsMagick features again (dependency hell). +- Disable GraphicsMagick features again (dependency hell). ------------------------------------------------------------------- Tue May 14 06:02:43 CEST 2013 - kurt@garloff.de @@ -638,7 +649,7 @@ Tue May 14 06:02:43 CEST 2013 - kurt@garloff.de Tue May 14 05:39:29 CEST 2013 - kurt@garloff.de - Require same lib version from -devel package. -- Enable openmp, xshm, xrandr, opencv and magick features. +- Enable openmp, xshm, xrandr, opencv and magick features. ------------------------------------------------------------------- Sun May 12 00:55:20 CEST 2013 - kurt@garloff.de @@ -657,12 +668,12 @@ Fri May 10 01:16:53 CEST 2013 - kurt@garloff.de * opencv allows requesting specific resolution for camera capture * -alert box display * improve image resolution for pdf files - * -richardson_lucy was a misnomer and is now called -deblur + * -richardson_lucy was a misnomer and is now called -deblur * Various bugfixes - Update to 1.5.4.0: * Spanish translations * Colors/Recolorize added - * -weave + * -weave * -compose_* deprecated, use -blend instead * bugfixes - Update to 1.5.3.0: @@ -720,7 +731,7 @@ Wed Oct 19 15:37:32 CEST 2011 - garloff@suse.de - Update to 1.5.0.1: * New features: -output_pink3d, -ripple. * Improvements: Remove 'beta' marker from man pages, reading BMP. - * Bug fixes: -convolve, -autocrop, modulo corrected for negative + * Bug fixes: -convolve, -autocrop, modulo corrected for negative numbers, -label (high connectivity mode). - Update to 1.5.0.0: * New features: -x_shadebobs, multi-line text parameter widget (plug-in), @@ -739,8 +750,8 @@ Wed Oct 19 15:37:32 CEST 2011 - garloff@suse.de * Improvements: Kuwahara filter, more robust faves, GPT filter, prefix for saved files in visualization module is now gmic_. - Update to 1.4.9.4: - * New features: -distance (new mode), -gmicky, -minimal_path, - -x_minimal_path, -kuwahara, + * New features: -distance (new mode), -gmicky, -minimal_path, + -x_minimal_path, -kuwahara, * Improvements: -pointcloud3d, diplay start and end of shortened messages, -input and -command now accept URLs, -select. * Bug fixes: -ffast-math now safer, -pointcloud precision, remove update @@ -750,7 +761,7 @@ Wed Oct 19 15:37:32 CEST 2011 - garloff@suse.de 3d colored object filter, -otsu, -hough, -x_hough, -houghsketchbw. * Improvements: g++-4.6 compatibility, -quotify renamed to -quote, -pointcloud, decrease verbosity in substitutions, -hardsketchbw, - -pointcloud3d. + -pointcloud3d. - Update to 1.4.9.2: * Improvments: package libgmic and header in .deb package, -flood, -label. * Bug fixes: -round, 'Mirrored array' filter. @@ -789,7 +800,7 @@ Wed Oct 19 15:37:32 CEST 2011 - garloff@suse.de for very small images. - Update to 1.4.7.4: * New features: -distance with custom metric, -label threshold, interactive - navigation through image lists, HSV equalizer. + navigation through image lists, HSV equalizer. * Improvements: Auto-completion, class name for windows, -display_array, -append. * Bug fixes: Manage mouse wheel again in -animate. @@ -802,7 +813,7 @@ Wed Oct 19 15:37:32 CEST 2011 - garloff@suse.de * G'MIC interpreter: Substitution expressions '${>}' and '${' and '$<', '@*', command line with spaces in filenames handling, large 3d object handling. - * G'MIC commands: -split improvement, .off 3D file handling, new + * G'MIC commands: -split improvement, .off 3D file handling, new -pointcloud3d, -colorcube3d, updated -histogram3d, -primitive3d, -primitives3d. Bugfix for -primitive3d, -resize, -graph. New -gpt. - Update to 1.4.7.1: @@ -819,7 +830,7 @@ Fri Dec 10 10:32:44 CET 2010 - garloff@suse.de - Update to 1.4.5.0: * New command '-display_graph' that renders a graph plot * New in GIMP plug-in : 'Rendering/Equation plot' - * Bugfixes: '-convolve', '-correlate', '-erode', '-dilate'. + * Bugfixes: '-convolve', '-correlate', '-erode', '-dilate'. Added boolean parameter for the computation of normalized versions. * Bugifixes: small bugs in '-grid', '-graph' and '-plot'. * New in GIMP plug-in: 'Various/Do nothing', 'Polka dots' @@ -837,9 +848,9 @@ Fri Dec 10 10:32:44 CET 2010 - garloff@suse.de * Some new options in the 3d objects filters. - Update to 1.4.1.0: * Bugfixes: Display of 3d objects containing point primitives, - bad memory access in command '-input', typos in various + bad memory access in command '-input', typos in various error/warning messages. - * Features: '-gyroid3d', '-texturize3d', new default colormaps + * Features: '-gyroid3d', '-texturize3d', new default colormaps for '-map' and '-index' (8 in total) : hot, jet, cube, ..., '-label_points3d' * New in the GIMP plug-in : sphere and gyroid. @@ -847,7 +858,7 @@ Fri Dec 10 10:32:44 CET 2010 - garloff@suse.de - New native commands '-trisolve', '-camera', '-rotation3d' - New custom commands ('-tunnel','-apply_camera','-function1d', 'chessboard',...). New internal timer with a ms precision. - - New in the GIMP plug-in: RGB/YCbCr/Lab curves, Tunnel effect, + - New in the GIMP plug-in: RGB/YCbCr/Lab curves, Tunnel effect, Tone Mapping and Chessboard filters. - The command line version of G'MIC can now manage the webcam, through the use of the OpenCV library. @@ -867,7 +878,7 @@ Fri Dec 10 10:32:44 CET 2010 - garloff@suse.de - Bugfixes * Update to 1.3.6.0: - Small improvements and optimizations: Better substitution mechanism - (with labels, making filter writing more comfortable), new ('-grid') + (with labels, making filter writing more comfortable), new ('-grid') and improved commands - Demo for new label mechanism: gmic -x_jawbreaker @@ -894,7 +905,7 @@ Fri Jun 25 10:59:01 CEST 2010 - garloff@suse.de * Layers/Shape average * Internal changes and optimizations - Update to 1.3.4.1: - * Minor bug fixes + * Minor bug fixes ------------------------------------------------------------------- Sun Mar 21 15:40:07 CET 2010 - garloff@suse.de @@ -918,13 +929,13 @@ Fri Mar 19 01:20:57 CET 2010 - garloff@suse.de ------------------------------------------------------------------- Mon Nov 23 08:48:32 CET 2009 - garloff@suse.de -- Parallel make. +- Parallel make. ------------------------------------------------------------------- Sun Nov 22 22:02:20 CET 2009 - garloff@suse.de - Update to 1.3.2.9: - * Non-interactive mode possible + * Non-interactive mode possible * Bug fixes and new modes ------------------------------------------------------------------- diff --git a/gmic.spec b/gmic.spec index 80ee805..f75bff1 100644 --- a/gmic.spec +++ b/gmic.spec @@ -35,12 +35,12 @@ %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_qt_options -DENABLE_SYSTEM_GMIC=OFF -DENABLE_DYNAMIC_LINKING=ON %define gmic_datadir %{_datadir}/gmic Name: gmic -Version: 3.0.2 +Version: 3.1.0 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 @@ -50,25 +50,26 @@ Group: Productivity/Graphics/Bitmap Editors 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 # PATCH-FIX-UPSTREAM gmic-qt-make-it-work-without-gmic-cpp.patch - https://github.com/c-koi/gmic-qt/pull/134 Patch0: 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 Patch1: krita5.patch -# PATCH-FIX-UPSTREAM -Patch2: 0001-Remove-unneeded-CImg-include.patch -BuildRequires: cmake >= 3.14.0 -BuildRequires: fftw3-threads-devel +# PATCH-FEATURE-OPENSUSE +Patch2: 0001-Find-the-local-gmic-library.patch # -# BR for pkg_vcmp +# SECTION pkg_vcmp # # Those 2 are used for the pkg_vcmp conditionals above and also the rich expressions in the BuildRequires below # BuildRequires: gimp BuildRequires: krita # -#/BR for pkg_vcmp +# /SECTION # +BuildRequires: cmake >= 3.14.0 +BuildRequires: dos2unix +BuildRequires: fftw3-threads-devel +BuildRequires: hicolor-icon-theme BuildRequires: pkgconfig BuildRequires: update-desktop-files BuildRequires: xorg-x11-devel @@ -86,8 +87,10 @@ BuildRequires: pkgconfig(GraphicsMagick++) BuildRequires: pkgconfig(OpenEXR) BuildRequires: pkgconfig(fftw3) BuildRequires: pkgconfig(libcurl) +BuildRequires: pkgconfig(libheif) BuildRequires: pkgconfig(libjpeg) BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(xcb-shm) BuildRequires: pkgconfig(libtiff-4) BuildRequires: pkgconfig(zlib) # gmic first looks for opencv 4 and falls back to opencv 3 if not found. @@ -111,7 +114,7 @@ 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 +%package -n libgmic3 Summary: Shared library that belongs to gmic License: CECILL-2.1 Group: Productivity/Graphics/Bitmap Editors @@ -120,9 +123,9 @@ Group: Productivity/Graphics/Bitmap Editors 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} +Requires: libgmic3 = %{version} -%description -n libgmic1 +%description -n libgmic3 Shared library allows you to use gmic functionality from other programs. @@ -175,18 +178,25 @@ BuildArch: noarch This package contains shared data files for the various gmic frontends. %prep -%autosetup -p1 +%setup -q +dos2unix src/{gmic_libc.*,use_libcgmic.c} +%autopatch -p1 %build # Build gmic -%cmake \ - -DENABLE_DYNAMIC_LINKING=ON \ - -DBUILD_LIB_STATIC=OFF \ - -DENABLE_OPENCV:BOOL=ON \ - -DENABLE_XSHM:BOOL=ON -%cmake_build +# Starting with gmic 3.1.0, the gmic dev replaced their CMake build system with a non-configurable Makefile... +sed -i 's#LIB = lib#LIB = %{_lib}#' src/Makefile -cd .. +# Breaks compilation for a couple archs +sed -i 's#-mtune=generic##' src/Makefile + +# Broken rpath +sed -i 's# -Wl,-rpath,.##' src/Makefile + +# The file is moved post-install in a directory not owned by gimp +sed -i 's#/usr/lib/gimp/2.0/plug-ins#%{gmic_datadir}#' src/gmic_stdlib.gmic + +EXTRA_CFLAGS='%{optflags}' NOSTRIP=1 make lib cli_shared # Build gmic{_gimp|_krita}_qt pushd gmic-qt @@ -213,7 +223,16 @@ cd .. popd %install -%cmake_install +DESTDIR=%{buildroot} make install + +# As planned, only providing a Makefile partially works... +install -m 0644 src/CImg.h %{buildroot}%{_includedir} + +# Install icons +for size in 16 32 48 64; do + install -Dm 0644 gmic-qt/icons/application/${size}-gmic_qt.png %{buildroot}%{_datadir}/icons/hicolor/${size}x${size}/apps/gmic_qt.png +done +install -Dm 0644 gmic-qt/icons/application/gmic_qt.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/gmic_qt.svg %if %{with krita5} DESTDIR=%{buildroot} cmake --install gmic-qt/plugin-build @@ -222,19 +241,23 @@ DESTDIR=%{buildroot} cmake --install gmic-qt/plugin-build install -m 0755 gmic-qt/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;" +# Already installed in the hicolor namespace +rm %{buildroot}%{_datadir}/pixmaps/gmic_qt.png # Film color lookup tables install -d -m 0755 \ %{buildroot}%{_gimpplugindir} \ %{buildroot}%{gmic_datadir}/ +# Move gmic plugins out of the gimp plugin dir for file in gmic_cluts.gmz gmic_denoise_cnn.gmz ; do - install -m 0644 resources/${file} %{buildroot}%{gmic_datadir}/${file} + mv %{buildroot}%{_libdir}/gimp/2.0/plug-ins/${file} %{buildroot}%{gmic_datadir}/ done +# This manpage isn't translated +rm %{buildroot}%{_mandir}/fr/man1/gmic.1* + # qt_gmic pushd gmic-qt install -m 0755 build/gmic_qt %{buildroot}%{_bindir}/gmic_qt @@ -243,43 +266,40 @@ install -m 0755 build/gmic_qt %{buildroot}%{_bindir}/gmic_qt install -m 0755 build/gmic_gimp_qt %{buildroot}%{_gimpplugindir}/gmic_gimp_qt popd -%post -n libgmic1 -p /sbin/ldconfig -%postun -n libgmic1 -p /sbin/ldconfig +%post -n libgmic3 -p /sbin/ldconfig +%postun -n libgmic3 -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 -%{_datadir}/pixmaps/gmic_qt.png +%{_datadir}/icons/hicolor/*/apps/gmic_qt.png +%{_datadir}/icons/hicolor/scalable/apps/gmic_qt.svg %files data -%license COPYING %{gmic_datadir}/ %files -n gimp-plugin-gmic -%license COPYING %{_gimpplugindir}/ %files -n krita-plugin-gmic -%license COPYING %if %{with krita5} %{_kf5_libdir}/kritaplugins/krita_gmic_qt.so %else %{_bindir}/gmic_krita_qt %endif -%files -n libgmic1 +%files -n libgmic3 %license COPYING %{_libdir}/libgmic.so.* %files -n libgmic-devel %{_includedir}/CImg.h %{_includedir}/gmic.h +%{_includedir}/gmic_libc.h %{_libdir}/libgmic.so -%{_libdir}/cmake/gmic/ %files bash-completion %dir %{_datadir}/bash-completion/completions diff --git a/gmic_3.0.2.tar.gz b/gmic_3.0.2.tar.gz deleted file mode 100644 index cb004e2..0000000 --- a/gmic_3.0.2.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:68acec32c45d56fb0b0408acec4f63166171816d70722d63106787f1e7d17030 -size 10458732 diff --git a/gmic_3.1.0.tar.gz b/gmic_3.1.0.tar.gz new file mode 100644 index 0000000..260c421 --- /dev/null +++ b/gmic_3.1.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0d5ae484d43e385b028557b20242ceaf277ef76fab441c5a019f6c2aa3c30cf +size 10512767 diff --git a/gmic_qt.png b/gmic_qt.png deleted file mode 100644 index 6c0eb96..0000000 --- a/gmic_qt.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6c890c192d4419fce911df5fc04c0811fb79db7ed394023d3c1e65a0833e9539 -size 249753 diff --git a/krita5.patch b/krita5.patch index 5571cc3..5b0a62c 100644 --- a/krita5.patch +++ b/krita5.patch @@ -1,13 +1,13 @@ diff --git a/gmic-qt/CMakeLists.txt b/gmic-qt/CMakeLists.txt -index 8bba11e..6137f59 100644 +index 61d2b9c..3d4b109 100644 --- a/gmic-qt/CMakeLists.txt +++ b/gmic-qt/CMakeLists.txt @@ -22,7 +22,7 @@ endif() message("Build type is " ${CMAKE_BUILD_TYPE}) --set (GMIC_QT_HOST "gimp" CACHE STRING "Define for which host qmic-qt will be built: gimp, gimp3 (experimental), krita, none, paintdotnet or 8bf.") -+set (GMIC_QT_HOST "gimp" CACHE STRING "Define for which host qmic-qt will be built: gimp, gimp3 (experimental), krita, krita-plugin, none, paintdotnet or 8bf.") +-set (GMIC_QT_HOST "gimp" CACHE STRING "Define for which host gmic-qt will be built: gimp, gimp3 (experimental), krita, none, paintdotnet or 8bf.") ++set (GMIC_QT_HOST "gimp" CACHE STRING "Define for which host gmic-qt will be built: gimp, gimp3 (experimental), krita, krita-plugin, none, paintdotnet or 8bf.") if (${GMIC_QT_HOST} STREQUAL "none") message("Building standalone version.") else() @@ -292,10 +292,10 @@ index 0a32a65..b12058d 100644 _grid->addWidget(_slider, row, 1, 1, 1); _grid->addWidget(_spinBox, row, 2, 1, 1); diff --git a/gmic-qt/src/FilterParameters/NoteParameter.cpp b/gmic-qt/src/FilterParameters/NoteParameter.cpp -index 34d3424..bd1df33 100644 +index 3b71c19..24e7b58 100644 --- a/gmic-qt/src/FilterParameters/NoteParameter.cpp +++ b/gmic-qt/src/FilterParameters/NoteParameter.cpp -@@ -87,14 +87,14 @@ bool NoteParameter::initFromText(const QString & filterName, const char * text, +@@ -87,14 +87,14 @@ bool NoteParameter::initFromText(const QString & /* filterName */, const char * _text = list[1].trimmed(); // Notes are never translated _text.remove(QRegExp("^\"")).remove(QRegExp("\"$")).replace(QString("\\\""), "\""); _text.replace(QString("\\n"), "
"); @@ -313,7 +313,7 @@ index 34d3424..bd1df33 100644 _text.replace(QRegExp("foreground\\s*=\\s*\""), QString("style=\"color:")); _text = HtmlTranslator::fromUtf8Escapes(_text); diff --git a/gmic-qt/src/FilterParameters/SeparatorParameter.cpp b/gmic-qt/src/FilterParameters/SeparatorParameter.cpp -index 40347f7..941b280 100644 +index 0bacffb..623b5d9 100644 --- a/gmic-qt/src/FilterParameters/SeparatorParameter.cpp +++ b/gmic-qt/src/FilterParameters/SeparatorParameter.cpp @@ -58,9 +58,11 @@ bool SeparatorParameter::addTo(QWidget * widget, int row) @@ -329,7 +329,7 @@ index 40347f7..941b280 100644 return true; } diff --git a/gmic-qt/src/FilterSelector/FiltersPresenter.cpp b/gmic-qt/src/FilterSelector/FiltersPresenter.cpp -index e39270f..18e722e 100644 +index 5406eb1..2481bc2 100644 --- a/gmic-qt/src/FilterSelector/FiltersPresenter.cpp +++ b/gmic-qt/src/FilterSelector/FiltersPresenter.cpp @@ -416,7 +416,7 @@ void FiltersPresenter::expandFaveFolder() @@ -996,7 +996,7 @@ index e18f31f..8c6f8f2 100644 } } diff --git a/gmic-qt/src/MainWindow.cpp b/gmic-qt/src/MainWindow.cpp -index 33db6e4..9311901 100644 +index d89aa7e..56b4bec 100644 --- a/gmic-qt/src/MainWindow.cpp +++ b/gmic-qt/src/MainWindow.cpp @@ -184,8 +184,12 @@ MainWindow::MainWindow(QWidget * parent) : QMainWindow(parent), ui(new Ui::MainW @@ -1037,7 +1037,7 @@ index 33db6e4..9311901 100644 } _filtersPresenter->toggleSelectionMode(withVisibility); -@@ -477,7 +483,7 @@ void MainWindow::onStartupFiltersUpdateFinished(int status) +@@ -478,7 +484,7 @@ void MainWindow::onStartupFiltersUpdateFinished(int status) } else if (status == (int)Updater::UpdateStatus::NotNecessary) { } @@ -1046,7 +1046,7 @@ index 33db6e4..9311901 100644 _gtkFavesShouldBeImported = false; } else { _gtkFavesShouldBeImported = askUserForGTKFavesImport(); -@@ -494,7 +500,7 @@ void MainWindow::onStartupFiltersUpdateFinished(int status) +@@ -495,7 +501,7 @@ void MainWindow::onStartupFiltersUpdateFinished(int status) } // Retrieve and select previously selected filter @@ -1055,7 +1055,7 @@ index 33db6e4..9311901 100644 if (_newSession || !_lastExecutionOK) { hash.clear(); } -@@ -559,7 +565,9 @@ void MainWindow::onEscapeKeyPressed() +@@ -560,7 +566,9 @@ void MainWindow::onEscapeKeyPressed() } else { _processor.cancel(); ui->previewWidget->displayOriginalImage(); @@ -1065,7 +1065,7 @@ index 33db6e4..9311901 100644 } } } -@@ -671,7 +679,9 @@ void MainWindow::onPreviewUpdateRequested(bool synchronous) +@@ -672,7 +680,9 @@ void MainWindow::onPreviewUpdateRequested(bool synchronous) ui->previewWidget->displayOriginalImage(); return; } @@ -1075,7 +1075,7 @@ index 33db6e4..9311901 100644 const FiltersPresenter::Filter currentFilter = _filtersPresenter->currentFilter(); GmicProcessor::FilterContext context; -@@ -733,7 +743,9 @@ void MainWindow::onPreviewImageAvailable() +@@ -736,7 +746,9 @@ void MainWindow::onPreviewImageAvailable() } ui->previewWidget->setPreviewImage(_processor.previewImage()); ui->previewWidget->enableRightClick(); @@ -1085,7 +1085,7 @@ index 33db6e4..9311901 100644 if (_pendingActionAfterCurrentProcessing == ProcessingAction::Close) { close(); } -@@ -743,7 +755,9 @@ void MainWindow::onPreviewError(const QString & message) +@@ -746,7 +758,9 @@ void MainWindow::onPreviewError(const QString & message) { ui->previewWidget->setPreviewErrorMessage(message); ui->previewWidget->enableRightClick(); @@ -1095,7 +1095,7 @@ index 33db6e4..9311901 100644 if (_pendingActionAfterCurrentProcessing == ProcessingAction::Close) { close(); } -@@ -969,7 +983,7 @@ void MainWindow::saveCurrentParameters() +@@ -973,7 +987,7 @@ void MainWindow::saveCurrentParameters() void MainWindow::saveSettings() { @@ -1104,7 +1104,7 @@ index 33db6e4..9311901 100644 _filtersPresenter->saveSettings(settings); -@@ -1010,7 +1024,7 @@ void MainWindow::saveSettings() +@@ -1014,7 +1028,7 @@ void MainWindow::saveSettings() void MainWindow::loadSettings() { @@ -1113,7 +1113,7 @@ index 33db6e4..9311901 100644 _filtersPresenter->loadSettings(settings); _lastExecutionOK = settings.value("LastExecution/ExitedNormally", true).toBool(); -@@ -1026,9 +1040,11 @@ void MainWindow::loadSettings() +@@ -1030,9 +1044,11 @@ void MainWindow::loadSettings() if (settings.value("Config/PreviewPosition", "Left").toString() == "Left") { setPreviewPosition(PreviewPosition::Left); } @@ -1125,7 +1125,7 @@ index 33db6e4..9311901 100644 if (!DialogSettings::logosAreVisible()) { ui->logosLabel->hide(); } -@@ -1068,7 +1084,7 @@ void MainWindow::loadSettings() +@@ -1072,7 +1088,7 @@ void MainWindow::loadSettings() ui->splitter->setSizes(sizes); } @@ -1134,7 +1134,7 @@ index 33db6e4..9311901 100644 } void MainWindow::setPreviewPosition(MainWindow::PreviewPosition position) -@@ -1130,7 +1146,7 @@ void MainWindow::setPreviewPosition(MainWindow::PreviewPosition position) +@@ -1134,7 +1150,7 @@ void MainWindow::setPreviewPosition(MainWindow::PreviewPosition position) void MainWindow::adjustVerticalSplitter() { QList sizes; @@ -1143,7 +1143,7 @@ index 33db6e4..9311901 100644 sizes.push_back(settings.value(QString("Config/ParamsVerticalSplitterSizeTop"), -1).toInt()); sizes.push_back(settings.value(QString("Config/ParamsVerticalSplitterSizeBottom"), -1).toInt()); const int splitterHeight = ui->verticalSplitter->height(); -@@ -1251,12 +1267,16 @@ void MainWindow::showEvent(QShowEvent * event) +@@ -1255,12 +1271,16 @@ void MainWindow::showEvent(QShowEvent * event) Updater::setOutputMessageMode(DialogSettings::outputMessageMode()); int ageLimit; { @@ -1162,7 +1162,7 @@ index 33db6e4..9311901 100644 } void MainWindow::resizeEvent(QResizeEvent * e) -@@ -1273,17 +1293,19 @@ bool MainWindow::askUserForGTKFavesImport() +@@ -1277,17 +1297,19 @@ bool MainWindow::askUserForGTKFavesImport() QMessageBox::Yes | QMessageBox::No, this); messageBox.setDefaultButton(QMessageBox::Yes); QCheckBox * cb = new QCheckBox(tr("Don't ask again")); @@ -1303,3 +1303,6 @@ index 8345152..17d8bb8 100644 Theme +-- +2.36.0 +