[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: lintian .packlist warning and debian/rules modification



On Sun, Sep 09, 2007 at 07:40:28PM +0200, Jeremiah Foster wrote:
> I ran debuilder with lintian and received this output (amongst other 
> messages)
>
> E: libhtml-treebuilder-xpath-perl: package-installs-packlist 
> usr/lib/perl5/auto/HTML/TreeBuilder/XPath/.packlist
> N:
> N:   Packages built using the perl MakeMaker package will have a file named
> N:   .packlist in them. Those files are useless, and (in some cases) have
> N:   the additional problem of creating an architecture-specific directory
> N:   name in an architecture-independent package.
> N:
> N:   They can be suppressed by adding the following to debian/rules:
> N:
> N:   find debian/tmp -type f -name .packlist | xargs rm -f
> N:
> N:   -find debian/tmp/usr/lib/perl5 -type d -empty | xargs rmdir -p
> N:
> N:   Or by telling MakeMaker to use vendor install dirs; consult a recent
> N:   version of perl policy. Perl 5.6.0-12 or higher supports this.

> Below is an example of the output I would receive:
>
> <snip>
>
> find debian/tmp -type f -name .packlist | xargs -r rm -f
> find: debian/tmp: No such file or directory
> find debian/tmp -type d -empty | xargs -r rmdir -p
> find: debian/tmp: No such file or directory
>
> <snip>
>
> What I did to finally get rid of this error was to change the command to 
> this:
>
>         # remove .packlist files inserted by MakeMaker
>         find . -type f -name .packlist | xargs -r rm -f

> I changed the directories find looks in because of the error message from 
> find saying: "No such file or directory" even though the .packlist file 
> existed. (I think that the directory debian/tmp was not being created.)
Hi,

The debhelper tools (dh_install) used to use debian/tmp but now
(depending on DH_COMPAT) use debian/$package.  So this is a small-ish
lintian bug.

You should probably do find ./debian/ instead of find . to avoid
removing files from ./ except from ./debian/.. since a strict reading
of policy requires that after the "clean" rule is run you have to end
up in the same state as immediately after dpkg -x $dsc.

Justin



Reply to: