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