<div dir="ltr"><div dir="ltr">On Sat, 29 Aug 2020 at 22:23, Piotr Karbowski <<a href="mailto:piotr.karbowski@protonmail.ch">piotr.karbowski@protonmail.ch</a>> wrote:<br></div><div class="gmail_quote"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">My goal is to create a drop-in replacement for xdg-utils, while greatly<br>
simplifying the logic. For example, xdg-open uses xdg-mime, and xdg-mime<br>
have whole logic to choose what tool it should use to query for<br>
mimetype, if there's kde, it will use kmimetypefinder, if there's gnome<br>
it will use gio and fallback to gvfs-info, if it fail to detect DE, it<br>
will use mimeinfo written in Perl instead.<br></blockquote><div><br></div><div>This approach is entirely broken, and I'd recommend you not do this if you want to take over the maintenance of a freedesktop component.</div><div><br></div><div>All applications that are not Python scripts use the shared-mime database, which is a) a freedesktop specification b) hosted on freedesktop. Using libmagic would automatically make your xdg-utils replacement something that is not adhering to freedesktop specifications, and thus would move it outside of the scope of freedesktop entirely.<br></div></div><div class="gmail_quote"><br></div><div class="gmail_quote">Libmagic does not use the shared-mime database; it requires opening files for content sniffing instead of allowing the use of extensions for fast content type checks; it has its own magic database, with its own format, maintained inside the libmagic repository and tied to its implementation.<br></div><div class="gmail_quote"><br></div><div class="gmail_quote">Yes, the xdg-utils are somewhat broken by design, with them being shell scripts checking the desktop environment to determine what native tool should be called. They solve the problems of lack of resources in fd.o, as well as the issue of system administrators trying to bash script their way around things, instead of platform developers actually fixing them.<br></div><div class="gmail_quote"><br></div><div class="gmail_quote"> The proper solution to this issue is to write a reference implementation, using the freedesktop specifications, instead of using something else entirely. The xdg-utils should be for freedesktop specifications what libdbus is for the DBus specification: the reference implementation, which can then be used to verify the compliance of any other implementation.</div><div><br></div><div>Ciao,</div><div> Emmanuele.</div><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><a href="https://www.bassi.io" target="_blank">https://www.bassi.io</a><br>[@] ebassi [@<a href="http://gmail.com" target="_blank">gmail.com</a>]</div></div>