#!/bin/sh set -e handle_triggers () { local trigger local dirs for trigger in "$@"; do if ! [ -d $trigger ]; then continue fi case $trigger in /usr/share/glib-2.0/schemas) # This is triggered everytime an application installs a # GSettings schema "/usr/lib/x86_64-linux-gnu/glib-2.0/glib-compile-schemas" /usr/share/glib-2.0/schemas || true ;; "/usr/lib/x86_64-linux-gnu/gio/modules"|/usr/lib/gio/modules) # This is triggered everytime an application installs a GIO # module into /usr/lib/x86_64-linux-gnu/gio/modules or the # backwards-compatible /usr/lib/gio/modules directory # The /usr/lib/gio/modules directory is no longer shipped by # libglib2.0 itself so we need to check to avoid a warning from # gio-querymodules dirs="/usr/lib/x86_64-linux-gnu/gio/modules" if [ -d /usr/lib/gio/modules ] && [ $(dpkg --print-architecture) = "amd64" ]; then dirs="$dirs /usr/lib/gio/modules" fi "/usr/lib/x86_64-linux-gnu/glib-2.0/gio-querymodules" $dirs || true ;; esac done } cleanup () { /usr/share/glib-2.0/clean-up-unmanaged-libraries \ --bug-ref=896019 \ "$@" \ "x86_64-linux-gnu" \ libglib-2.0.so.0 } if [ "$1" = triggered ]; then handle_triggers $2 exit 0 fi # Clean up stale shared libraries if necessary. Do this before running # glib-compile-schemas, gio-querymodules. if ! cleanup; then echo "$0: Trying cleanup again with more logging..." cleanup --verbose fi # Also handle the initial installation if [ -d /usr/share/glib-2.0/schemas ]; then "/usr/lib/x86_64-linux-gnu/glib-2.0/glib-compile-schemas" /usr/share/glib-2.0/schemas || true fi if [ -d "/usr/lib/x86_64-linux-gnu/gio/modules" ]; then "/usr/lib/x86_64-linux-gnu/glib-2.0/gio-querymodules" "/usr/lib/x86_64-linux-gnu/gio/modules" || true fi if [ -d /usr/lib/gio/modules ] && [ $(dpkg --print-architecture) = "amd64" ]; then "/usr/lib/x86_64-linux-gnu/glib-2.0/gio-querymodules" /usr/lib/gio/modules || true fi # vim:set sw=4 sts=4 et: