#45354: gdk-pixbuf2 @2.31.1 Hidden dependency on shared-mime-info --------------------------+---------------------- Reporter: bgilbert@… | Owner: devans@… Type: defect | Status: assigned Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: Port: gdk-pixbuf2 | --------------------------+---------------------- Comment (by bgilbert@…): It turns out that `shared-mime-info` doesn't delete its cache files when it is uninstalled (filed as #45396), so removing it is not enough to get your system back to a pristine state. That explains why GIO content sniffing is enabled during gdk-pixbuf builds: the builders have had `shared-mime-info` installed ''at some point in the past''. Here's a session demonstrating the problem: {{{ $ port installed gdk-pixbuf2 shared-mime-info The following ports are currently installed: gdk-pixbuf2 @2.31.1_0+x11 (active) shared-mime-info @1.3_0 (active) $ wget -q https://www.macports.org/img/macports-logo-top.png $ cat gdk-pixbuf-open.c #include <stdio.h> #include <gdk-pixbuf/gdk-pixbuf.h> int main(int argc, char **argv) { GError *err = NULL; GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file(argv[1], &err); if (pixbuf == NULL) { fprintf(stderr, "Failed: %s\n", err->message); } else { printf("OK\n"); } return 0; } $ gcc -o gdk-pixbuf-open $(pkg-config --cflags --libs glib-2.0 gdk- pixbuf-2.0) gdk-pixbuf-open.c $ ./gdk-pixbuf-open macports-logo-top.png OK $ sudo port uninstall shared-mime-info ---> Deactivating shared-mime-info @1.3_0 ---> Cleaning shared-mime-info ---> Uninstalling shared-mime-info @1.3_0 ---> Cleaning shared-mime-info $ ./gdk-pixbuf-open macports-logo-top.png OK $ ls -d /opt/local/share/mime/* | grep -v packages | sudo xargs rm -r $ ./gdk-pixbuf-open macports-logo-top.png Failed: Couldn't recognize the image file format for file 'macports-logo- top.png' $ sudo port install shared-mime-info ---> Computing dependencies for shared-mime-info ---> Fetching archive for shared-mime-info ---> Attempting to fetch shared-mime-info-1.3_0.darwin_13.x86_64.tbz2 from http://packages.macports.org/shared-mime-info ---> Attempting to fetch shared-mime- info-1.3_0.darwin_13.x86_64.tbz2.rmd160 from http://packages.macports.org /shared-mime-info ---> Installing shared-mime-info @1.3_0 ---> Activating shared-mime-info @1.3_0 ---> Cleaning shared-mime-info ---> Updating database of binaries ---> Scanning binaries for linking errors ---> No broken files found. $ ./gdk-pixbuf-open macports-logo-top.png OK }}} To summarize: GIO content sniffing is implicitly enabled in `gdk-pixbuf2` builds due to #45396, but doesn't actually return a useful result unless `shared-mime-info` (or its leftover cache files) is installed. Neither the `gdk-pixbuf2` nor `glib2` packages depend on `shared-mime-info`. As a result, a minimal install of `gdk-pixbuf2` refuses to load any images. -- Ticket URL: <https://trac.macports.org/ticket/45354#comment:5> MacPorts <http://www.macports.org/> Ports system for OS X