HTML-Parser-3.56 build problem

HTML-Parser-3.56 build problem

am 06.02.2007 10:32:54 von David Ball

I have an RHEL3 machine and it gets the following error each night
when WHM/CPanel tries to build the CPAN module HTML-Parser-3.56

-- David

CPAN.pm: Going to build G/GA/GAAS/HTML-Parser-3.56.tar.gz

Checking if your kit is complete...
Looks good
Writing Makefile for HTML::Parser
cp lib/HTML/PullParser.pm blib/lib/HTML/PullParser.pm
cp Parser.pm blib/lib/HTML/Parser.pm
cp lib/HTML/Entities.pm blib/lib/HTML/Entities.pm
cp lib/HTML/TokeParser.pm blib/lib/HTML/TokeParser.pm
cp lib/HTML/LinkExtor.pm blib/lib/HTML/LinkExtor.pm
cp lib/HTML/Filter.pm blib/lib/HTML/Filter.pm
cp lib/HTML/HeadParser.pm blib/lib/HTML/HeadParser.pm
/usr/bin/perl /usr/lib/perl5/5.8.0/ExtUtils/xsubpp -typemap
/usr/lib/perl5/5.8.0/ExtUtils/typemap -typemap typemap Parser.xs >
Parser.xsc && mv Parser.xsc Parser.c
/usr/bin/perl mkhctype >hctype.h
/usr/bin/perl mkpfunc >pfunc.h
gcc -c -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING
-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -march=i386
-mcpu=i686 -DVERSION=\"3.56\" -DXS_VERSION=\"3.56\" -fPIC
"-I/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE"
-DMARKED_SECTION Parser.c
Parser.xs: In function `dup_pstate':
Parser.xs:290: `CLONEf_JOIN_IN' undeclared (first use in this
function)
Parser.xs:290: (Each undeclared identifier is reported only once
Parser.xs:290: for each function it appears in.)
make: *** [Parser.o] Error 1

/usr/bin/make -- NOT OK
Running make install
make had returned bad status, install seems impossible
HTML::HeadParser is up to date (2.22).
LWP is up to date (5.805).
Bundle summary: The following items in bundle Bundle::LWP had
installation
problems:
HTML::Parser

Re: HTML-Parser-3.56 build problem

am 06.02.2007 15:43:26 von Sisyphus

"David Ball" wrote in message
news:0eigs2p3mf2cfbs0mk0vqpr2gcb0v789l7@4ax.com...
..
..
> Parser.xs: In function `dup_pstate':
> Parser.xs:290: `CLONEf_JOIN_IN' undeclared (first use in this
> function)
> Parser.xs:290: (Each undeclared identifier is reported only once
> Parser.xs:290: for each function it appears in.)
> make: *** [Parser.o] Error 1
>

With perl 5.8.8 'CLONEf_JOIN_IN' is defined in sv.h - so there's no problem.
However, with perl 5.8.0 (which it seems you have), that definition doesn't
exist - which means that, inevitably, you get the error you've reported.

One solution is to upgrade your perl to 5.8.8.

Another solution is to install an older version of HTML::Parser. (Not sure
how far back you'd have to go - it's quite likely that the previous version
would be fine.)

Or you could just replace (in Parser.xs):

if (params->flags ) & CLONEf_JOIN_IN) {
with:
if (params->flags ) {

The t\threads.t test script will probably fail (which is what happened for
me, on Win32) - and there may be other gotchas as well. But I think it's
more'n'likely that you'll have no problems running HTML::Parser-3.56 on perl
5.8.0 - unless you start using the module in a threaded environment.

Cheers,
Rob

Re: HTML-Parser-3.56 build problem

am 07.02.2007 16:37:39 von David Ball

On Wed, 7 Feb 2007 01:43:26 +1100, "Sisyphus"
wrote:


>With perl 5.8.8 'CLONEf_JOIN_IN' is defined in sv.h - so there's no problem.
>However, with perl 5.8.0 (which it seems you have), that definition doesn't
>exist - which means that, inevitably, you get the error you've reported.
>
>One solution is to upgrade your perl to 5.8.8.

I'm on Redhat Enterprise Linux 3 (RHEL3) and WHM/CPanel. I'm not sure
where the version of perl comes from. It could be from RedHat, who
backports fixes to the version that was stable when RHEL3 was
released. RHEL3 has a 5 year support lifecycle, IIRC. It could also
have been compiled from the security company that admins my server.
CPanel might have loaded a custom version as well. There are several
parts of Linux that CPanel changes. For instance it uses Apache
1.something .

>
>Another solution is to install an older version of HTML::Parser. (Not sure
>how far back you'd have to go - it's quite likely that the previous version
>would be fine.)

It had an older version, afaik. For some reason CPanel is trying to
update it. I've had problems like this in the past with other modules
and it has always taken a while to get it straightened out.


>Or you could just replace (in Parser.xs):
>
>if (params->flags ) & CLONEf_JOIN_IN) {
>with:
>if (params->flags ) {
>
>The t\threads.t test script will probably fail (which is what happened for
>me, on Win32) - and there may be other gotchas as well. But I think it's
>more'n'likely that you'll have no problems running HTML::Parser-3.56 on perl
>5.8.0 - unless you start using the module in a threaded environment.

I'm not sure how the windows version would differ from Linux.

Thanks for the info.

-- David