Re: Bug#533934: pperl: FTBFS: tests failed directory
[CCing debian-perl since pperl is in the process of being adopted]
On Mon, May 02, 2011 at 12:13:01PM +0100, Dominic Hargreaves wrote:
> severity 533934 serious
> block 619117 by 533934
> On Tue, Jul 28, 2009 at 05:27:46PM +0200, Tim Retout wrote:
> > This is a copy of an earlier bug which got assigned to sbuild. It
> > doesn't affect the buildds or many users, as I understand it... We
> > should fix it, but it's not RC.
> It is now affecting the buildds, so I'm raising the severity of this.
This bug is caused by the fact that pperl names its socket files based
on the full path of the perl program being run under pperl, and there
is a fairly short limit on the full path of the socket (sun_path in
struct sockaddr_un from sys/un.h, 108 characters). The socket name is
being silently truncated on creation.
I can work around this by using mktemp -d to create a directory in /tmp
and use that as the value of PPERL_TMP_PATH, but this is a pretty nasty
workaround given that the idea of the patch was to stop using /tmp.
I can't find anthing in policy which says explicitly that one shouldn't
use /tmp during package builds, though.
I'm not a suitably experienced C programmer to come up with a good fix
in pperl itself easily. One option might be to compare the path of the
script being run with the socket directory, and strip out any common
path effectively turning it into a relative name. There are probably
other better fixes too.
Dominic Hargreaves | http://www.larted.org.uk/~dom/
PGP key 5178E2A5 from the.earth.li (keyserver,web,email)