* [PR PATCH] gimp: fix crashes on unpatched musl.
@ 2020-12-12 6:13 ericonr
2020-12-12 6:48 ` [PR PATCH] [Merged]: " ericonr
0 siblings, 1 reply; 2+ messages in thread
From: ericonr @ 2020-12-12 6:13 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 442 bytes --]
There is a new pull request by ericonr against master on the void-packages repository
https://github.com/ericonr/void-packages gimp
https://github.com/void-linux/void-packages/pull/27100
gimp: fix crashes on unpatched musl.
GIMP depended on our mo_lookup patch for musl, which allows passing NULL
msgid to gettext functions. This patch fixes that.
A patch file from https://github.com/void-linux/void-packages/pull/27100.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gimp-27100.patch --]
[-- Type: text/x-diff, Size: 7964 bytes --]
From 9fcf7fb204e719fc13649181f77596ce2b805ae6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=89rico=20Rolim?= <erico.erc@gmail.com>
Date: Sat, 12 Dec 2020 03:10:27 -0300
Subject: [PATCH] gimp: fix crashes on unpatched musl.
GIMP depended on our mo_lookup patch for musl, which allows passing NULL
msgid to gettext functions. This patch fixes that.
---
srcpkgs/gimp/patches/fix-segfault.patch | 169 ++++++++++++++++++++++++
srcpkgs/gimp/template | 2 +-
2 files changed, 170 insertions(+), 1 deletion(-)
create mode 100644 srcpkgs/gimp/patches/fix-segfault.patch
diff --git a/srcpkgs/gimp/patches/fix-segfault.patch b/srcpkgs/gimp/patches/fix-segfault.patch
new file mode 100644
index 00000000000..a1954de2103
--- /dev/null
+++ b/srcpkgs/gimp/patches/fix-segfault.patch
@@ -0,0 +1,169 @@
+diff --git app/dialogs/dialogs.c app/dialogs/dialogs.c
+index 064f2c4..b17d82f 100644
+--- app/dialogs/dialogs.c
++++ app/dialogs/dialogs.c
+@@ -534,11 +534,15 @@ dialogs_init (Gimp *gimp,
+ menu_factory);
+ gimp_dialog_factory_set_singleton (factory);
+
+- for (i = 0; i < G_N_ELEMENTS (entries); i++)
++ for (i = 0; i < G_N_ELEMENTS (entries); i++) {
++ char *name, *blurb;
++ name = entries[i].name ? gettext(entries[i].name) : NULL;
++ blurb = entries[i].blurb ? gettext(entries[i].blurb) : NULL;
++
+ gimp_dialog_factory_register_entry (factory,
+ entries[i].identifier,
+- gettext (entries[i].name),
+- gettext (entries[i].blurb),
++ name,
++ blurb,
+ entries[i].icon_name,
+ entries[i].help_id,
+ entries[i].new_func,
+@@ -551,6 +555,7 @@ dialogs_init (Gimp *gimp,
+ entries[i].hideable,
+ entries[i].image_window,
+ entries[i].dockable);
++ }
+
+ global_recent_docks = gimp_list_new (GIMP_TYPE_SESSION_INFO, FALSE);
+ }
+diff --git app/widgets/gimpactiongroup.c app/widgets/gimpactiongroup.c
+index 04bd1b6..12eff51 100644
+--- app/widgets/gimpactiongroup.c
++++ app/widgets/gimpactiongroup.c
+@@ -393,7 +393,7 @@ gimp_action_group_add_actions (GimpActionGroup *group,
+ for (i = 0; i < n_entries; i++)
+ {
+ GimpAction *action;
+- const gchar *label;
++ const gchar *label = NULL;
+ const gchar *tooltip = NULL;
+
+ if (! gimp_action_group_check_unique_action (group, entries[i].name))
+@@ -401,15 +401,18 @@ gimp_action_group_add_actions (GimpActionGroup *group,
+
+ if (msg_context)
+ {
+- label = g_dpgettext2 (NULL, msg_context, entries[i].label);
++ if (entries[i].label)
++ label = g_dpgettext2 (NULL, msg_context, entries[i].label);
+
+ if (entries[i].tooltip)
+ tooltip = g_dpgettext2 (NULL, msg_context, entries[i].tooltip);
+ }
+ else
+ {
+- label = gettext (entries[i].label);
+- tooltip = gettext (entries[i].tooltip);
++ if (entries[i].label)
++ label = gettext (entries[i].label);
++ if (entries[i].tooltip)
++ tooltip = gettext (entries[i].tooltip);
+ }
+
+ action = gimp_action_impl_new (entries[i].name, label, tooltip,
+@@ -450,15 +453,18 @@ gimp_action_group_add_toggle_actions (GimpActionGroup *group,
+
+ if (msg_context)
+ {
+- label = g_dpgettext2 (NULL, msg_context, entries[i].label);
++ if (entries[i].label)
++ label = g_dpgettext2 (NULL, msg_context, entries[i].label);
+
+ if (entries[i].tooltip)
+ tooltip = g_dpgettext2 (NULL, msg_context, entries[i].tooltip);
+ }
+ else
+ {
+- label = gettext (entries[i].label);
+- tooltip = gettext (entries[i].tooltip);
++ if (entries[i].label)
++ label = gettext (entries[i].label);
++ if (entries[i].tooltip)
++ tooltip = gettext (entries[i].tooltip);
+ }
+
+ action = gimp_toggle_action_new (entries[i].name, label, tooltip,
+@@ -504,17 +510,20 @@ gimp_action_group_add_radio_actions (GimpActionGroup *group,
+ if (! gimp_action_group_check_unique_action (group, entries[i].name))
+ continue;
+
+- if (msg_context)
++ if (msg_context)
+ {
+- label = g_dpgettext2 (NULL, msg_context, entries[i].label);
++ if (entries[i].label)
++ label = g_dpgettext2 (NULL, msg_context, entries[i].label);
+
+ if (entries[i].tooltip)
+ tooltip = g_dpgettext2 (NULL, msg_context, entries[i].tooltip);
+ }
+ else
+ {
+- label = gettext (entries[i].label);
+- tooltip = gettext (entries[i].tooltip);
++ if (entries[i].label)
++ label = gettext (entries[i].label);
++ if (entries[i].tooltip)
++ tooltip = gettext (entries[i].tooltip);
+ }
+
+ action = gimp_radio_action_new (entries[i].name, label, tooltip,
+@@ -560,7 +569,7 @@ gimp_action_group_add_enum_actions (GimpActionGroup *group,
+ for (i = 0; i < n_entries; i++)
+ {
+ GimpEnumAction *action;
+- const gchar *label;
++ const gchar *label = NULL;
+ const gchar *tooltip = NULL;
+
+ if (! gimp_action_group_check_unique_action (group, entries[i].name))
+@@ -568,15 +577,18 @@ gimp_action_group_add_enum_actions (GimpActionGroup *group,
+
+ if (msg_context)
+ {
+- label = g_dpgettext2 (NULL, msg_context, entries[i].label);
++ if (entries[i].label)
++ label = g_dpgettext2 (NULL, msg_context, entries[i].label);
+
+ if (entries[i].tooltip)
+ tooltip = g_dpgettext2 (NULL, msg_context, entries[i].tooltip);
+ }
+ else
+ {
+- label = gettext (entries[i].label);
+- tooltip = gettext (entries[i].tooltip);
++ if (entries[i].label)
++ label = gettext (entries[i].label);
++ if (entries[i].tooltip)
++ tooltip = gettext (entries[i].tooltip);
+ }
+
+ action = gimp_enum_action_new (entries[i].name, label, tooltip,
+@@ -618,17 +630,20 @@ gimp_action_group_add_string_actions (GimpActionGroup *group,
+ if (! gimp_action_group_check_unique_action (group, entries[i].name))
+ continue;
+
+- if (msg_context)
++ if (msg_context)
+ {
+- label = g_dpgettext2 (NULL, msg_context, entries[i].label);
++ if (entries[i].label)
++ label = g_dpgettext2 (NULL, msg_context, entries[i].label);
+
+ if (entries[i].tooltip)
+ tooltip = g_dpgettext2 (NULL, msg_context, entries[i].tooltip);
+ }
+ else
+ {
+- label = gettext (entries[i].label);
+- tooltip = gettext (entries[i].tooltip);
++ if (entries[i].label)
++ label = gettext (entries[i].label);
++ if (entries[i].tooltip)
++ tooltip = gettext (entries[i].tooltip);
+ }
+
+ action = gimp_string_action_new (entries[i].name, label, tooltip,
diff --git a/srcpkgs/gimp/template b/srcpkgs/gimp/template
index aadcb7de985..43e044f1826 100644
--- a/srcpkgs/gimp/template
+++ b/srcpkgs/gimp/template
@@ -1,7 +1,7 @@
# Template file for 'gimp'
pkgname=gimp
version=2.10.20
-revision=1
+revision=2
build_style=gnu-configure
hostmakedepends="automake gegl gettext-devel glib-devel gtk+-devel intltool
libtool pkg-config pygtk-devel perl-XML-Parser gtk-doc iso-codes"
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PR PATCH] [Merged]: gimp: fix crashes on unpatched musl.
2020-12-12 6:13 [PR PATCH] gimp: fix crashes on unpatched musl ericonr
@ 2020-12-12 6:48 ` ericonr
0 siblings, 0 replies; 2+ messages in thread
From: ericonr @ 2020-12-12 6:48 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 294 bytes --]
There's a merged pull request on the void-packages repository
gimp: fix crashes on unpatched musl.
https://github.com/void-linux/void-packages/pull/27100
Description:
GIMP depended on our mo_lookup patch for musl, which allows passing NULL
msgid to gettext functions. This patch fixes that.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-12-12 6:48 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-12 6:13 [PR PATCH] gimp: fix crashes on unpatched musl ericonr
2020-12-12 6:48 ` [PR PATCH] [Merged]: " ericonr
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).