The package rpms/gimp.git has added or updated architecture specific content in its spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s): https://src.fedoraproject.org/cgit/rpms/gimp.git/commit/?id=096182ae9ceeeea6....
Change: +%ifnarch %plain_lua_arches
Thanks.
Full change: ============
commit 141d4ee6adc02178dba99422741597c5a41e788e Author: Benjamin A. Beasley code@musicinmybrain.net Date: Mon Aug 19 10:28:36 2024 -0400
Fix typo in gimp-libs dependency (fix RHBZ#2304761)
diff --git a/gimp.spec b/gimp.spec index 648b330..3f289b1 100644 --- a/gimp.spec +++ b/gimp.spec @@ -200,7 +200,7 @@ Requires: lua >= 5.4 Requires: lua-lgi %endif Requires: xdg-utils -Requires: %{name}-libs%{?_isa} = %{epoch}%{version}-%{release} +Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} Requires: python3dist(pygobject) >= 3.0
Recommends: mypaint-brushes
commit 98d508a7cb6abc71e677dd4a064a717770ed0623 Author: Nils Philippsen nils@tiptoe.de Date: Mon Aug 19 16:28:46 2024 +0200
Fix default binary symlinks
[skip changelog]
Signed-off-by: Nils Philippsen nils@tiptoe.de
diff --git a/gimp.spec b/gimp.spec index 7cb7045..648b330 100644 --- a/gimp.spec +++ b/gimp.spec @@ -421,8 +421,8 @@ ln -snf gimp-%{bin_version} %{buildroot}%{_bindir}/gimp ln -snf gimp-%{bin_version}.1 %{buildroot}%{_mandir}/man1/gimp.1 ln -snf gimp-console-%{bin_version} %{buildroot}/%{_bindir}/gimp-console ln -snf gimp-console-%{bin_version}.1 %{buildroot}/%{_mandir}/man1/gimp-console.1 -ln -snf gimptool-%{api_version} %{buildroot}%{_bindir}/gimptool -ln -snf gimptool-%{api_version}.1 %{buildroot}%{_mandir}/man1/gimptool.1 +ln -snf gimptool-%{bin_version} %{buildroot}%{_bindir}/gimptool +ln -snf gimptool-%{bin_version}.1 %{buildroot}%{_mandir}/man1/gimptool.1 ln -snf gimprc-%{bin_version}.5 %{buildroot}/%{_mandir}/man5/gimprc.5 %endif
commit b6e1175a2865459a08748bb898f05122be94b322 Author: Nils Philippsen nils@tiptoe.de Date: Mon Aug 19 16:26:38 2024 +0200
Fix building devel docs
[skip changelog]
Signed-off-by: Nils Philippsen nils@tiptoe.de
diff --git a/0001-libgimp-Use-namespaced-doc-reference.patch b/0001-libgimp-Use-namespaced-doc-reference.patch new file mode 100644 index 0000000..810ba8a --- /dev/null +++ b/0001-libgimp-Use-namespaced-doc-reference.patch @@ -0,0 +1,48 @@ +From c7e1b11bed0d001323471e774564f065bcfd62f6 Mon Sep 17 00:00:00 2001 +From: Nils Philippsen nils@tiptoe.de +Date: Mon, 19 Aug 2024 16:16:31 +0200 +Subject: [PATCH] libgimp: Use namespaced doc reference + +Otherwise, building the devel docs errors out like this: + +``` +FAILED: devel-docs/reference/gimp/libgimp-3.0 +... +WARNING: Unknown namespace ExportReturn +[enum@ExportReturn.EXPORT]. +^~~~~~~~~~~~~~~~~~~~~~~~~~ +``` + +Signed-off-by: Nils Philippsen nils@tiptoe.de +--- + libgimp/gimpexportoptions.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/libgimp/gimpexportoptions.c b/libgimp/gimpexportoptions.c +index 22fca36c2d..5ffae2a1b1 100644 +--- a/libgimp/gimpexportoptions.c ++++ b/libgimp/gimpexportoptions.c +@@ -537,17 +537,17 @@ export_action_perform (const ExportAction *action, + * + * If necessary, a copy is created, converted and modified, @image + * changed to point to the new image and the procedure returns +- * [enum@ExportReturn.EXPORT]. ++ * [enum@Gimp.ExportReturn.EXPORT]. + * In this case, you must take care of deleting the created image using + * [method@Image.delete] once the image has been exported, unless you + * were planning to display it with [ctor@Display.new], or you will leak + * memory. + * +- * If [enum@ExportReturn.IGNORE] is returned, then @image is still the ++ * If [enum@Gimp.ExportReturn.IGNORE] is returned, then @image is still the + * original image. You should neither modify it, nor should you delete + * it in the end. If you wish to temporarily modify the image before + * export anyway, call [method@Image.duplicate] when +- * [enum@ExportReturn.IGNORE] was returned. ++ * [enum@Gimp.ExportReturn.IGNORE] was returned. + * + * Returns: An enum of #GimpExportReturn. + * +-- +2.46.0 + diff --git a/gimp.spec b/gimp.spec index b60922a..7cb7045 100644 --- a/gimp.spec +++ b/gimp.spec @@ -234,6 +234,12 @@ Patch3: gimp-2.99.19-external-help-browser.patch # Don’t require an unreleased gegl version Patch4: 0001-Don-t-require-unreleased-gegl-version.patch
+# Submitted upstream: + +# libgimp: Use namespaced doc reference +# https://gitlab.gnome.org/GNOME/gimp/-/merge_requests/1789 +Patch5: 0001-libgimp-Use-namespaced-doc-reference.patch + %description GIMP (GNU Image Manipulation Program) is a powerful image composition and editing program, which can be extremely useful for creating logos and other @@ -297,6 +303,7 @@ EOF %patch 2 -p1 -b .no-phone-home-default %patch 3 -p1 -b .external-help-browser %patch 4 -p1 -b .don-t-require-unreleased-gegl-version +%patch 5 -p1 -b .namespace-docs-refs
# Verify the splash file source hasn’t changed sha256sum -c %{SOURCE2}
commit 563eb21a29053c7e388c8b422c7339f8916c114b Author: Nils Philippsen nils@tiptoe.de Date: Mon Aug 19 13:20:00 2024 +0200
Update to a 2024-08-19 git snapshot
Fix gimp-libs dependency in the main package.
Signed-off-by: Nils Philippsen nils@tiptoe.de
diff --git a/.gitignore b/.gitignore index 7b9e416..04042b2 100644 --- a/.gitignore +++ b/.gitignore @@ -45,3 +45,4 @@ gimp-2.6.10-1-autoreconf.patch.bz2 /gimp-2.99.19-git256e0ca5a0.tar.xz /gimp-2.99.19-gitd38362c9a0.tar.xz /gimp-splash.png +/gimp-2.99.19-git5814d9ed30.tar.xz diff --git a/gimp.spec b/gimp.spec index eb7ac28..b60922a 100644 --- a/gimp.spec +++ b/gimp.spec @@ -58,7 +58,7 @@ gimp:app / ui Summary: GNU Image Manipulation Program Name: gimp Epoch: 2 -Version: 2.99.19^20240817gitd38362c9a0 +Version: 2.99.19^20240819git5814d9ed30 Release: %autorelease
# Compute some version related macros. @@ -200,7 +200,7 @@ Requires: lua >= 5.4 Requires: lua-lgi %endif Requires: xdg-utils -Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: %{name}-libs%{?_isa} = %{epoch}%{version}-%{release} Requires: python3dist(pygobject) >= 3.0
Recommends: mypaint-brushes diff --git a/sources b/sources index 095c0f5..dda768a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (gimp-2.99.19-gitd38362c9a0.tar.xz) = 5498e7cda471ddc96109af5c52720a52e42b7e100d158a360bfb3935502633f77c394a613d0552c254b06c076cc38a5ce92c69e697d19bbcd673ea43a5b3b64e +SHA512 (gimp-2.99.19-git5814d9ed30.tar.xz) = 7a531bca4d1638d88bb9c8e83aa838e7c9941b84ae7113b193a4c9de0f12b221bce4d31196035b3f5988c31c291b935eb07477dbd637971df0ef23f2fbbbc40a SHA512 (gimp-splash.png) = e4443fa1c4eaf50ce4a89681d436d9c23ccae7e3a6cac1e853bba05d851c815c59c53d52c9f3e159460d52e03b492cc48f366f6e194b7ca8c740692eb0c2d963
commit ff107597ed6d79624a196bc2e8feb6c5f36a1abe Author: Nils Philippsen nils@tiptoe.de Date: Sat Aug 17 22:56:35 2024 +0200
Update to a 2024-08-17 git snapshot
Use a prebuilt splash image on s390x because the build hangs otherwise.
Signed-off-by: Nils Philippsen nils@tiptoe.de
diff --git a/.gitignore b/.gitignore index 6f42eea..7b9e416 100644 --- a/.gitignore +++ b/.gitignore @@ -43,3 +43,5 @@ gimp-2.6.10-1-autoreconf.patch.bz2 /gimp-2.10.36.tar.bz2 /gimp-2.10.38.tar.bz2 /gimp-2.99.19-git256e0ca5a0.tar.xz +/gimp-2.99.19-gitd38362c9a0.tar.xz +/gimp-splash.png diff --git a/0001-plug-ins-Fix-building-TIFF-loader-on-big-endian.patch b/0001-plug-ins-Fix-building-TIFF-loader-on-big-endian.patch deleted file mode 100644 index 9ec6fb9..0000000 --- a/0001-plug-ins-Fix-building-TIFF-loader-on-big-endian.patch +++ /dev/null @@ -1,45 +0,0 @@ -From d101dc6b0a1acceb0286b8232a58ff7b6448502b Mon Sep 17 00:00:00 2001 -From: Nils Philippsen nils@tiptoe.de -Date: Thu, 15 Aug 2024 09:50:48 +0200 -Subject: [PATCH] plug-ins: Fix building TIFF loader on big endian -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -A recent addition to load layers in Sketchbook TIFFs contained a typo in -code specific to big endian machines, making it fail to build there, -which wasn’t caught in CI. - -In addition to this fix, use the appropriately named macro to convert -from little endian to big endian. - -Signed-off-by: Nils Philippsen nils@tiptoe.de ---- - plug-ins/file-tiff/file-tiff-load.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/plug-ins/file-tiff/file-tiff-load.c b/plug-ins/file-tiff/file-tiff-load.c -index 62988e793c..5988d2a77b 100644 ---- a/plug-ins/file-tiff/file-tiff-load.c -+++ b/plug-ins/file-tiff/file-tiff-load.c -@@ -1911,7 +1911,7 @@ load_rgba (TIFF *tif, - guint32 i; - - for (i = row_start; i < row_end; i++) -- buffer[i] = GUINT32_TO_LE (buffer[i]); -+ buffer[i] = GUINT32_FROM_LE (buffer[i]); - #endif - - gegl_buffer_set (channel[0].buffer, -@@ -2451,7 +2451,7 @@ load_sketchbook_layers (TIFF *tif, - - /* Make sure our channels are in the right order */ - for (i = row_start; i < row_end; i++) -- pixels[i] = GUINT32_TO_LE (pixel[i]); -+ pixels[i] = GUINT32_FROM_LE (pixels[i]); - #endif - gegl_buffer_set (buffer, - GEGL_RECTANGLE (0, layer_height - row - 1, --- -2.46.0 - diff --git a/gimp-splash.sha256sum b/gimp-splash.sha256sum new file mode 100644 index 0000000..2d3910d --- /dev/null +++ b/gimp-splash.sha256sum @@ -0,0 +1 @@ +90ac7f576388aeee0cff4c8f3c05a6b2ee89ffc1f82bd42208db9a5fadc138d3 gimp-data/images/gimp-splash.xcf.xz diff --git a/gimp.spec b/gimp.spec index f701877..eb7ac28 100644 --- a/gimp.spec +++ b/gimp.spec @@ -27,9 +27,11 @@
%ifnarch s390x %bcond tests 1 +%bcond prebuilt_splash 0 %else # Tests hang on s390x, skip them. %bcond tests 0 +%bcond prebuilt_splash 1 %endif
# When building in Koji or mock, networking isn’t available. @@ -56,7 +58,7 @@ gimp:app / ui Summary: GNU Image Manipulation Program Name: gimp Epoch: 2 -Version: 2.99.19^20240814git256e0ca5a0 +Version: 2.99.19^20240817gitd38362c9a0 Release: %autorelease
# Compute some version related macros. @@ -213,6 +215,11 @@ Source0: https://download.gimp.org/pub/gimp/v%%7Bbin_version%7D/gimp-%%7Bversio Source0: gimp-%{plain_version}-git%{git_rev}.tar.xz %endif
+# Building this from source hangs on s390x 😢. Building on any other arch will convert +# gimp-data/images/gimp-splash.xcf.xz just fine. +Source1: gimp-splash.png +Source2: gimp-splash.sha256sum + # Fedora specific patches:
# Try using the system monitor profile for color management by default. @@ -227,12 +234,6 @@ Patch3: gimp-2.99.19-external-help-browser.patch # Don’t require an unreleased gegl version Patch4: 0001-Don-t-require-unreleased-gegl-version.patch
-# Submitted upstream: - -# Fix building TIFF loader plug-in on big endian -# https://gitlab.gnome.org/GNOME/gimp/-/merge_requests/1778 -Patch5: 0001-plug-ins-Fix-building-TIFF-loader-on-big-endian.patch - %description GIMP (GNU Image Manipulation Program) is a powerful image composition and editing program, which can be extremely useful for creating logos and other @@ -280,6 +281,8 @@ cat << EOF --- 8< --- Build options --------------------------------------------------- is default version: %{with is_default_version} label overlay: %{with label_overlay} +tests: %{with tests} +prebuilt splash: %{with prebuilt_splash} %if %defined snapshot snapshot: %{snapshot} plain_version: %{plain_version} @@ -294,7 +297,9 @@ EOF %patch 2 -p1 -b .no-phone-home-default %patch 3 -p1 -b .external-help-browser %patch 4 -p1 -b .don-t-require-unreleased-gegl-version -%patch 5 -p1 -b .fix-building-tiff-loader-on-big-endian + +# Verify the splash file source hasn’t changed +sha256sum -c %{SOURCE2}
%build # Use hardening compiler/linker flags because gimp is likely to deal with files @@ -310,11 +315,21 @@ EOF -Dilbm=disabled \ -Dbug-report-url="https://bugzilla.redhat.com/"
+%if %{with prebuilt_splash} +# Building this from source hangs on s390x 😢, so prevent attempting to build it … +sed -i -e '/^subdir/!s/^/# /g' gimp-data/images/meson.build +%endif + %meson_build
%install %meson_install
+%if %{with prebuilt_splash} +# … instead, copy the prebuilt file into place. +install -m 644 %{SOURCE1} %{buildroot}%{_datadir}/gimp/%{api_version}/images/gimp-splash.png +%endif + # Generate RPM macros from pkg-config data: # %%_gimp_datadir -- toplevel directory for brushes, gradients, scripts, ... # %%_gimp_libdir -- toplevel directory for modules, plug-ins, ... diff --git a/sources b/sources index ebd91bc..095c0f5 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ -SHA512 (gimp-2.99.19-git256e0ca5a0.tar.xz) = aadde8172a0d867641a304d2dd84ecb96ac2d2111ead6b64d251cdb21695054671a480a461d611335466161026b7d2ead0472941b27df3f2aa91251aa2d19c7b +SHA512 (gimp-2.99.19-gitd38362c9a0.tar.xz) = 5498e7cda471ddc96109af5c52720a52e42b7e100d158a360bfb3935502633f77c394a613d0552c254b06c076cc38a5ce92c69e697d19bbcd673ea43a5b3b64e +SHA512 (gimp-splash.png) = e4443fa1c4eaf50ce4a89681d436d9c23ccae7e3a6cac1e853bba05d851c815c59c53d52c9f3e159460d52e03b492cc48f366f6e194b7ca8c740692eb0c2d963
commit 31d023ce7194947e975dcde34ef243fcc35cbbbe Author: Nils Philippsen nils@tiptoe.de Date: Thu Aug 15 10:09:14 2024 +0200
Fix building TIFF loader on big endian
[skip changelog]
Signed-off-by: Nils Philippsen nils@tiptoe.de
diff --git a/0001-plug-ins-Fix-building-TIFF-loader-on-big-endian.patch b/0001-plug-ins-Fix-building-TIFF-loader-on-big-endian.patch new file mode 100644 index 0000000..9ec6fb9 --- /dev/null +++ b/0001-plug-ins-Fix-building-TIFF-loader-on-big-endian.patch @@ -0,0 +1,45 @@ +From d101dc6b0a1acceb0286b8232a58ff7b6448502b Mon Sep 17 00:00:00 2001 +From: Nils Philippsen nils@tiptoe.de +Date: Thu, 15 Aug 2024 09:50:48 +0200 +Subject: [PATCH] plug-ins: Fix building TIFF loader on big endian +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +A recent addition to load layers in Sketchbook TIFFs contained a typo in +code specific to big endian machines, making it fail to build there, +which wasn’t caught in CI. + +In addition to this fix, use the appropriately named macro to convert +from little endian to big endian. + +Signed-off-by: Nils Philippsen nils@tiptoe.de +--- + plug-ins/file-tiff/file-tiff-load.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/plug-ins/file-tiff/file-tiff-load.c b/plug-ins/file-tiff/file-tiff-load.c +index 62988e793c..5988d2a77b 100644 +--- a/plug-ins/file-tiff/file-tiff-load.c ++++ b/plug-ins/file-tiff/file-tiff-load.c +@@ -1911,7 +1911,7 @@ load_rgba (TIFF *tif, + guint32 i; + + for (i = row_start; i < row_end; i++) +- buffer[i] = GUINT32_TO_LE (buffer[i]); ++ buffer[i] = GUINT32_FROM_LE (buffer[i]); + #endif + + gegl_buffer_set (channel[0].buffer, +@@ -2451,7 +2451,7 @@ load_sketchbook_layers (TIFF *tif, + + /* Make sure our channels are in the right order */ + for (i = row_start; i < row_end; i++) +- pixels[i] = GUINT32_TO_LE (pixel[i]); ++ pixels[i] = GUINT32_FROM_LE (pixels[i]); + #endif + gegl_buffer_set (buffer, + GEGL_RECTANGLE (0, layer_height - row - 1, +-- +2.46.0 + diff --git a/gimp.spec b/gimp.spec index 57d16ca..f701877 100644 --- a/gimp.spec +++ b/gimp.spec @@ -224,9 +224,15 @@ Patch2: gimp-2.99.19-no-phone-home-default.patch # use external help browser directly if help browser plug-in is not built Patch3: gimp-2.99.19-external-help-browser.patch
-# Don’t require an unreleased gegl version: +# Don’t require an unreleased gegl version Patch4: 0001-Don-t-require-unreleased-gegl-version.patch
+# Submitted upstream: + +# Fix building TIFF loader plug-in on big endian +# https://gitlab.gnome.org/GNOME/gimp/-/merge_requests/1778 +Patch5: 0001-plug-ins-Fix-building-TIFF-loader-on-big-endian.patch + %description GIMP (GNU Image Manipulation Program) is a powerful image composition and editing program, which can be extremely useful for creating logos and other @@ -288,6 +294,7 @@ EOF %patch 2 -p1 -b .no-phone-home-default %patch 3 -p1 -b .external-help-browser %patch 4 -p1 -b .don-t-require-unreleased-gegl-version +%patch 5 -p1 -b .fix-building-tiff-loader-on-big-endian
%build # Use hardening compiler/linker flags because gimp is likely to deal with files
commit 096182ae9ceeeea6e7dcccc4abb92c7f865e5413 Author: Nils Philippsen nils@tiptoe.de Date: Wed Aug 14 23:15:46 2024 +0200
Update to a 2024-08-14 git snapshot
Signed-off-by: Nils Philippsen nils@tiptoe.de
diff --git a/.gitignore b/.gitignore index 4a4520b..6f42eea 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,4 @@ gimp-2.6.10-1-autoreconf.patch.bz2 /gimp-2.10.34.tar.bz2 /gimp-2.10.36.tar.bz2 /gimp-2.10.38.tar.bz2 +/gimp-2.99.19-git256e0ca5a0.tar.xz diff --git a/0001-Don-t-require-unreleased-gegl-version.patch b/0001-Don-t-require-unreleased-gegl-version.patch new file mode 100644 index 0000000..fa3dd4b --- /dev/null +++ b/0001-Don-t-require-unreleased-gegl-version.patch @@ -0,0 +1,79 @@ +From 54231e7d405bfd674f75f2d87ff5ce3ad025b45c Mon Sep 17 00:00:00 2001 +From: Nils Philippsen nils@tiptoe.de +Date: Wed, 14 Aug 2024 13:44:21 +0200 +Subject: [PATCH] =?UTF-8?q?Don=E2=80=99t=20require=20unreleased=20gegl=20v?= + =?UTF-8?q?ersion?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This reverts commit c28fa121480d2ea34139c9cc794add4236e99eb7. + +Signed-off-by: Nils Philippsen nils@tiptoe.de +--- + app/tools/gimpoperationtool.c | 25 ++++++++----------------- + 1 file changed, 8 insertions(+), 17 deletions(-) + +diff --git a/app/tools/gimpoperationtool.c b/app/tools/gimpoperationtool.c +index 82f6096b55..f427ee9019 100644 +--- a/app/tools/gimpoperationtool.c ++++ b/app/tools/gimpoperationtool.c +@@ -103,8 +103,7 @@ static void gimp_operation_tool_add_gui (GimpOperationTool *tool) + static AuxInput * gimp_operation_tool_aux_input_new (GimpOperationTool *tool, + GeglNode *operation, + const gchar *input_pad, +- const gchar *label, +- const gchar *description); ++ const gchar *label); + static void gimp_operation_tool_aux_input_detach(AuxInput *input); + static void gimp_operation_tool_aux_input_clear (AuxInput *input); + static void gimp_operation_tool_aux_input_free (AuxInput *input); +@@ -550,20 +549,15 @@ gimp_operation_tool_create_gui (GimpOperationTool *op_tool) + + g_return_if_fail (regex != NULL); + +- label = g_strdup (gegl_node_get_pad_label (filter_tool->operation, input_pads[i])); +- +- if (label == NULL) +- label = g_regex_replace (regex, +- input_pads[i], -1, 0, +- /* Translators: don't translate "Aux" */ +- _("Aux\1 Input"), +- 0, NULL); ++ /* Translators: don't translate "Aux" */ ++ label = g_regex_replace (regex, ++ input_pads[i], -1, 0, ++ _("Aux\1 Input"), ++ 0, NULL); + + input = gimp_operation_tool_aux_input_new (op_tool, + filter_tool->operation, +- input_pads[i], label, +- gegl_node_get_pad_description (filter_tool->operation, +- input_pads[i])); ++ input_pads[i], label); + + op_tool->aux_inputs = g_list_prepend (op_tool->aux_inputs, input); + +@@ -663,8 +657,7 @@ static AuxInput * + gimp_operation_tool_aux_input_new (GimpOperationTool *op_tool, + GeglNode *operation, + const gchar *input_pad, +- const gchar *label, +- const gchar *description) ++ const gchar *label) + { + AuxInput *input = g_slice_new (AuxInput); + GimpContext *context; +@@ -681,8 +674,6 @@ gimp_operation_tool_aux_input_new (GimpOperationTool *op_tool, + context = GIMP_CONTEXT (GIMP_TOOL_GET_OPTIONS (op_tool)); + + input->box = gimp_buffer_source_box_new (context, input->node, label); +- if (description) +- gtk_widget_set_tooltip_text (input->box, description); + + /* make AuxInput owner of the box */ + g_object_ref_sink (input->box); +-- +2.46.0 + diff --git a/README.md b/README.md new file mode 100644 index 0000000..93230c2 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# gimp + +The gimp package diff --git a/gimp-2.10.12-default-font.patch b/gimp-2.10.12-default-font.patch deleted file mode 100644 index 301e4a6..0000000 --- a/gimp-2.10.12-default-font.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urNp a/etc/gimprc.in b/etc/gimprc.in ---- a/etc/gimprc.in 2019-08-20 13:03:43.195089141 +0200 -+++ b/etc/gimprc.in 2019-08-20 13:04:09.109353485 +0200 -@@ -153,7 +153,7 @@ - # Where to look for fonts in addition to the system-wide installed fonts. - # This is a colon-separated list of folders to search. - # --# (font-path "${gimp_dir}/fonts:${gimp_data_dir}/fonts") -+(font-path "${gimp_dir}/fonts") - - # Specify a default brush. The brush is searched for in the specified brush - # path. This is a string value. diff --git a/gimp-2.10.18-no-phone-home-default.patch b/gimp-2.10.18-no-phone-home-default.patch deleted file mode 100644 index 2054b4a..0000000 --- a/gimp-2.10.18-no-phone-home-default.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up gimp-2.10.18/etc/gimprc.in.no-phone-home-default gimp-2.10.18/etc/gimprc.in ---- gimp-2.10.18/etc/gimprc.in.no-phone-home-default 2020-02-23 21:15:47.217777581 +0100 -+++ gimp-2.10.18/etc/gimprc.in 2020-02-23 21:22:42.416162110 +0100 -@@ -393,7 +393,7 @@ - # Check for availability of GIMP updates through background internet queries. - # Possible values are yes and no. - # --# (check-updates yes) -+(check-updates no) - - # Timestamp of the last update check. (null) - # diff --git a/gimp-2.10.24-external-help-browser.patch b/gimp-2.10.24-external-help-browser.patch deleted file mode 100644 index 09f4118..0000000 --- a/gimp-2.10.24-external-help-browser.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up gimp-2.10.24/etc/gimprc.in.external-help-browser gimp-2.10.24/etc/gimprc.in ---- gimp-2.10.24/etc/gimprc.in.external-help-browser 2021-04-03 00:02:39.312656132 +0200 -+++ gimp-2.10.24/etc/gimprc.in 2021-04-03 00:03:27.360453285 +0200 -@@ -836,7 +836,7 @@ - # Sets the browser used by the help system. Possible values are gimp and - # web-browser. - # --# (help-browser web-browser) -+(help-browser web-browser) - - # When enabled, a search of actions will also return inactive actions. - # Possible values are yes and no. diff --git a/gimp-2.10.0-cm-system-monitor-profile-by-default.patch b/gimp-2.99.19-cm-system-monitor-profile-by-default.patch similarity index 54% rename from gimp-2.10.0-cm-system-monitor-profile-by-default.patch rename to gimp-2.99.19-cm-system-monitor-profile-by-default.patch index 96a875d..0e036f8 100644 --- a/gimp-2.10.0-cm-system-monitor-profile-by-default.patch +++ b/gimp-2.99.19-cm-system-monitor-profile-by-default.patch @@ -1,8 +1,7 @@ -diff --git a/etc/gimprc.in b/etc/gimprc.in -index bdf8f0c..e6757e8 100644 ---- a/etc/gimprc.in -+++ b/etc/gimprc.in -@@ -317,9 +317,9 @@ +diff -up gimp-2.99.18/etc/gimprc.in.cm-system-monitor-profile-by-default gimp-2.99.18/etc/gimprc.in +--- gimp-2.99.18/etc/gimprc.in.cm-system-monitor-profile-by-default 2024-02-17 18:01:20.000000000 +0100 ++++ gimp-2.99.18/etc/gimprc.in 2024-05-07 14:39:06.468575598 +0200 +@@ -316,9 +316,9 @@
# Defines the color management behavior. This is a parameter list. # @@ -14,14 +13,12 @@ index bdf8f0c..e6757e8 100644 # (display-rendering-intent relative-colorimetric) # (display-use-black-point-compensation yes) # (display-optimize yes) -@@ -328,9 +328,8 @@ +@@ -326,7 +326,8 @@ + # (simulation-use-black-point-compensation no) # (simulation-optimize yes) # (simulation-gamut-check no) - # (out-of-gamut-color (color-rgb 1 0 1)) --# (show-rgb-u8 no) --# (show-hsv no) --# (display-module "CdisplayLcms")) -+# (display-module "CdisplayLcms") +-# (out-of-gamut-color (color-rgb 1 0 1))) ++# (out-of-gamut-color (color-rgb 1 0 1)) +)
# Keep a permanent record of all opened and saved files in the Recent diff --git a/gimp-2.99.19-external-help-browser.patch b/gimp-2.99.19-external-help-browser.patch new file mode 100644 index 0000000..44e3aab --- /dev/null +++ b/gimp-2.99.19-external-help-browser.patch @@ -0,0 +1,12 @@ +diff -up gimp-2.99.18/etc/gimprc.in.external-help-browser gimp-2.99.18/etc/gimprc.in +--- gimp-2.99.18/etc/gimprc.in.external-help-browser 2024-05-07 14:41:40.660506520 +0200 ++++ gimp-2.99.18/etc/gimprc.in 2024-05-07 14:46:04.028680986 +0200 +@@ -828,7 +828,7 @@ + # Sets the browser used by the help system. Possible values are gimp and + # web-browser. + # +-# (help-browser gimp) ++(help-browser web-browser) + + # The maximum number of actions saved in history. This is an integer value. + # diff --git a/gimp-2.99.19-no-phone-home-default.patch b/gimp-2.99.19-no-phone-home-default.patch new file mode 100644 index 0000000..a537498 --- /dev/null +++ b/gimp-2.99.19-no-phone-home-default.patch @@ -0,0 +1,12 @@ +diff -up gimp-2.99.18/etc/gimprc.in.no-phone-home-default gimp-2.99.18/etc/gimprc.in +--- gimp-2.99.18/etc/gimprc.in.no-phone-home-default 2024-05-07 14:40:02.746185394 +0200 ++++ gimp-2.99.18/etc/gimprc.in 2024-05-07 14:40:49.353862228 +0200 +@@ -399,7 +399,7 @@ + # Check for availability of GIMP updates through background internet queries. + # Possible values are yes and no. + # +-# (check-updates yes) ++(check-updates no) + + # Timestamp of the last update check. This is an integer value. + # diff --git a/gimp-configure-c99.patch b/gimp-configure-c99.patch deleted file mode 100644 index d9ed54b..0000000 --- a/gimp-configure-c99.patch +++ /dev/null @@ -1,56 +0,0 @@ -Do not call the undeclared exit function. Implicit function -declarations are likely not going to be supported by future compilers -by default, changing the outcome of this configure probe. - -Submitted upstream: https://gitlab.gnome.org/GNOME/gimp/-/merge_requests/810 - -diff --git a/configure b/configure -index 6e62da8e3c164f82..f1c447baf7ff68f7 100755 ---- a/configure -+++ b/configure -@@ -28898,17 +28898,17 @@ else $as_nop - char *shmaddr; - id = shmget (IPC_PRIVATE, 4, IPC_CREAT | 0600); - if (id == -1) -- exit (2); -+ return 2; - shmaddr = shmat (id, 0, 0); - shmctl (id, IPC_RMID, 0); - if ((char*) shmat (id, 0, 0) == (char*) -1) - { - shmdt (shmaddr); -- exit (1); -+ return 1; - } - shmdt (shmaddr); - shmdt (shmaddr); -- exit (0); -+ return 0; - } - - _ACEOF -diff --git a/configure.ac b/configure.ac -index d73f56228712f59d..32d2a072863ae64f 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1284,17 +1284,17 @@ elif test "x$shmtype" = "xsysv"; then - char *shmaddr; - id = shmget (IPC_PRIVATE, 4, IPC_CREAT | 0600); - if (id == -1) -- exit (2); -+ return 2; - shmaddr = shmat (id, 0, 0); - shmctl (id, IPC_RMID, 0); - if ((char*) shmat (id, 0, 0) == (char*) -1) - { - shmdt (shmaddr); -- exit (1); -+ return 1; - } - shmdt (shmaddr); - shmdt (shmaddr); -- exit (0); -+ return 0; - } - ]])], - [AC_DEFINE([IPC_RMID_DEFERRED_RELEASE],[1], diff --git a/gimp.spec b/gimp.spec index f126c37..57d16ca 100644 --- a/gimp.spec +++ b/gimp.spec @@ -1,92 +1,169 @@ #### options: # Use the following --with/--without <option> switches to control how the # package will be built: -# -# default_binary: install unversioned binary -%bcond_without default_binary + +# is_default_version: This is the default GIMP version in a Fedora release +# label_overlay: Put version label in app icons +%if ! 0%{?fedora} || 0%{?fedora} >= 42 +%bcond is_default_version 1 +%bcond label_overlay 0 +%else +%bcond is_default_version 0 +%bcond label_overlay 1 +%endif + # libunwind support (only available on some architectures) -%ifarch %{arm} aarch64 hppa ia64 mips ppc %{power64} %{ix86} x86_64 -%bcond_without libunwind +%if ! 0%{?fedora}%{?rhel} || 0%{?fedora} >= 40 || 0%{?rhel} >= 11 +%global unwind_arches %{arm} aarch64 hppa ia64 mips ppc %{power64} s390x %{ix86} x86_64 riscv64 +%else +%global unwind_arches %{arm} aarch64 hppa ia64 mips ppc %{power64} s390x %{ix86} x86_64 +%endif + +%ifarch %unwind_arches +%bcond libunwind 1 %else -%bcond_with libunwind +%bcond libunwind 0 %endif
-%global build_type_safety_c 0 +%ifnarch s390x +%bcond tests 1 +%else +# Tests hang on s390x, skip them. +%bcond tests 0 +%endif + +# When building in Koji or mock, networking isn’t available. +%bcond skip_networking_tests 1 +# Some tests fail under normal user environments, don’t skip them by default. +%bcond skip_user_tests 0 + +# The lists of tests to skip should not have leading or trailing white space, +# this breaks the logic in %%check.
-# skip tests known to be problematic in a specific version -#global skip_checks_version X.Y.Z -#global skip_checks test1 test2 test3 +# tests known to fail if networking isn’t available +%global skip_tests_networking gimp:desktop / appdata_file + +# tests known to fail in a normal user environment +%global skip_tests_user gimp:app / save-and-export\ +gimp:app / single-window-mode\ +gimp:app / ui + +# luajit isn’t available on all arches +%global plain_lua_arches riscv64 ppc64 ppc64le + +%global prerelease 1
Summary: GNU Image Manipulation Program Name: gimp Epoch: 2 -Version: 2.10.38 +Version: 2.99.19^20240814git256e0ca5a0 Release: %autorelease
# Compute some version related macros. -# Ugly, need to get quoting percent signs straight. -%global major %(ver=%{version}; echo ${ver%%%%.*}) -%global minor %(ver=%{version}; ver=${ver#%major.}; echo ${ver%%%%.*}) -%global micro %(ver=%{version}; ver=${ver#%major.%minor.}; echo ${ver%%%%.*}) -%global binver 2.10 + +# In the case of a snapshot version (e.g. "Version: 2.99.19^20240814git256e0ca5a0"), this computes +# the "plain" version (as defined in upstream sources), %%snapshot and %%git_rev macros. In the case +# of a normal release, %%plain_version will be the same as %%version. +%global plain_version %{lua: + local plain_version = (string.gsub(macros.version, '^(.*)[%^~].*$', '%1')) + print(plain_version) + if plain_version ~= macros.version then + macros.snapshot = (string.gsub(macros.version, '^.*[%^~](.*)$', '%1')) + macros.git_rev = (string.gsub(macros.snapshot, '^.*git(.*)$', '%1')) + end +} +%global major %{lua: + print((string.gsub(macros.plain_version, '^(%d+)%..*$', '%1'))) +} +%global minor %{lua: + print((string.gsub(macros.plain_version, '^%d+%.(%d+)%..*$', '%1'))) +} +%global micro %{lua: + print((string.gsub(macros.plain_version, '^%d+%.%d+%.(%d+).*$', '%1'))) +} +%global bin_version %{major}.%{minor} %global interface_age 0 +%if %prerelease +%global gettext_version 30 +%global api_version 3.0 +%global lib_api_version 3.0 +%else %global gettext_version %{major}0 +%global api_version %{major}.0 %global lib_api_version %{major}.0 -%global lib_minor %(echo $[%minor * 100]) +%endif +%global lib_minor %{lua: print(tonumber(macros.minor) * 100)} %global lib_micro %micro
# gimp core app is GPL-3.0-or-later, libgimp and other libraries are LGPL-3.0-or-later -# plugin file-dds is GPL-2.0-or-later and plugins script-fu/{ftx,tinyscheme} are BSD-3-Clause -License: LGPL-3.0-or-later AND GPL-2.0-or-later AND GPL-3.0-or-later AND BSD-3-Clause -URL: https://www.gimp.org/ +# plugin file-dds is GPL-2.0-or-later and plugins script-fu/libscriptfu/{ftx,tinyscheme} +# are BSD-3-Clause, icon themes are CC-BY-SA-{3.0,4.0}, data files such as brushes and +# patterns are CC0 +License: LGPL-3.0-or-later AND GPL-2.0-or-later AND GPL-3.0-or-later AND BSD-3-Clause AND CC-BY-SA-3.0 AND CC-BY-SA-4.0 AND CC0 +URL: https://www.gimp.org +%if %{with label_overlay} +BuildRequires: ImageMagick +%endif BuildRequires: aalib-devel BuildRequires: appdata-tools -BuildRequires: chrpath >= 0.13-5 +BuildRequires: appstream +BuildRequires: coreutils +BuildRequires: dbus-daemon +BuildRequires: desktop-file-utils BuildRequires: gcc BuildRequires: gegl04-tools -BuildRequires: gettext >= 0.19 +BuildRequires: gettext >= 0.19.8 +BuildRequires: gi-docgen +BuildRequires: gjs BuildRequires: glib-networking -BuildRequires: gtk-doc >= 1.0 -BuildRequires: intltool >= 0.40.1 BuildRequires: libgs-devel -BuildRequires: make -BuildRequires: perl >= 5.10.0 -BuildRequires: pkgconfig(alsa) >= 1.0.0 -BuildRequires: pkgconfig(atk) >= 2.2.0 -%if ! 0%{?fedora} || 0%{?fedora} >= 39 -BuildRequires: pkgconfig(babl-0.1) >= 0.1.74 +BuildRequires: libxml2 +BuildRequires: libxslt +%ifnarch %plain_lua_arches +BuildRequires: lua-lgi-compat +BuildRequires: luajit %else -BuildRequires: pkgconfig(babl) >= 0.1.74 +BuildRequires: lua >= 5.4 +BuildRequires: lua-lgi %endif +BuildRequires: meson +BuildRequires: perl >= 5.10.0 +BuildRequires: pkgconfig(alsa) >= 1.0.0 +BuildRequires: pkgconfig(appstream-glib) >= 0.7.7 +BuildRequires: pkgconfig(atk) >= 2.4.0 +BuildRequires: pkgconfig(babl-0.1) >= 0.1.108 BuildRequires: pkgconfig(bzip2) -BuildRequires: pkgconfig(cairo) >= 1.12.2 +BuildRequires: pkgconfig(cairo) >= 1.14.0 +BuildRequires: pkgconfig(cairo-pdf) >= 1.12.2 +BuildRequires: pkgconfig(cfitsio) BuildRequires: pkgconfig(fontconfig) >= 2.12.4 BuildRequires: pkgconfig(freetype2) >= 2.1.7 BuildRequires: pkgconfig(gdk-pixbuf-2.0) >= 2.30.8 -BuildRequires: pkgconfig(gegl-0.4) >= 0.4.32 -BuildRequires: pkgconfig(gexiv2) >= 0.10.6 -BuildRequires: pkgconfig(gio-2.0) >= 2.56.2 -BuildRequires: pkgconfig(gio-unix-2.0) >= 2.56.2 -BuildRequires: pkgconfig(glib-2.0) >= 2.56.2 -BuildRequires: pkgconfig(gmodule-no-export-2.0) >= 2.56.2 -BuildRequires: pkgconfig(gobject-2.0) >= 2.56.2 -BuildRequires: pkgconfig(gtk+-2.0) >= 2.24.32 +BuildRequires: pkgconfig(gegl-0.4) >= 0.4.48 +BuildRequires: pkgconfig(gexiv2) >= 0.14.0 +BuildRequires: pkgconfig(gio-2.0) +BuildRequires: pkgconfig(gio-unix-2.0) +BuildRequires: pkgconfig(glib-2.0) >= 2.70.0 +BuildRequires: pkgconfig(gmodule-no-export-2.0) +BuildRequires: pkgconfig(gobject-2.0) >= 2.70.0 +BuildRequires: pkgconfig(gobject-introspection-1.0) +BuildRequires: pkgconfig(gtk+-3.0) >= 3.24.0 BuildRequires: pkgconfig(gudev-1.0) >= 167 -BuildRequires: pkgconfig(harfbuzz) >= 0.9.19 +BuildRequires: pkgconfig(harfbuzz) >= 2.8.2 BuildRequires: pkgconfig(iso-codes) -BuildRequires: pkgconfig(jasper) +BuildRequires: pkgconfig(json-glib-1.0) >= 1.2.6 BuildRequires: pkgconfig(lcms2) >= 2.8 -BuildRequires: pkgconfig(libheif) +BuildRequires: pkgconfig(libheif) >= 1.15.1 BuildRequires: pkgconfig(libjpeg) -BuildRequires: pkgconfig(libjxl) >= 0.6.1 -BuildRequires: pkgconfig(libjxl_threads) >= 0.6.1 +BuildRequires: pkgconfig(libjxl) >= 0.7.0 +BuildRequires: pkgconfig(libjxl_threads) >= 0.7.0 BuildRequires: pkgconfig(liblzma) >= 5.0.0 BuildRequires: pkgconfig(libmng) BuildRequires: pkgconfig(libmypaint) >= 1.3.0 BuildRequires: pkgconfig(libopenjp2) >= 2.1.0 BuildRequires: pkgconfig(libpng) >= 1.6.25 BuildRequires: pkgconfig(librsvg-2.0) >= 2.40.6 -BuildRequires: pkgconfig(libtiff-4) +BuildRequires: pkgconfig(libtiff-4) >= 4.0.0 %if %{with libunwind} BuildRequires: pkgconfig(libunwind) >= 1.1.0 %endif @@ -95,47 +172,60 @@ BuildRequires: pkgconfig(libwebpdemux) >= 0.6.0 BuildRequires: pkgconfig(libwebpmux) >= 0.6.0 BuildRequires: pkgconfig(libwmf) >= 0.2.8 BuildRequires: pkgconfig(mypaint-brushes-1.0) >= 1.3.0 -BuildRequires: pkgconfig(OpenEXR) -BuildRequires: pkgconfig(pangocairo) >= 1.29.4 -BuildRequires: pkgconfig(pangoft2) >= 1.29.4 -BuildRequires: pkgconfig(poppler-data) >= 0.4.7 -BuildRequires: pkgconfig(poppler-glib) >= 0.50.0 -BuildRequires: pkgconfig(pycairo) >= 1.0.2 -BuildRequires: pkgconfig(pygobject-2.0) -BuildRequires: pkgconfig(pygtk-2.0) >= 2.10.4 -BuildRequires: pkgconfig(python2) >= 2.5.0 +BuildRequires: pkgconfig(OpenEXR) >= 1.6.1 +BuildRequires: pkgconfig(pango) >= 1.50.0 +BuildRequires: pkgconfig(pangocairo) >= 1.50.0 +BuildRequires: pkgconfig(pangoft2) >= 1.50.0 +BuildRequires: pkgconfig(poppler-data) >= 0.4.9 +BuildRequires: pkgconfig(poppler-glib) >= 0.69.0 +BuildRequires: pkgconfig(python3) >= 3.6.0 BuildRequires: pkgconfig(x11) +BuildRequires: pkgconfig(xfixes) BuildRequires: pkgconfig(xmu) BuildRequires: pkgconfig(xpm) BuildRequires: pkgconfig(zlib) +BuildRequires: python3dist(pygobject) >= 3.0 +BuildRequires: vala +BuildRequires: xorg-x11-server-Xvfb
+Requires: gjs Requires: hicolor-icon-theme -Recommends: mypaint-brushes +%ifnarch %plain_lua_arches +Requires: lua-lgi-compat +Requires: luajit +%else +Requires: lua >= 5.4 +Requires: lua-lgi +%endif Requires: xdg-utils -Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} -Requires: pygtk2%{?_isa} >= 2.10.4 -Obsoletes: %{name}-help-browser < %{epoch}:%{version}-%{release} -Conflicts: %{name}-help-browser < %{epoch}:%{version}-%{release} +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: python3dist(pygobject) >= 3.0 + +Recommends: mypaint-brushes
-#Remove dependency on RPM Fusion repository -Obsoletes: gimp-heif-plugin < 1.1.0-13 +Obsoletes: gimp3 < 3.0 +Conflicts: gimp3 < 3.0
-Source0: https://download.gimp.org/pub/gimp/v%%7Bbinver%7D/gimp-%%7Bversion%7D.tar.bz... +%if ! %defined snapshot +Source0: https://download.gimp.org/pub/gimp/v%%7Bbin_version%7D/gimp-%%7Bversion%7D.t... +%else +# Tarball built from git snapshot with `meson dist` and renamed accordingly +Source0: gimp-%{plain_version}-git%{git_rev}.tar.xz +%endif
-# Try using the system monitor profile for color management by default. -# Fedora specific. -Patch1: gimp-2.10.0-cm-system-monitor-profile-by-default.patch +# Fedora specific patches:
-# bz#1706653 -Patch2: gimp-2.10.12-default-font.patch +# Try using the system monitor profile for color management by default. +Patch1: gimp-2.99.19-cm-system-monitor-profile-by-default.patch
# don't phone home to check for updates by default -Patch3: gimp-2.10.18-no-phone-home-default.patch +Patch2: gimp-2.99.19-no-phone-home-default.patch
# use external help browser directly if help browser plug-in is not built -Patch100: gimp-2.10.24-external-help-browser.patch +Patch3: gimp-2.99.19-external-help-browser.patch
-Patch101: gimp-configure-c99.patch +# Don’t require an unreleased gegl version: +Patch4: 0001-Don-t-require-unreleased-gegl-version.patch
%description GIMP (GNU Image Manipulation Program) is a powerful image composition and @@ -149,6 +239,8 @@ with multi-level undo. %package libs Summary: GIMP libraries License: LGPL-3.0-or-later +Obsoletes: gimp3-libs < 3.0 +Conflicts: gimp3-libs < 3.0
%description libs The %{name}-libs package contains shared libraries needed for the GNU Image @@ -159,6 +251,8 @@ Summary: GIMP plugin and extension development kit License: LGPL-3.0-or-later Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-devel-tools = %{epoch}:%{version}-%{release} +Obsoletes: gimp3-devel < 3.0 +Conflicts: gimp3-devel < 3.0
%description devel The %{name}-devel package contains the files needed for writing GNU Image @@ -168,6 +262,8 @@ Manipulation Program (GIMP) plug-ins and extensions. Summary: GIMP plugin and extension development tools License: LGPL-3.0-or-later Requires: %{name}-devel = %{epoch}:%{version}-%{release} +Obsoletes: gimp3-devel-tools < 3.0 +Conflicts: gimp3-devel-tools < 3.0
%description devel-tools The %{name}-devel-tools package contains gimptool, a helper program to @@ -176,54 +272,41 @@ build GNU Image Manipulation Program (GIMP) plug-ins and extensions. %prep cat << EOF --- 8< --- Build options --------------------------------------------------- -install default binary: %{with default_binary} +is default version: %{with is_default_version} +label overlay: %{with label_overlay} +%if %defined snapshot +snapshot: %{snapshot} +plain_version: %{plain_version} +git_rev: %{git_rev} +%endif --- >8 --------------------------------------------------------------------- EOF
-%setup -q -n gimp-%{version} +%setup -q -n gimp-%{plain_version}
%patch 1 -p1 -b .cm-system-monitor-profile-by-default -%patch 2 -p1 -b .font-default -%patch 3 -p1 -b .no-phone-home-default - -%patch 100 -p1 -b .external-help-browser -%patch 101 -p1 -b .configure-c99 - -# Avoid re-running autotools. -touch -r aclocal.m4 configure* +%patch 2 -p1 -b .no-phone-home-default +%patch 3 -p1 -b .external-help-browser +%patch 4 -p1 -b .don-t-require-unreleased-gegl-version
%build -# allow python2 package for RHEL-8 -export RHEL_ALLOW_PYTHON2_FOR_BUILD=1 - # Use hardening compiler/linker flags because gimp is likely to deal with files # coming from untrusted sources %global _hardened_build 1 -%configure \ - --enable-python \ - --enable-mp \ - --disable-static \ - --with-print \ - --enable-gimp-console \ - --with-aa \ - --with-gudev \ -%ifos linux - --with-linux-input \ -%endif - --without-webkit \ - --with-webp \ -%if %{with default_binary} - --enable-default-binary=yes \ + +%meson \ +%if %{with is_default_version} + -Denable-default-bin=enabled \ %else - --enable-default-binary=no \ -%endif - --with-libmng --with-libxpm --with-alsa --with-cairo-pdf --with-libheif \ -%if 0%{?flatpak} - --with-icc-directory=/run/host/usr/share/color/icc/ \ + -Denable-default-bin=disabled \ %endif - --without-appdata-test + -Dilbm=disabled \ + -Dbug-report-url="https://bugzilla.redhat.com/"
-%make_build +%meson_build + +%install +%meson_install
# Generate RPM macros from pkg-config data: # %%_gimp_datadir -- toplevel directory for brushes, gradients, scripts, ... @@ -233,7 +316,7 @@ export RHEL_ALLOW_PYTHON2_FOR_BUILD=1 # %%_gimp_scriptdir -- script-fu scripts directory # %%_gimp_plugindir -- plug-in directory gimp_pc_extract_normalize() { - PKG_CONFIG_PATH="$PWD" \ + PKG_CONFIG_PATH="%{buildroot}%{_libdir}/pkgconfig" \ pkg-config --variable="$1" gimp-%{lib_api_version} | \ sed \ -e 's|^%_mandir|%%{_mandir}|' \ @@ -269,31 +352,23 @@ cat << EOF > macros.gimp %%_gimp_plugindir ${_gimp_plugindir} EOF
-%install -%make_install install -D -m0644 macros.gimp %{buildroot}%{_rpmconfigdir}/macros.d/macros.gimp
-# remove rpaths -find %buildroot -type f -print0 | xargs -0 -L 20 chrpath --delete --keepgoing 2>/dev/null || : - -# remove .la files -find %buildroot -name *.la -exec %__rm -f {} ; +echo "%{__python3}=%{__python3}" >> %{buildroot}%{_libdir}/gimp/%{api_version}/interpreters/pygimp.interp
# # Plugins and modules change often (grab the executeable ones) # -find %{buildroot}%{_libdir}/gimp/%{lib_api_version} -type f | sed "s@^%{buildroot}@@g" | grep -v '.a$' > gimp-plugin-files -find %{buildroot}%{_libdir}/gimp/%{lib_api_version}/* -type d | sed "s@^%{buildroot}@%%dir @g" >> gimp-plugin-files - -# .pyc and .pyo files don't exist yet -grep ".py$" gimp-plugin-files > gimp-plugin-files-py -for file in $(cat gimp-plugin-files-py); do - for newfile in ${file}c ${file}o; do - grep -F -q -x "$newfile" gimp-plugin-files || echo "$newfile" - done -done >> gimp-plugin-files +find %{buildroot}%{_libdir}/gimp/%{api_version} -type f | sed "s@^%{buildroot}@@g" | grep -v '.a$' > gimp-plugin-files +find %{buildroot}%{_libdir}/gimp/%{api_version}/* -type d | sed "s@^%{buildroot}@%%dir @g" >> gimp-plugin-files + +grep '.py$' gimp-plugin-files | \ + sed 's+/[^/]*.py$+/__pycache__+g' | \ + sort -u > gimp-plugin-files-pycache
-%py_byte_compile %{__python2} %{buildroot}%{_libdir}/gimp/%{lib_api_version} +cat gimp-plugin-files-pycache >> gimp-plugin-files + +%py_byte_compile %{__python3} %{buildroot}%{_libdir}/gimp/%{api_version}
# # Auto detect the lang files. @@ -311,15 +386,15 @@ cat gimp%{gettext_version}.lang gimp%{gettext_version}-std-plug-ins.lang gimp%{g # cat gimp-plugin-files gimp-all.lang > gimp.files
-%if %{with default_binary} +%if %{with is_default_version} # install default binary symlinks -ln -snf gimp-%{binver} %{buildroot}%{_bindir}/gimp -ln -snf gimp-%{binver}.1 %{buildroot}%{_mandir}/man1/gimp.1 -ln -snf gimp-console-%{binver} %{buildroot}/%{_bindir}/gimp-console -ln -snf gimp-console-%{binver}.1 %{buildroot}/%{_mandir}/man1/gimp-console.1 -ln -snf gimptool-%{lib_api_version} %{buildroot}%{_bindir}/gimptool -ln -snf gimptool-%{lib_api_version}.1 %{buildroot}%{_mandir}/man1/gimptool.1 -ln -snf gimprc-%{binver}.5 %{buildroot}/%{_mandir}/man5/gimprc.5 +ln -snf gimp-%{bin_version} %{buildroot}%{_bindir}/gimp +ln -snf gimp-%{bin_version}.1 %{buildroot}%{_mandir}/man1/gimp.1 +ln -snf gimp-console-%{bin_version} %{buildroot}/%{_bindir}/gimp-console +ln -snf gimp-console-%{bin_version}.1 %{buildroot}/%{_mandir}/man1/gimp-console.1 +ln -snf gimptool-%{api_version} %{buildroot}%{_bindir}/gimptool +ln -snf gimptool-%{api_version}.1 %{buildroot}%{_mandir}/man1/gimptool.1 +ln -snf gimprc-%{bin_version}.5 %{buildroot}/%{_mandir}/man5/gimprc.5 %endif
# Hardcode python interpreter in shipped python plug-ins. This actually has no @@ -327,103 +402,132 @@ ln -snf gimprc-%{binver}.5 %{buildroot}/%{_mandir}/man5/gimprc.5 # to the system python interpreter, but this will avoid false alarms. grep -E -rl '^#!\s*/usr/bin/env\s+python' --include=*.py "%{buildroot}" | while read file; do - sed -r '1s,^#!\s*/usr/bin/env\s+python$,#!%{__python2},' -i "$file" - sed -r '1s,^#!\s*/usr/bin/env\s+python2$,#!%{__python2},' -i "$file" + sed -r '1s,^#!\s*/usr/bin/env\s+python$,#!%{__python3},' -i "$file" + sed -r '1s,^#!\s*/usr/bin/env\s+python3$,#!%{__python3},' -i "$file" done
-echo "%{__python2}=%{__python2}" >> %{buildroot}%{_libdir}/gimp/%{lib_api_version}/interpreters/pygimp.interp +rm -rf devel-docs/gimp-%{bin_version} +mv %{buildroot}%{_docdir}/gimp-%{bin_version} devel-docs +rm -r %{buildroot}%{_datadir}/gimp/%{api_version}/tests + +%if %{without is_default_version} +rm -rf %{buildroot}%{_datadir}/metainfo +%endif
+%if %{with tests} %check -# skip tests known to be problematic in a specific version -%if "%{version}" == "%{?skip_checks_version}" -pushd app/tests -for problematic in %{?skip_checks}; do - rm -f "$problematic" - cat << EOF > "$problematic" -#!/bin/sh -echo Skipping test "$problematic" -EOF - chmod +x "$problematic" +# Some tests in the gimp:app suite are known to fail when run in a normal desktop environment, but +# they work in isolated builds (mock, koji): save-and-export, single-window-mode, ui + +# skip tests known to fail +skip_tests="" + +%if %{with skip_networking_tests} +skip_tests="$skip_tests +%skip_tests_networking" +%endif + +%if %{with skip_user_tests} +skip_tests="$skip_tests +%skip_tests_user" +%endif + +all_tests="$(%meson_test --list 2>/dev/null)" +suites="$(echo "$all_tests" | while read suite ignore; do echo "${suite%+*}"; done | sort -u)" +for suite in $suites; do + suite_tests="$( + echo "$all_tests" | grep "^$suite /" | while read ignore ignore test; do + if ! echo "$skip_tests" | grep -qFx "$suite / $test"; then echo "$test"; fi + done + )" + if [ -n "$suite_tests" ]; then + %meson_test --suite "$suite" $suite_tests + fi done -popd %endif -make check %{?_smp_mflags}
%ldconfig_scriptlets libs
%files -f gimp.files -%license COPYING -%doc AUTHORS ChangeLog NEWS README +%license LICENSE COPYING +%doc AUTHORS NEWS README %doc docs/*.xcf* %{_datadir}/applications/*.desktop +%if %{with is_default_version} %{_datadir}/metainfo/*.appdata.xml -%{_datadir}/metainfo/*.metainfo.xml +%endif
%dir %{_datadir}/gimp -%dir %{_datadir}/gimp/%{lib_api_version} -%{_datadir}/gimp/%{lib_api_version}/dynamics/ -%{_datadir}/gimp/%{lib_api_version}/file-raw/ -%{_datadir}/gimp/%{lib_api_version}/menus/ -%{_datadir}/gimp/%{lib_api_version}/tags/ -%{_datadir}/gimp/%{lib_api_version}/tips/ -%{_datadir}/gimp/%{lib_api_version}/tool-presets/ -%{_datadir}/gimp/%{lib_api_version}/ui/ +%dir %{_datadir}/gimp/%{api_version} +%{_datadir}/gimp/%{api_version}/dynamics/ +%{_datadir}/gimp/%{api_version}/file-raw/ +%{_datadir}/gimp/%{api_version}/menus/ +%{_datadir}/gimp/%{api_version}/tags/ +%{_datadir}/gimp/%{api_version}/tips/ +%{_datadir}/gimp/%{api_version}/tool-presets/ %dir %{_libdir}/gimp -%dir %{_libdir}/gimp/%{lib_api_version} - -%{_datadir}/gimp/%{lib_api_version}/brushes/ -%{_datadir}/gimp/%{lib_api_version}/fractalexplorer/ -%{_datadir}/gimp/%{lib_api_version}/gfig/ -%{_datadir}/gimp/%{lib_api_version}/gflare/ -%{_datadir}/gimp/%{lib_api_version}/gimpressionist/ -%{_datadir}/gimp/%{lib_api_version}/gradients/ -%{_datadir}/gimp/%{lib_api_version}/icons/ -%{_datadir}/gimp/%{lib_api_version}/images/ -%{_datadir}/gimp/%{lib_api_version}/palettes/ -%{_datadir}/gimp/%{lib_api_version}/patterns/ -%{_datadir}/gimp/%{lib_api_version}/scripts/ -%{_datadir}/gimp/%{lib_api_version}/themes/ -%{_datadir}/gimp/%{lib_api_version}/gimp-release +%dir %{_libdir}/gimp/%{api_version} + +%{_datadir}/gimp/%{api_version}/brushes/ +%{_datadir}/gimp/%{api_version}/fractalexplorer/ +%{_datadir}/gimp/%{api_version}/gfig/ +%{_datadir}/gimp/%{api_version}/gflare/ +%{_datadir}/gimp/%{api_version}/gimpressionist/ +%{_datadir}/gimp/%{api_version}/gradients/ +%{_datadir}/gimp/%{api_version}/icons/ +%{_datadir}/gimp/%{api_version}/images/ +%{_datadir}/gimp/%{api_version}/palettes/ +%{_datadir}/gimp/%{api_version}/patterns/ +%{_datadir}/gimp/%{api_version}/scripts/ +%{_datadir}/gimp/%{api_version}/themes/ +%{_datadir}/gimp/%{api_version}/gimp-release
%dir %{_sysconfdir}/gimp -%dir %{_sysconfdir}/gimp/%{lib_api_version} -%config(noreplace) %{_sysconfdir}/gimp/%{lib_api_version}/controllerrc -%config(noreplace) %{_sysconfdir}/gimp/%{lib_api_version}/gimprc -%config(noreplace) %{_sysconfdir}/gimp/%{lib_api_version}/gtkrc -%config(noreplace) %{_sysconfdir}/gimp/%{lib_api_version}/unitrc -%config(noreplace) %{_sysconfdir}/gimp/%{lib_api_version}/sessionrc -%config(noreplace) %{_sysconfdir}/gimp/%{lib_api_version}/templaterc -%config(noreplace) %{_sysconfdir}/gimp/%{lib_api_version}/menurc -%config(noreplace) %{_sysconfdir}/gimp/%{lib_api_version}/toolrc - -%{_bindir}/gimp-%{binver} -%{_bindir}/gimp-console-%{binver} - -%if %{with default_binary} +%dir %{_sysconfdir}/gimp/%{api_version} +%config(noreplace) %{_sysconfdir}/gimp/%{api_version}/controllerrc +%config(noreplace) %{_sysconfdir}/gimp/%{api_version}/gimp.css +%config(noreplace) %{_sysconfdir}/gimp/%{api_version}/gimprc +%config(noreplace) %{_sysconfdir}/gimp/%{api_version}/unitrc +%config(noreplace) %{_sysconfdir}/gimp/%{api_version}/sessionrc +%config(noreplace) %{_sysconfdir}/gimp/%{api_version}/templaterc +%config(noreplace) %{_sysconfdir}/gimp/%{api_version}/toolrc + +%{_bindir}/gimp-%{bin_version} +%{_bindir}/gimp-console-%{bin_version} +%{_bindir}/gimp-script-fu-interpreter-%{lib_api_version} + +%if %{with is_default_version} %{_bindir}/gimp %{_bindir}/gimp-console %endif
-%{_bindir}/gimp-test-clipboard-%{lib_api_version} -%{_libexecdir}/gimp-debug-tool-%{lib_api_version} +%{_bindir}/gimp-test-clipboard-%{bin_version} +%{_libexecdir}/gimp-debug-tool-%{bin_version} + +%if %{with is_default_version} +%{_bindir}/gimp-test-clipboard +%{_libexecdir}/gimp-debug-tool +%endif
-%{_mandir}/man1/gimp-%{binver}.1* -%{_mandir}/man1/gimp-console-%{binver}.1* -%{_mandir}/man5/gimprc-%{binver}.5* +%{_mandir}/man1/gimp-%{bin_version}.1* +%{_mandir}/man1/gimp-console-%{bin_version}.1* +%{_mandir}/man5/gimprc-%{bin_version}.5*
-%if %{with default_binary} +%if %{with is_default_version} %{_mandir}/man1/gimp.1* %{_mandir}/man1/gimp-console.1* %{_mandir}/man5/gimprc.5* %endif
-%{_datadir}/icons/hicolor/*/apps/gimp.png +%{_datadir}/icons/hicolor/*/apps/gimp*
%files libs -%license COPYING -%doc AUTHORS ChangeLog NEWS README +%license LICENSE COPYING +%doc AUTHORS NEWS README %{_libdir}/libgimp-%{lib_api_version}.so.%{interface_age}.%{lib_minor}.%{lib_micro} %{_libdir}/libgimp-%{lib_api_version}.so.%{interface_age} +%{_libdir}/libgimp-scriptfu-%{lib_api_version}.so.%{interface_age}.%{lib_minor}.%{lib_micro} +%{_libdir}/libgimp-scriptfu-%{lib_api_version}.so.%{interface_age} %{_libdir}/libgimpbase-%{lib_api_version}.so.%{interface_age}.%{lib_minor}.%{lib_micro} %{_libdir}/libgimpbase-%{lib_api_version}.so.%{interface_age} %{_libdir}/libgimpcolor-%{lib_api_version}.so.%{interface_age}.%{lib_minor}.%{lib_micro} @@ -440,26 +544,29 @@ make check %{?_smp_mflags} %{_libdir}/libgimpui-%{lib_api_version}.so.%{interface_age} %{_libdir}/libgimpwidgets-%{lib_api_version}.so.%{interface_age}.%{lib_minor}.%{lib_micro} %{_libdir}/libgimpwidgets-%{lib_api_version}.so.%{interface_age} +%dir %{_libdir}/girepository-1.0 +%{_libdir}/girepository-1.0/*.typelib
%files devel -%doc HACKING README.i18n -%doc %{_datadir}/gtk-doc +%doc README.i18n +%doc devel-docs/*
%{_libdir}/*.so -%ifnos linux -%{_libdir}/*.la -%{_libdir}/gimp/%{lib_api_version}/modules/*.la -%endif -%{_datadir}/aclocal/*.m4 %{_includedir}/gimp-%{lib_api_version} %{_libdir}/pkgconfig/* %{_rpmconfigdir}/macros.d/macros.gimp +%dir %{_datadir}/gir-1.0 +%{_datadir}/gir-1.0/Gimp*.gir +%dir %{_datadir}/vala +%dir %{_datadir}/vala/vapi +%{_datadir}/vala/vapi/gimp*.deps +%{_datadir}/vala/vapi/gimp*.vapi
%files devel-tools -%{_bindir}/gimptool-%{lib_api_version} -%{_mandir}/man1/gimptool-%{lib_api_version}.1* +%{_bindir}/gimptool-%{bin_version} +%{_mandir}/man1/gimptool-%{bin_version}.1*
-%if %{with default_binary} +%if %{with is_default_version} %{_bindir}/gimptool %{_mandir}/man1/gimptool.1* %endif diff --git a/sources b/sources index 9164bc4..ebd91bc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (gimp-2.10.38.tar.bz2) = 343bf1c3bd14bf8e7c7af79c05920faca213da68549127c1d8af53e2e872e55aeaf39a3cfcf578183a34fdc4f98e1c859be63956b0611067186eefd1fdee2aaa +SHA512 (gimp-2.99.19-git256e0ca5a0.tar.xz) = aadde8172a0d867641a304d2dd84ecb96ac2d2111ead6b64d251cdb21695054671a480a461d611335466161026b7d2ead0472941b27df3f2aa91251aa2d19c7b
arch-excludes@lists.fedoraproject.org