Problem with File::Tem (p5-ExtUtils-CBuilder/gcc and some
others)
olli hauer
ohauer at gmx.de
Tue Mar 1 09:43:58 UTC 2011
On 2011-02-28 16:21, freebsd at tern.ru wrote:
>
> Hello Perl Team.
>
> I faced a bug ("feature") in File::Temp that prevents use of
> p5-ExtUtils-CBuilder-0.2802_1,1 and, as a result, build and install of
> such packages like p5-Params-Validate-0.95_3, p5-DateTime-0.66,
> p5-XML-Parser-2.40, p5-IPC-ShareLite-0.17
>
> When I tried building the above packages I received different kinds of
> errors stating that I do not have CBuilder and/or gcc and can't create
> temp file.
>
> After a lot of investigation I finally found that the problem is in
> NFS that hosts my ports tree.
>
> As I've understood, test code tries to create temporary file for test
> compile. temp file is created with routine in File::Temp that tries
> to set some FS flags/locks that do not work on NFS. Although zero
> sized temp files are created successfully (but without the
> required flags) the routine fails and as a result compile of test
> file also fails. Build stops and empty temp file is left after each
> build attempt.
>
> I have
> FreeBSD 7.4-PRERELEASE #2: Tue Feb 1 17:50:19 MSK 2011 i386
> perl 5.8.9_4
> p5-ExtUtils-CBuilder-0.2802_1,1
>
> FreeBSD Ports site states that p5-ExtUtils-CBuilder-0.2802_1,1
> requires perl-5.10.1_3l but actual port build does not state this and
> tries to use perl 5.8.9 that I have.
>
> If the above behavior is expectable it would be great to have some
> corresponding info published, as I spent vast of time looking for the
> problem of gcc/CBuilder in Internet but found nothing relevant.
>
> PS. Work around - to copy the problem port directory localy (e.g. to
> /tmp)
I suggest the following entry in your /etc/make.conf, since this
workaround is not practicable if the ports tree is shared read only.
WRKDIRPREFIX?= /space/portbuild
This way you have some benefits.
- you can mount the portstree read only
- defined space for building and cleanup (not in the directory of the port)
- quick cleanup with rm -rf /space/portbuild
- you can mount a ramdisk or tmpfs to the directory
( mount -t tmpfs tmpfs /space/portbuild)
...
More information about the freebsd-perl
mailing list