Package: dpkg
Version: 1.19.7
Severity: normal
It would be nice to clarify the behavior of
dpkg-maintscript-helper/dir_to_symlink with regards to created
symlinks upon purge operation.
Consider the following maint-script:
% cat debian/libcharls-dev.maintscript
dir_to_symlink /usr/include/CharLS /usr/include/charls 2.1.0+dfsg-5~
libcharls-dev
On Debian/stable (buster), here is what I get:
% apt policy libcharls-dev
libcharls-dev:
Installed: 2.0.0+dfsg-1
Candidate: 2.0.0+dfsg-1
Version table:
*** 2.0.0+dfsg-1 500
500 http://deb.debian.org/debian buster/main amd64 Packages
100 /var/lib/dpkg/status
% test -d /usr/include/CharLS && echo "directory found"
directory found
% sudo dpkg -i libcharls2_2.1.0+dfsg-6_amd64.deb
libcharls-dev_2.1.0+dfsg-6_amd64.deb
(Reading database ... 371484 files and directories currently installed.)
Preparing to unpack libcharls2_2.1.0+dfsg-6_amd64.deb ...
Unpacking libcharls2:amd64 (2.1.0+dfsg-6) over (2.0.0+dfsg-1) ...
Preparing to unpack libcharls-dev_2.1.0+dfsg-6_amd64.deb ...
Unpacking libcharls-dev:amd64 (2.1.0+dfsg-6) over (2.0.0+dfsg-1) ...
dpkg: warning: unable to delete old directory '/usr/include/CharLS':
Directory not empty
Setting up libcharls2:amd64 (2.1.0+dfsg-6) ...
Setting up libcharls-dev:amd64 (2.1.0+dfsg-6) ...
Processing triggers for libc-bin (2.28-10) ...
% test -d /usr/include/CharLS && echo "symlink found"
symlink found
% sudo dpkg --purge libcharls-dev
(Reading database ... 371491 files and directories currently installed.)
Removing libcharls-dev:amd64 (2.1.0+dfsg-6) ...
Purging configuration files for libcharls-dev:amd64 (2.1.0+dfsg-6) ...
% stat /usr/include/CharLS
File: /usr/include/CharLS -> /usr/include/charls
Size: 19 Blocks: 0 IO Block: 4096 symbolic link
Device: 801h/2049d Inode: 14441835 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2020-11-09 14:12:01.145201266 +0100
Modify: 2020-11-09 14:11:55.881205308 +0100
Change: 2020-11-09 14:11:55.881205308 +0100
Birth: -
% test -L /usr/include/CharLS && echo "symlink found"
symlink found