Danny Milosavljevic writes: > Fixes . > Reported by Reza Alizadeh Majd . > > * gnu/packages/glib.scm (glib)[arguments]<#:phases>[patch-gio-launch-desktop]: > New phase. > [move-executables]: Modify. > --- > gnu/packages/glib.scm | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm > index 369bd373ac..9551509a53 100644 > --- a/gnu/packages/glib.scm > +++ b/gnu/packages/glib.scm > @@ -213,6 +213,15 @@ shared NFS home directories.") > (string-append "command_line = g_strdup_printf (\"" > dbus "/bin/dbus-launch"))) > #t))) > + (add-after 'unpack 'patch-gio-launch-desktop > + (lambda* (#:key outputs #:allow-other-keys) > + (let ((out (assoc-ref outputs "out"))) > + ;; See also > + ;; for another future fix. > + (substitute* "gio/gdesktopappinfo.c" > + (("gio-launch-desktop") > + (string-append out "/bin/gio-launch-desktop"))) > + #t))) > (add-before 'build 'pre-build > (lambda* (#:key inputs outputs #:allow-other-keys) > ;; For tests/gdatetime.c. > @@ -321,6 +330,13 @@ shared NFS home directories.") > (mkdir-p bin) > (rename-file (string-append out "/bin") > (string-append bin "/bin")) > + ;; This one is an implementation detail of glib. > + ;; It is wrong that that's in "/bin" in the first place, > + ;; but that's what upstream does right now. > + ;; See . > + (mkdir (string-append out "/bin")) > + (rename-file (string-append bin "/bin/gio-launch-desktop") > + (string-append out "/bin/gio-launch-desktop")) It is moved to "out" to avoid a circular reference between "bin" and "out", right? IMO we might as well "beat upstream to it" here and use $out/libexec, since nothing else is supposed to depend on it. LGTM with that change.