shared-mime-info is just a pile of data in various forms: * Sources: /usr/share/mime/packages/freedesktop.xml is the canonical source, and other packages can extend the databases by adding more files into that directory * Database: /usr/share/mime/*/*.xml. Lots of files generated from the sources by update-mime-database * Cache: a machine-readable/mmapable form of the database. In the typical desktop world all of these files need to exist. Packages can be added and removed so the sources need to be always present to build the database/cache, and applications that can read the cache directly (such as glib) do whilst others read the databases. In the embedded world this may be true but may not be. If the system is static and it is known that all users of shared-mime-info can use the cache, then we should be able to install just the cache. I suspect the best approach will be to generate the databases/caches at rootfs time, and then have a way to remove the package that ships the sources.
Still not a bad idea.