[oe] broken shared-mime-info and MIME typing

Stanislav Brabec utx at penguin.cz
Thu Dec 4 09:51:35 UTC 2008


Looking at MIME binding, I found that it is now completely broken.

We have mime.class, that provides install-time generating of the
database.

shared-mime-info attempts to provide compile-time generating of the
database. As it does not contain freedesktop.org.xml, any package using
mime.class calling update-mime-database will remove 99% of entries in
the MIME database.

Creating database during the build time is not possible yet and would
require significant changes in update-mime-database (or writing a
different tool):
There is no way to create /usr/share/mime/magic, subclasses, mime.cache
during the build time => it must be done during installation. Note that
mime.cache is a binary file.


Proposal:

- Install freedesktop.org.xml again.
- Change mime.class:
  - Change scripts: First test, whether update-mime-database is
    installed, if yes, then call it.
  - mime class should not RDEPEND on shared-mime-info (now it depends,
    but it is missing there and may cause installation errors)
  - mime_prerm should be probably postrm => update database after
    package removal
- default to --disable-update-mimedb

Alternatives:

- Write update-mime-database alternative capable to build magic without
  freedesktop.org.xml.
- Patch update-mime-database to allow compressed packages/*.xml.
- Return to compile time and write a tool capable to create MIME
  database for all packages available in the feed as the part of
  package-index creation. It would need a special XDG_* variables
  settings, so applications will be able to collect magic from all
  repositories.

-- 
Stanislav Brabec
http://www.penguin.cz/~utx/zaurus





More information about the Openembedded-devel mailing list