Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gmic for openSUSE:Factory checked in at 2022-05-02 16:24:54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gmic (Old) and /work/SRC/openSUSE:Factory/.gmic.new.1538 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gmic" Mon May 2 16:24:54 2022 rev:22 rq:974198 version:3.1.0 Changes: -------- --- /work/SRC/openSUSE:Factory/gmic/gmic.changes 2022-02-09 20:40:01.862495233 +0100 +++ /work/SRC/openSUSE:Factory/.gmic.new.1538/gmic.changes 2022-05-02 16:25:03.544804149 +0200 @@ -1,0 +2,11 @@ +Fri Apr 29 06:37:52 UTC 2022 - Christophe Giboudeaux <christo...@krop.fr> + +- 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 + +------------------------------------------------------------------- Old: ---- 0001-Remove-unneeded-CImg-include.patch gmic_3.0.2.tar.gz gmic_qt.png New: ---- 0001-Find-the-local-gmic-library.patch gmic_3.1.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gmic.spec ++++++ --- /var/tmp/diff_new_pack.MnLA27/_old 2022-05-02 16:25:05.808806666 +0200 +++ /var/tmp/diff_new_pack.MnLA27/_new 2022-05-02 16:25:05.812806671 +0200 @@ -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 @@ 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(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 @@ 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 @@ 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 @@ 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 @@ 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,8 +241,6 @@ 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;" # Film color lookup tables @@ -231,10 +248,14 @@ %{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 +264,40 @@ 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 ++++++ 0001-Find-the-local-gmic-library.patch ++++++ >From 66475044c5ebed112d75cb51af925f9643b20d18 Mon Sep 17 00:00:00 2001 From: Christophe Giboudeaux <christo...@krop.fr> 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 ++++++ gmic_3.0.2.tar.gz -> gmic_3.1.0.tar.gz ++++++ /work/SRC/openSUSE:Factory/gmic/gmic_3.0.2.tar.gz /work/SRC/openSUSE:Factory/.gmic.new.1538/gmic_3.1.0.tar.gz differ: char 5, line 1 ++++++ krita5.patch ++++++ --- /var/tmp/diff_new_pack.MnLA27/_old 2022-05-02 16:25:05.876806742 +0200 +++ /var/tmp/diff_new_pack.MnLA27/_new 2022-05-02 16:25:05.880806746 +0200 @@ -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 @@ _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"), "<br/>"); @@ -313,7 +313,7 @@ _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 @@ 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 @@ } } 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 @@ } _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 @@ _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 @@ 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 @@ } } } -@@ -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 @@ 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 @@ 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 @@ 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 @@ _filtersPresenter->saveSettings(settings); -@@ -1010,7 +1024,7 @@ void MainWindow::saveSettings() +@@ -1014,7 +1028,7 @@ void MainWindow::saveSettings() void MainWindow::loadSettings() { @@ -1113,7 +1113,7 @@ _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 @@ 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 @@ } 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<int> sizes; @@ -1143,7 +1143,7 @@ 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 @@ } 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,4 +1303,7 @@ <property name="title"> <string>Theme</string> </property> +-- +2.36.0 +