Package: debhelper
Version: 13.3.4
Severity: normal

Hello,

in #929165 Hideki wanted to use rm_conffile to remove junk from earlier
versions, notably files containing spaces and wildcards in their name:
 ./etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cloud-archive, 
ubuntu-cloud-removed-keys.gpg
 ./etc/apt/trusted.gpg.d/ubuntu-keyring-2016-dbgsym.gpg, *

Which would be straightforward enough, adding debian/maintscript with
these contents (using "hello" as package name for demonstration
purposes):
rm_conffile '/etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cloud-archive, 
ubuntu-cloud-removed-keys.gpg' '2.10-2.2~' 'hello'
rm_conffile '/etc/apt/trusted.gpg.d/ubuntu-keyring-2016-dbgsym.gpg, *' 
'2.10-2.2~' 'hello'

Which works perfectly well with ancient (DH 9 compat level) but throws
an error with compat level 13:
-----------
(sid)ametzler@argenau:/tmp/HELLODH13/hello-2.10$ dh_installdeb --no-act 
--verbose
dh_installdeb: error: The current conffile path for rm_conffile must be present 
and absolute, got '/etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cloud-archive,
-----------

Looking at /usr/bin/dh_installdeb one finds a check for a literal "/" as
leading character of the first argument of rm_conffile. Just for the fun
of it, I have try escaping instead of quoting, but the check splits on
space.
------------
(sid)ametzler@argenau:/tmp/HELLODH13/hello-2.10$ cat debian/hello.maintscript
rm_conffile /etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cloud-archive,\ 
ubuntu-cloud-removed-keys.gpg '2.10-2.2~' 'hello'
rm_conffile /etc/apt/trusted.gpg.d/ubuntu-keyring-2016-dbgsym.gpg,\ \* 
'2.10-2.2~' 'hello'
(sid)ametzler@argenau:/tmp/HELLODH13/hello-2.10$ dh_installdeb --no-act 
--verbose
dh_installdeb: error: The version for rm_conffile 
/etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cloud-archive,\ is not valid, got 
ubuntu-cloud-removed-keys.gpg
------------

cu Andreas

Reply via email to