GNU bug report logs - #78537
GIMP startup crash on minimal xorg/wm unless gtk+ in profile

Previous Next

Package: guix;

Reported by: Runciter <runciter <at> whispers-vpn.org>

Date: Wed, 21 May 2025 15:36:03 UTC

Severity: normal

Merged with 78667

Done: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Runciter <runciter <at> whispers-vpn.org>
Cc: 78537-done <at> debbugs.gnu.org, nomike <at> nomike.com, 78667-done <at> debbugs.gnu.org
Subject: bug#78537: bug#78667: gimp crashes on startup on Ubuntu 25.10 foreign distro
Date: Tue, 08 Jul 2025 22:09:56 +0900
Hi,

Runciter <runciter <at> whispers-vpn.org> writes:

> * gnu/packages/gimp.scm (gimp-3)[arguments]<phases>:
>   Wrap value of GDK_PIXBUF_MODULE_FILE in wrapper script.
>   Add wrapping for gtk+ data files in prefix to XDG_DATA_DIRS.
>   Add wrapping for ahared-mime-info data files in prefix to XDG_DATA_DIRS.
>   Change wrapping of GI_TYPELIB_PATH and GUIX_PYTHONPATH to prefix.

Pushed as 6f9e15b913853762707f31974156069708b06e3b with some
modifications. The commit message now reads:

--8<---------------cut here---------------start------------->8---
gnu: gimp-3: Fix execution outside of a profile.

* gnu/packages/gimp.scm (gimp-3) [arguments]
<phases> {wrap}: Adjust to wrap in prefix mode. Also wrap
GDK_PIXBUF_MODULE_FILE, and XDG_DATA_DIRS.
[native-inputs]: Add shared-mime-info.
--8<---------------cut here---------------end--------------->8---

[...]

>                        (wrap-program prog
> -                        ;; Ensure GI_TYPELIB_PATH is not extended from the
> +                        ;; Ensure GI_TYPELIB_PATH is not suffixed to the
>                          ;; environment, as it could cause Gimp to crash (see
>                          ;; bug#77921).
> -                        `("GI_TYPELIB_PATH" =
> +                        `("GI_TYPELIB_PATH" prefix
>                            (,(getenv "GI_TYPELIB_PATH")))
> -                        `("GUIX_PYTHONPATH" suffix
> -                          (,(getenv "GUIX_PYTHONPATH")))))
> +                        `("GUIX_PYTHONPATH" prefix
> +                          (,(getenv "GUIX_PYTHONPATH")))
> +                        `("GDK_PIXBUF_MODULE_FILE" =
> +                          (,(getenv "GDK_PIXBUF_MODULE_FILE")))
> +                        `("XDG_DATA_DIRS" prefix
> +                          (,(string-append #$gtk+ "/share")))
> +                        `("XDG_DATA_DIRS" prefix
> +                          (,(string-append #$shared-mime-info "/share")))))
>                      (find-files (string-append #$output "/bin")
>                                  (lambda (_ stat)
>                                    (eq? 'regular (stat:type stat))))))))))

XDG_DATA_DIRS need not be duplicated, and references to packages should
be done via this-package-input/this-package-native-input or
search-input-file rather than ungexp directly, as this would make
rewriting inputs impossible:

--8<---------------cut here---------------start------------->8---
@@ -460,13 +461,21 @@ (define-public gimp-3
                    (for-each
                     (lambda (prog)
                       (wrap-program prog
-                        ;; Ensure GI_TYPELIB_PATH is not extended from the
+                        ;; Ensure GI_TYPELIB_PATH is not suffixed to the
                         ;; environment, as it could cause Gimp to crash (see
                         ;; bug#77921).
-                        `("GI_TYPELIB_PATH" =
+                        `("GI_TYPELIB_PATH" prefix
                           (,(getenv "GI_TYPELIB_PATH")))
-                        `("GUIX_PYTHONPATH" suffix
-                          (,(getenv "GUIX_PYTHONPATH")))))
+                        `("GUIX_PYTHONPATH" prefix
+                          (,(getenv "GUIX_PYTHONPATH")))
+                        `("GDK_PIXBUF_MODULE_FILE" =
+                          (,(getenv "GDK_PIXBUF_MODULE_FILE")))
+                        `("XDG_DATA_DIRS" prefix
+                          (,(string-append #$(this-package-input "gtk+")
+                                           "/share")
+                           ,(string-append #$(this-package-native-input
+                                              "shared-mime-info")
+                                           "/share")))))
                     (find-files (string-append #$output "/bin")
                                 (lambda (_ stat)
                                   (eq? 'regular (stat:type stat))))))))))
@@ -478,7 +487,8 @@ (define-public gimp-3
     (native-inputs (modify-inputs (package-native-inputs gimp-2)
                      (prepend appstream-glib
                               gi-docgen
-                              libarchive)))))
+                              libarchive
+                              shared-mime-info)))))
--8<---------------cut here---------------end--------------->8---

I've followed-up with a couple additions, such as libjxl support.

Closing!

-- 
Thanks,
Maxim




This bug report was last modified 12 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.