Bug#696389: libglib2.0-0: harmful postrm actions for M-A: same package: rm -f /usr/lib/.../modules/giomodule.cache /usr/share/glib-2.0/schemas/gschemas.compiled

Andreas Beckmann debian at abeckmann.de
Thu Dec 20 09:59:28 UTC 2012

Package: libglib2.0-0
Version: 2.33.12+really2.32.4-3
Severity: serious
User: debian-qa at lists.debian.org
Usertags: piuparts


libglib2.0-0.postrm does some cleanup that is potentially harmful in a
multiarch setup. Just think about libglib2.0-0:someforeignarch being
removed while libglib2.0-0:native is kept installed:

    rm -f /usr/lib/x86_64-linux-gnu/gio/modules/giomodule.cache
    rm -f /usr/lib/gio/modules/giomodule.cache
    rm -f /usr/share/glib-2.0/schemas/gschemas.compiled

The latter two should only be done when removing the last instance of
libglib2.0-0 ... or some trigger should be actived that may
update/recreate these caches ...

Furthermore the directory removal is not needed as well, because this
should be handled dpkg and its reference counting:

    rmdir -p --ignore-fail-on-non-empty /usr/lib/x86_64-linux-gnu/gio/modules
    rmdir -p --ignore-fail-on-non-empty /usr/lib/gio/modules
    rmdir -p --ignore-fail-on-non-empty /usr/share/glib-2.0/schemas

Two of these directories are already owned by several packages, and the
third should just be shipped as an empty directory by libglib2.0-0

# dpkg -S /usr/lib/x86_64-linux-gnu/gio/modules /usr/lib/gio/modules /usr/share/glib-2.0/schemas
libglib2.0-0:amd64, dconf-gsettings-backend:amd64: /usr/lib/x86_64-linux-gnu/gio/modules
dpkg-query: no path found matching pattern /usr/lib/gio/modules
libglib2.0-0:amd64, libgtk-3-common: /usr/share/glib-2.0/schemas

I just started doing some co-installation tests of the M-A: same
packages (about 2000 for sid and wheezy, each)

  setup minimal wheezy (or sid) amd64 chroot
  install $PKG
  enable-foreign-architecture i386
  install $PKG:i386
  purge *:i386
  compare with snapshot

and see quite a lot of these errors:

1m14.3s ERROR: FAIL: After purging files have disappeared:
  /usr/share/glib-2.0/   owned by: libglib2.0-0:i386, libglib2.0-0:amd64
  /usr/share/glib-2.0/schemas/   owned by: libglib2.0-0:i386, libglib2.0-0:amd64

1m5.0s ERROR: FAIL: After purging files have disappeared:
  /usr/share/glib-2.0/schemas/gschemas.compiled  not owned


More information about the pkg-gnome-maintainers mailing list