Hi,

Runciter <[email protected]> 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



Reply via email to