Control: retitle -1 libglib2.0-dev: /usr/share/glib-2.0/gdb/*.pyc not removed 
if created
Control: severity -1 minor
Control: tags -1 + pending

On Fri, 30 Apr 2021 at 02:42:34 +0200, Christoph Anton Mitterer wrote:
> Upon [purging libglib2.0-dev] there were some leftovers:
>
> Removing libglib2.0-dev:amd64 (2.66.8-1) ...
> dpkg: warning: while removing libglib2.0-dev:amd64, directory 
> '/usr/share/glib-2.0/gdb' not empty so not removed
> 
>  l /usr/share/glib-2.0/gdb/
> total 25k
> drwxr-xr-x 1 root root   38 Apr 30 00:44 .
> drwxr-xr-x 1 root root   76 Apr 30 00:44 ..
> -rw-r--r-- 1 root root 9,8k May 31  2015 glib.pyc
> -rw-r--r-- 1 root root  11k May 31  2015 gobject.pyc

Normally this does not happen:

    $ podman run --rm -it debian:sid-slim
    # apt update
    ...
    # apt upgrade
    ...
    # apt install libglib2.0-dev
    ...
    # apt purge libglib2.0-dev
    ...
    Removing libglib2.0-dev:amd64 (2.82.0-1) ...
    Processing triggers for libglib2.0-0t64:amd64 (2.82.0-1) ...
    No schema files found: doing nothing.
    # apt autoremove --purge
    (no warnings about /usr/share/glib-2.0/gdb here either)

I believe the root cause for you having seen this warning is that
you have run gdb *as root* to debug a program that uses GLib, which
results in /usr/share/glib-2.0/gdb/*.py being byte-compiled as a
side-effect. Normally, if you run gdb as an unprivileged user, this does
not happen, because the unprivileged user doesn't have write access to
/usr/share/glib-2.0/gdb. A reproducer:

    $ podman run --rm -it debian:sid-slim
    # apt update
    ...
    # apt upgrade
    ...
    # apt install libglib2.0-dev gdb
    ...
    # gdb --args gio cat /dev/null
    ...
    (gdb) run
    (gdb) exit
    # apt purge libglib2.0-dev
    ...
    Removing libglib2.0-dev:amd64 (2.82.0-1) ...
    dpkg: warning: while removing libglib2.0-dev:amd64, directory 
'/usr/share/glib-2.0/gdb' not empty so not removed

I believe this can be resolved by migrating /usr/share/glib-2.0/gdb into
libglib2.0-dev-bin or libgio-2.0-dev-bin package, and registering its
contents with dh_python.

    smcv

Reply via email to