Bug#770004: dpkg-maintscript-helper: dir_to_symlink fails when upgrading package that has gone from arch:any to arch:all

Guillem Jover guillem at debian.org
Tue Nov 18 11:24:12 UTC 2014


Control: reassign -1 cyrus-imapd-2.4
Control: retitle -1 cyrus-imapd-2.4: Insuficient arguments passed to dpkg-maintscript-helper
Control: severity -1 serious

On Tue, 2014-11-18 at 08:20:36 +0100, Ondřej Surý wrote:
> Package: dpkg
> Version: 1.17.21
> Severity: grave
> File: /usr/bin/dpkg-maintscript-helper

(BTW, if this had been an issue in dpkg, then it would not have been
grave, as it would not break unrelated software, just the one currently
being acted on.)

> dpkg-maintscript-helper fails to find the package files when using
> dir_to_symlink (and probably vice versa) and upgrading from arch:any
> to arch:all at the same time.

dpkg-maintscript-helper only does what it is told. In this case the
packaging has not specified a package name (with the required
arch-qualifier) to the dpkg-maintscript-helper call, so it cannot
infer that you are doing an arch switch. Please read the man page for
the command for more details.

> The bug manifests in libcyrus-imap-perl24 upgrade from wheezy to
> jessie (filled as #769553):
> 
> > Preparing to unpack .../libcyrus-imap-perl24_2.4.17+caldav~beta10-7_all.deb ...
> > dpkg-query: no packages found matching libcyrus-imap-perl24:all
[…]

> But I can reproduce this with any transitional package from
> src:cyrus-imapd-2.4 (anything with -2.4 suffix except
> cyrus-common-2.4), f.e.:
> 
> > Preparing to unpack .../cyrus-clients-2.4_2.4.17+caldav~beta10-7_all.deb ...
> > dpkg-query: no packages found matching cyrus-clients-2.4:all
[…]

,---
$ grep . debian/*.maintscript
debian/cyrus-admin-2.4.maintscript:dir_to_symlink /usr/share/doc/cyrus-admin-2.4 /usr/share/doc/cyrus-common-2.4 2.4.17+caldav~beta10-7~
debian/cyrus-admin.maintscript:symlink_to_dir /usr/share/doc/cyrus-admin /usr/share/doc/cyrus-common-2.4 2.4.17+caldav~beta10-3~
debian/cyrus-caldav-2.4.maintscript:dir_to_symlink /usr/share/doc/cyrus-caldav-2.4 /usr/share/doc/cyrus-common-2.4 2.4.17+caldav~beta10-7~
debian/cyrus-clients-2.4.maintscript:dir_to_symlink /usr/share/doc/cyrus-clients-2.4 /usr/share/doc/cyrus-common-2.4 2.4.17+caldav~beta10-7~
debian/cyrus-clients.maintscript:symlink_to_dir /usr/share/doc/cyrus-clients /usr/share/doc/cyrus-common-2.4 2.4.17+caldav~beta10-3~
debian/cyrus-common.maintscript:mv_conffile /etc/logcheck/violations.ignore.d/cyrus-common-2_4 /etc/logcheck/violations.ignore.d/cyrus-common 2.4.17+caldav~beta10-3~
debian/cyrus-dev-2.4.maintscript:dir_to_symlink /usr/share/doc/cyrus-dev-2.4 /usr/share/doc/cyrus-common-2.4 2.4.17+caldav~beta10-7~
debian/cyrus-doc-2.4.maintscript:dir_to_symlink /usr/share/doc/cyrus-doc-2.4 /usr/share/doc/cyrus-common-2.4 2.4.17+caldav~beta10-7~
debian/cyrus-imapd-2.4.maintscript:dir_to_symlink /usr/share/doc/cyrus-imapd-2.4 /usr/share/doc/cyrus-common-2.4 2.4.17+caldav~beta10-7~
debian/cyrus-murder-2.4.maintscript:dir_to_symlink /usr/share/doc/cyrus-murder-2.4 /usr/share/doc/cyrus-common-2.4 2.4.17+caldav~beta10-7~
debian/cyrus-nntpd-2.4.maintscript:dir_to_symlink /usr/share/doc/cyrus-nntpd-2.4 /usr/share/doc/cyrus-common-2.4 2.4.17+caldav~beta10-7~
debian/cyrus-pop3d-2.4.maintscript:dir_to_symlink /usr/share/doc/cyrus-pop3d-2.4 /usr/share/doc/cyrus-common-2.4 2.4.17+caldav~beta10-7~
debian/cyrus-replication-2.4.maintscript:dir_to_symlink /usr/share/doc/cyrus-replication-2.4 /usr/share/doc/cyrus-common-2.4 2.4.17+caldav~beta10-7~
debian/libcyrus-imap-perl.maintscript:symlink_to_dir /usr/share/doc/libcyrus-imap-perl /usr/share/doc/cyrus-common-2.4 2.4.17+caldav~beta10-3~
debian/libcyrus-imap-perl24.maintscript:dir_to_symlink /usr/share/doc/libcyrus-imap-perl24 /usr/share/doc/cyrus-common-2.4 2.4.17+caldav~beta10-7~
`---

What I've not checked is if debhelper can pass different arguments
depending on the maintainer script invoked, which _might_ be required
here, but I've not thought about it. Because then you'd probably need
to call dpkg-maintscript-helper manually.

In any case, definitely a bug in the packaging, and as such reassigning.

Thanks,
Guillem



More information about the Pkg-Cyrus-imapd-Debian-devel mailing list