Hi!

On Thu, 2012-07-12 at 19:48:50 +0200, Matthias Klose wrote:
> Package: dpkg
> Version: 1.16.7
> Severity: normal

> For a Multi-Arch same package, which contains .py files which are 
> byte-compiled
> in the postinst, and the byte code is removed in the preinst, it is necessary 
> to
> know how many "copies" of the package are installed, so that the byte code is
> only compiled after the first package is installed, and only removed if the 
> last
> package is removed. This can be done using

(As I've mentioned on debian-devel, I don't think a fully multiarch
enabled python is currently a good idea, but that's besides this bug
report.)

> if [ $(dpkg-query -W '<pkg>:*' 2>/dev/null | wc -l) -le 1 ]; then
>    ... byte code compilation
> fi
> 
> if [ $(dpkg-query -W '<pkg>:*' 2>/dev/null | wc -l) -le 1 ]; then
>    ... byte code removal
> fi

This is not right, and will not take into account dpkg selections.
A correct way to currently compute the present instances could be:

  dpkg-query -f '${db:Status-Abbrev} ${binary:Package}\n' -W pkgname | \
    grep -v '^.n' | wc -l

> It would be better to have this package reference count availabe in the
> environment when running the maintainer scripts.

Yes, this seems like a good idea, I'll queue a patch for 1.17.x.

Thanks,
Guillem


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to