HEX
Server: Apache/2.4.65 (Debian)
System: Linux wordpress-7cb4c6b6f6-rqj4b 5.15.0-131-generic #141-Ubuntu SMP Fri Jan 10 21:18:28 UTC 2025 x86_64
User: www-data (33)
PHP: 8.3.27
Disabled: NONE
Upload Files
File: /var/lib/dpkg/info/libglib2.0-0t64:amd64.preinst
#!/bin/sh
# Copyright 2024 Simon McVittie
# SPDX-License-Identifier: LGPL-2.1-or-later

set -e

# Clean up libglib2.0-0:*.postrm, so that when libglib2.0-0 is purged, it
# will not delete non-dpkg-managed files that have been taken over by
# libglib2.0-0t64, most problematically
# /usr/share/glib-2.0/schemas/gschemas.compiled.
# See https://bugs.debian.org/1065022, https://bugs.debian.org/1065170.
# TODO: When, if ever, can we safely remove this?
case "$1" in
    (install|upgrade)
        # Do this cleanup on upgrade from any version older than the one that
        # addressed #1110696.
        #
        # We also need to do this cleanup on new installations of
        # libglib2.0-0t64 (because any new installation might be replacing
        # libglib2.0-0) so treat an empty version as being arbitrarily old.
        if dpkg --compare-versions "${2:-}" lt "2.84.4-2~"
        then
            # If there are several multiarch instances, they might have been
            # removed but not purged, in which case purging them (perhaps
            # much later, and perhaps without installing libglib2.0-0t64 of
            # the corresponding architecture) would still remove
            # /usr/share/glib-2.0/schemas/gschemas.compiled; so instead of
            # only doing this cleanup for the current architecture, we attempt
            # to clean up all multiarch instances the first time any single
            # instance is installed or upgraded.
            # This originally used $(dpkg --print-architecture) and
            # $(dpkg --print-foreign-architectures), but it is possible for
            # libglib2.0-0:i386 to still exist in removed-but-not-purged
            # state after an i386 foreign architecture has been disabled:
            # see #1110696.
            for arch in $(dpkg-query -W -f '${Architecture}\n' libglib2.0-0 2>/dev/null || true)
            do
                if old_postrm=$(dpkg-query --control-path "libglib2.0-0:$arch" postrm 2>/dev/null) \
                    && [ -n "$old_postrm" ] \
                    && [ -e "$old_postrm" ]
                then
                    echo "libglib2.0-0t64.preinst: Removing $old_postrm to avoid" \
                        "loss of /usr/share/glib-2.0/schemas/gschemas.compiled..."
                    rm -f -v "$old_postrm"
                fi
            done
        fi
        ;;
esac



# vim:set sw=4 sts=4 et: