Update to a 2024-08-14 git snapshot

Signed-off-by: Nils Philippsen <nils@tiptoe.de>
This commit is contained in:
Nils Philippsen 2024-08-14 23:15:46 +02:00
parent c772f4c87d
commit 096182ae9c
12 changed files with 431 additions and 312 deletions

1
.gitignore vendored
View File

@ -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

View File

@ -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

3
README.md Normal file
View File

@ -0,0 +1,3 @@
# gimp
The gimp package

View File

@ -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.

View File

@ -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)
#

View File

@ -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.

View File

@ -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

View File

@ -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.
#

View File

@ -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.
#

View File

@ -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],

523
gimp.spec
View File

@ -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
# libunwind support (only available on some architectures)
%ifarch %{arm} aarch64 hppa ia64 mips ppc %{power64} %{ix86} x86_64
%bcond_without libunwind
# 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_with libunwind
%bcond is_default_version 0
%bcond label_overlay 1
%endif
%global build_type_safety_c 0
# libunwind support (only available on some architectures)
%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
# skip tests known to be problematic in a specific version
#global skip_checks_version X.Y.Z
#global skip_checks test1 test2 test3
%ifarch %unwind_arches
%bcond libunwind 1
%else
%bcond libunwind 0
%endif
%ifnarch s390x
%bcond tests 1
%else
# Tests hang on s390x, skip them.
%bcond tests 0
%endif
# When building in Koji or mock, networking isnt available.
%bcond skip_networking_tests 1
# Some tests fail under normal user environments, dont 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.
# tests known to fail if networking isnt 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 isnt 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: libxml2
BuildRequires: libxslt
%ifnarch %plain_lua_arches
BuildRequires: lua-lgi-compat
BuildRequires: luajit
%else
BuildRequires: lua >= 5.4
BuildRequires: lua-lgi
%endif
BuildRequires: meson
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
%else
BuildRequires: pkgconfig(babl) >= 0.1.74
%endif
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
#Remove dependency on RPM Fusion repository
Obsoletes: gimp-heif-plugin < 1.1.0-13
Recommends: mypaint-brushes
Source0: https://download.gimp.org/pub/gimp/v%{binver}/gimp-%{version}.tar.bz2
Obsoletes: gimp3 < 3.0
Conflicts: gimp3 < 3.0
%if ! %defined snapshot
Source0: https://download.gimp.org/pub/gimp/v%{bin_version}/gimp-%{version}.tar.xz
%else
# Tarball built from git snapshot with `meson dist` and renamed accordingly
Source0: gimp-%{plain_version}-git%{git_rev}.tar.xz
%endif
# Fedora specific patches:
# 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
# bz#1706653
Patch2: gimp-2.10.12-default-font.patch
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
# Dont 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 \
%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/ \
%endif
--without-appdata-test
%make_build
%meson \
%if %{with is_default_version}
-Denable-default-bin=enabled \
%else
-Denable-default-bin=disabled \
%endif
-Dilbm=disabled \
-Dbug-report-url="https://bugzilla.redhat.com/"
%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
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
# .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
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
%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"
done
popd
%if %{without is_default_version}
rm -rf %{buildroot}%{_datadir}/metainfo
%endif
%if %{with tests}
%check
# 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
%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}
%dir %{_libdir}/gimp/%{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
%{_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
%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-%{binver}
%{_bindir}/gimp-console-%{binver}
%{_bindir}/gimp-%{bin_version}
%{_bindir}/gimp-console-%{bin_version}
%{_bindir}/gimp-script-fu-interpreter-%{lib_api_version}
%if %{with default_binary}
%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}
%{_mandir}/man1/gimp-%{binver}.1*
%{_mandir}/man1/gimp-console-%{binver}.1*
%{_mandir}/man5/gimprc-%{binver}.5*
%if %{with is_default_version}
%{_bindir}/gimp-test-clipboard
%{_libexecdir}/gimp-debug-tool
%endif
%if %{with default_binary}
%{_mandir}/man1/gimp-%{bin_version}.1*
%{_mandir}/man1/gimp-console-%{bin_version}.1*
%{_mandir}/man5/gimprc-%{bin_version}.5*
%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

View File

@ -1 +1 @@
SHA512 (gimp-2.10.38.tar.bz2) = 343bf1c3bd14bf8e7c7af79c05920faca213da68549127c1d8af53e2e872e55aeaf39a3cfcf578183a34fdc4f98e1c859be63956b0611067186eefd1fdee2aaa
SHA512 (gimp-2.99.19-git256e0ca5a0.tar.xz) = aadde8172a0d867641a304d2dd84ecb96ac2d2111ead6b64d251cdb21695054671a480a461d611335466161026b7d2ead0472941b27df3f2aa91251aa2d19c7b