Subject: Re: bug#44053: ‘xdg-mime-database’profile hook is slow

From: zimoun <[email-masked]>
Date: Wed, 04 Nov 2020 00:32:39 +0100

Hi,

>   https://git.savannah.gnu.org/cgit/guix.git/commit/?id=76ea70bd70aeb76570445c11cea2f98139192b54

Clever workaround!  What are now the performances on previous examples
(same profiles and same packages)?

> Unfortunately, AIUI,
>
>   update-mime-database(X ∪ Y) ≠ update-mime-database(X) ∪ update-mime-database(Y)

Hum?  Interesting… well weird!  If it is not a “morphism” then it is not
really an updater.  Anyway.

I am curious about the comparison:

   time(update-mime-database(X ∪ Y))
vs
   time(update-mime-database(X)) + time(update-mime-database(Y))
vs
   time(update-mime-database(X ∩ Y))

> So it would seem we cannot simply used the pre-built database from
> ‘shared-mime-info’ and merge it with that of the other packages, at
> least not without changing ‘update-mime-database’ or re-implementing
> parts of it on our side.

’shared-mime-info’ is simply a package, right?  So what does it means:
«Find a way to avoid reprocessing 'shared-mime-info'» in:

--8<---------------cut here---------------start------------->8---
                 ;; the database.  TODO: Find a way to avoid reprocessing
                 ;; 'shared-mime-info', which is the most expensive one.
[...]
                 (invoke #+(file-append shared-mime-info
                                        "/bin/update-mime-database")
                         destdir)))))))
--8<---------------cut here---------------end--------------->8---

?  Well, I miss why and how ’shared-mime-info’ could be the culprit here
or what could be improved with “shared-mime-info”?  Maybe replace the
“lazy reference” by a strict one if it makes sense.

All the best,
simon