[Pkg-haskell-maintainers] Bug#711596: hoogle: postinst uses /usr/share/doc content (Policy 12.3)

Colin Watson cjwatson at debian.org
Mon Jun 17 01:06:28 UTC 2013

On Sat, Jun 08, 2013 at 11:04:46AM +0200, Andreas Beckmann wrote:
> a test with piuparts revealed that your package uses files from
> /usr/share/doc in its maintainer scripts which is a violation of
> Policy 12.3: "Packages must not require the existence of any files in
> /usr/share/doc/ in order to function."
> http://www.debian.org/doc/debian-policy/ch-docs.html#s12.3
> These files must be moved to /usr/share/$PACKAGE and may be symlinked
> from /usr/share/doc/$PACKAGE.
> This piuparts test prevents the installation of (most) files into
> /usr/share/doc with 'dpkg --path-exclude=...'.
> >>From the attached log (scroll to the bottom...):
>   Selecting previously unselected package hoogle.
>   (Reading database ... 14544 files and directories currently installed.)
>   Unpacking hoogle (from .../hoogle_4.2.16-2+b2_amd64.deb) ...
>   Setting up hoogle (4.2.16-2+b2) ...
>   Starting keyword
>   hoogle: download/keyword.txt: hGetContents: invalid argument (invalid byte sequence)
>   Converting databases......................... done
>   Combining 1 databases
>   hoogle: *.hoo: openFile: does not exist (No such file or directory)
>   dpkg: error processing hoogle (--configure):
>    subprocess installed post-installation script returned error exit status 1
>   Errors were encountered while processing:
>    hoogle

I'm not sure that moving the documentation to /usr/lib/ghc-doc/ (where
the symlinks currently reside; ignoring the /usr/lib/ vs. /usr/share/
question) and symlinking from /usr/share/doc/ would really be the right
way to fix this.  People stripping /usr/share/doc/ probably don't want
documentation and are not all that bothered about a few dangling

Noting the "invalid byte sequence" error visible in this log, there are
two other ways to make this minimally work such that the postinst
succeeds.  Making the keyword database exist is enough.  keyword.txt
contains a single character not in ASCII, namely a zero-width space
(U+200B) on line 260.  We could remove or replace that character; I'm
not sure that's sensible.  Or we could run update-hoogle in the C.UTF-8
locale, which these days is in libc-bin and therefore guaranteed to
exist.  I'd lean towards that second option.  Anyone else?

Colin Watson                                       [cjwatson at debian.org]

More information about the Pkg-haskell-maintainers mailing list