Skip Menu |

This queue is for tickets about the Mail-IMAPClient CPAN distribution.

Report information
The Basics
Id: 2898
Status: resolved
Priority: 0/
Queue: Mail-IMAPClient

People
Owner: DJKERNEN__NO_SOLICITING__ [...] cpan.org
Requestors: at [...] atat.at
J.Sobczyk [...] ia.pw.edu.pl
jking [...] handmark.com
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Date: Fri, 04 Jul 2003 00:32:29 -0500
From: Jerry King <jking [...] handmark.com>
To: <bug-Mail-IMAPClient [...] rt.cpan.org>
Subject: Mail::IMAPClient::BodyStructure -- "make test " error
Hello, I was wondering if the Mail::IMAPClient::BodyStructure module has ever been successfully installed on perl 5.8.0? I have been able to install this module on perl 5.6.0 (RedHat Linux 7.2) but not on perl 5.8.0 (RedHat Linux 8.0 and RedHat Linux 9.0). If I am unable to use the Mail::IMAPClient::BodyStructure module to read the email message and attachments, is there another way to just use the Mail::IMAPClient to achieve the same functionality? The Mail::IMAPClient module installs successfully. Please see error below. Thanks in advance, Jerry King Handmark, Inc. When I run the "make test", I get the following error: make[1]: Leaving directory `/home/hmadm/Mail-IMAPClient-2.2.7/MessageSet' make[1]: Entering directory `/home/hmadm/Mail-IMAPClient-2.2.7/BodyStructure' make[2]: Entering directory `/home/hmadm/Mail-IMAPClient-2.2.7/BodyStructure/Parse' make[2]: Leaving directory `/home/hmadm/Mail-IMAPClient-2.2.7/BodyStructure/Parse' PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, '../blib/lib', '../blib/arch')" t/*.t t/bodystructure....ok 1/8Can't call method "bodytype" on an undefined value at t/bodystructure.t line 21. t/bodystructure....dubious Test returned status 29 (wstat 7424, 0x1d00) DIED. FAILED tests 2-8 Failed 7/8 tests, 12.50% okay Failed Test Stat Wstat Total Fail Failed List of Failed ------------------------------------------------------------------------------- t/bodystructure.t 29 7424 8 7 87.50% 2-8 Failed 1/1 test scripts, 0.00% okay. 7/8 subtests failed, 12.50% okay. make[1]: *** [test_dynamic] Error 2 make[1]: Leaving directory `/home/hmadm/Mail-IMAPClient-2.2.7/BodyStructure' make: *** [test] Error 2
Date: Wed, 16 Jul 2003 02:44:05 +0200
From: Jerzy Sobczyk <J.Sobczyk [...] ia.pw.edu.pl>
To: bug-Mail-IMAPClient [...] rt.cpan.org
Subject: Mail::IMAPClinet does not build
Hello! I am trying to build Mail::IMAPClinet module with no success :-( The machine is: # uname -a SunOS elektron 5.8 Generic_108528-04 sun4u sparc SUNW,Ultra-2 The Perl version is: # perl -v This is perl, v5.8.0 built for sun4-solaris I have installed module Parse::RecDescent version 1.94 with full success. But when I am trying to install Mail::IMAPClient version 2.2.8 I get an error: # perl -MCPAN -e shell install Mail::IMAPClient ........................... CPAN.pm: Going to build D/DJ/DJKERNEN/Mail-IMAPClient-2.2.8.tar.gz Checking if your kit is complete... Looks good Writing Makefile for Mail::IMAPClient::MessageSet Writing Makefile for Mail::IMAPClient::Parse Writing Makefile for Mail::IMAPClient::BodyStructure Writing Makefile for Mail::IMAPClient::Thread Writing Makefile for Mail::IMAPClient You have the option of running an extended suite of tests during 'make test'. This requires an IMAP server name, user account, and password to test with. Do you want to run the extended tests? (n/y) ==> n cp IMAPClient.pod blib/lib/Mail/IMAPClient.pod cp IMAPClient.pm blib/lib/Mail/IMAPClient.pm cp MessageSet.pm ../blib/lib/Mail/IMAPClient/MessageSet.pm Manifying ../blib/man3/Mail::IMAPClient::MessageSet.3 cp BodyStructure.pm ../blib/lib/Mail/IMAPClient/BodyStructure.pm precompiling grammar from file 'Parse.grammar' to class Mail::IMAPClient::BodyStructure::Parse in module file 'Parse.pm' cp Parse.pm ../../blib/lib/Mail/IMAPClient/BodyStructure/Parse.pm Manifying ../../blib/man3/Mail::IMAPClient::Parse.3 Manifying ../blib/man3/Mail::IMAPClient::BodyStructure.3 precompiling grammar from file 'Thread.grammar' to class Mail::IMAPClient::Thread in module file 'Thread.pm' cp Thread.pm ../blib/lib/Mail/IMAPClient/Thread.pm Manifying ../blib/man3/Mail::IMAPClient::Thread.3 Manifying blib/man3/Mail::IMAPClient.3 /usr/ccs/bin/make -- OK Running make test PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/basic.......ok t/cram-md5....ok t/fast_io.....ok t/ranges......ok t/uidfast.....ok t/uidplus.....ok All tests successful. Files=6, Tests=6, 9 wallclock secs ( 7.75 cusr + 0.87 csys = 8.62 CPU) PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, '../blib/lib', '../blib/arch')" t/*.t t/range....ok All tests successful. Files=1, Tests=7, 0 wallclock secs ( 0.16 cusr + 0.02 csys = 0.18 CPU) PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, '../blib/lib', '../blib/arch')" t/*.t t/bodystructure....ok 1/8Can't call method "bodytype" on an undefined value at t/bodystructure.t line 21. t/bodystructure....dubious Test returned status 255 (wstat 65280, 0xff00) DIED. FAILED tests 2-8 Failed 7/8 tests, 12.50% okay Failed Test Stat Wstat Total Fail Failed List of Failed ------------------------------------------------------------------------------- t/bodystructure.t 255 65280 8 7 87.50% 2-8 Failed 1/1 test scripts, 0.00% okay. 7/8 subtests failed, 12.50% okay. *** Error code 2 make: Fatal error: Command failed for target `test_dynamic' Current working directory /public/root/.cpan/build/Mail-IMAPClient-2.2.8/BodyStructure *** Error code 1 make: Fatal error: Command failed for target `test' /usr/ccs/bin/make test -- NOT OK Running make install make test had returned bad status, won't install without force Show quoted text
cpan>
I have tried to use different versions of Parse::RecDescent module back to 1.90 with the same results (with version 1.80 "make test" also failed but with slightly different messages). I have tried to use older Mail::IMAPClient modules back to 2.2.6 with the same result. I also tried to do the same on totaly different system: # uname -a Linux mylinux 2.4.18 #7 Fri Jan 10 02:02:33 CET 2003 i686 unknown unknown GNU/Linux with older Perl: # perl -v This is perl, v5.6.1 built for i386-linux and I have got the same results :-( After droping an eye into the code it seems to me as some incompatybility between Parse::RecDescent and Mail::IMAPClient since the later module gets nothing from the call (file BodyStructure.pm line 25): my $self = $parser->start($bodystructure) or return undef; I did not dived deeply enough to see what actually happens. And one more observation from CPAN server: Parse-RecDescent-1.78.readme 19-Mar-2000 17:03 3.1K Parse-RecDescent-1.78.tar.gz 19-Mar-2000 17:08 135K Parse-RecDescent-1.79.readme 20-Aug-2000 18:27 3.0K Parse-RecDescent-1.79.tar.gz 20-Aug-2000 18:32 137K Parse-RecDescent-1.80.readme 19-Jan-2001 10:02 2.6K Parse-RecDescent-1.80.tar.gz 19-Jan-2001 10:06 139K Parse-RecDescent-1.90.readme 24-Mar-2003 17:17 3.9K Parse-RecDescent-1.90.tar.gz 24-Mar-2003 17:23 154K Parse-RecDescent-1.91.readme 28-Mar-2003 15:20 2.5K Parse-RecDescent-1.91.tar.gz 28-Mar-2003 16:28 154K Parse-RecDescent-1.92.readme 01-Apr-2003 20:45 2.5K Parse-RecDescent-1.92.tar.gz 01-Apr-2003 20:49 124K Parse-RecDescent-1.93.readme 02-Apr-2003 14:25 2.5K Parse-RecDescent-1.93.tar.gz 02-Apr-2003 14:33 124K Parse-RecDescent-1.94.readme 09-Apr-2003 01:29 2.5K Parse-RecDescent-1.94.tar.gz 09-Apr-2003 01:55 124K Mail-IMAPClient-2.1.4.readme 04-May-2001 07:42 6.1K Mail-IMAPClient-2.1.4.tar.gz 23-Aug-2001 14:52 239K Mail-IMAPClient-2.2.2.readme 30-Aug-2002 13:47 6.5K Mail-IMAPClient-2.2.2.tar.gz 09-Sep-2002 13:27 325K Mail-IMAPClient-2.2.4.readme 30-Aug-2002 13:47 6.5K Mail-IMAPClient-2.2.4.tar.gz 27-Sep-2002 13:44 330K Mail-IMAPClient-2.2.5.readme 30-Aug-2002 13:47 6.5K Mail-IMAPClient-2.2.5.tar.gz 24-Oct-2002 07:00 336K Mail-IMAPClient-2.2.6.readme 30-Aug-2002 13:47 6.5K Mail-IMAPClient-2.2.6.tar.gz 16-Dec-2002 14:18 356K Mail-IMAPClient-2.2.7.readme 16-Dec-2002 14:17 6.5K Mail-IMAPClient-2.2.7.tar.gz 24-Jan-2003 13:10 357K Mail-IMAPClient-2.2.8.readme 16-Dec-2002 14:17 6.5K Mail-IMAPClient-2.2.8.tar.gz 12-Jun-2003 15:16 366K There is a big gap (two years) in dates of Parse::RecDescent between version 1.80 and 1.90 (and there is no version in between). It looks like a long period of stagnation and fast developement in March/April. Version 2.2.8 of the Mail::IMAPClinetis is newer but still incompatible. May be You have not upgraded Parse::RecDescent on your machine. And may be You have some intermediate version (between 1.80 and 1.90) of the module which actually works? ;-) So be carefull before upgrading to 1.94 - make a backup of what you have - it may be usefull for finding what has been changed. :-) OK You probably better know what to do. Anyway if You will need any more information, logs, tests or experiments on my machines, feel free to ask me. With best regards, Jerzy Sobczyk -- --------------------- Institute of Control and Computation Engineering ______ Jerzy Sobczyk Warsaw University of Technology /_/ | J.Sobczyk@ia.pw.edu.pl Nowowiejska 15/19 / / /| | http://www.ia.pw.edu.pl/~jurek 00-665 Warsaw, POLAND / / _>| | tel. +48 22 660 7863 ________________ fax. +48 22 8253719 ________ /_/_/ |_|
To: bug-Mail-IMAPClient [...] rt.cpan.org
From: imap [...] kernengroup.com
Subject: Re: [cpan #2962] Mail::IMAPClinet does not build
Date: Tue, 22 Jul 2003 14:38:17 -0700 (PDT)
RT-Send-Cc:
I have heard of this problem and thought it was fixed in the next release. Others who had this reported that if they erase Mail/IMAPClient/Parse.pm and rerun 'make' that this fixes the problem, which is caused by Parse.pm being run under a different version of Parse::RecDescent then where it was built. (Parse.pm is built at make time, if necessary, using Parse.grammer as input.) Hope this helps... Dave K. On Tue, 15 Jul 2003 20:44:29 -0400 (EDT), "Jerzy Sobczyk via RT" wrote: Show quoted text
> > > This message about Mail-IMAPClient was sent to you by > J.Sobczyk@ia.pw.edu.pl <J.Sobczyk@ia.pw.edu.pl> via > rt.cpan.org > > Full context and any attached attachments can be found > at: > <URL: https://rt.cpan.org/Ticket/Display.html?id=2962 > > > Hello! > > I am trying to build Mail::IMAPClinet module with no > success :-( > The machine is: > # uname -a > SunOS elektron 5.8 Generic_108528-04 sun4u sparc > SUNW,Ultra-2 > The Perl version is: > # perl -v > This is perl, v5.8.0 built for sun4-solaris > I have installed module Parse::RecDescent version 1.94 > with full success. > But when I am trying to install Mail::IMAPClient > version 2.2.8 I get an error: > # perl -MCPAN -e shell > install Mail::IMAPClient > ........................... > CPAN.pm: Going to build > D/DJ/DJKERNEN/Mail-IMAPClient-2.2.8.tar.gz > > Checking if your kit is complete... > Looks good > Writing Makefile for Mail::IMAPClient::MessageSet > Writing Makefile for Mail::IMAPClient::Parse > Writing Makefile for Mail::IMAPClient::BodyStructure > Writing Makefile for Mail::IMAPClient::Thread > Writing Makefile for Mail::IMAPClient > You have the option of running an extended suite of > tests during > 'make test'. This requires an IMAP server name, user > account, and password to test with. > > Do you want to run the extended tests? (n/y) ==> n > cp IMAPClient.pod blib/lib/Mail/IMAPClient.pod > cp IMAPClient.pm blib/lib/Mail/IMAPClient.pm > cp MessageSet.pm > ../blib/lib/Mail/IMAPClient/MessageSet.pm > Manifying ../blib/man3/Mail::IMAPClient::MessageSet.3 > cp BodyStructure.pm > ../blib/lib/Mail/IMAPClient/BodyStructure.pm > precompiling grammar from file 'Parse.grammar' > to class Mail::IMAPClient::BodyStructure::Parse in > module file 'Parse.pm' > cp Parse.pm > ../../blib/lib/Mail/IMAPClient/BodyStructure/Parse.pm > Manifying ../../blib/man3/Mail::IMAPClient::Parse.3 > Manifying > ../blib/man3/Mail::IMAPClient::BodyStructure.3 > precompiling grammar from file 'Thread.grammar' > to class Mail::IMAPClient::Thread in module file > 'Thread.pm' > cp Thread.pm ../blib/lib/Mail/IMAPClient/Thread.pm > Manifying ../blib/man3/Mail::IMAPClient::Thread.3 > Manifying blib/man3/Mail::IMAPClient.3 > /usr/ccs/bin/make -- OK > Running make test > PERL_DL_NONLAZY=1 /usr/bin/perl > "-MExtUtils::Command::MM" "-e" "test_harness(0, > 'blib/lib', 'blib/arch')" t/*.t > t/basic.......ok
Show quoted text
> > t/cram-md5....ok
Show quoted text
> > t/fast_io.....ok
Show quoted text
> > t/ranges......ok > t/uidfast.....ok
Show quoted text
> > t/uidplus.....ok
Show quoted text
> > All tests successful. > Files=6, Tests=6, 9 wallclock secs ( 7.75 cusr + > 0.87 csys = 8.62 CPU) > PERL_DL_NONLAZY=1 /usr/bin/perl > "-MExtUtils::Command::MM" "-e" "test_harness(0, > '../blib/lib', '../blib/arch')" t/*.t > t/range....ok
Show quoted text
> > All tests successful. > Files=1, Tests=7, 0 wallclock secs ( 0.16 cusr + > 0.02 csys = 0.18 CPU) > PERL_DL_NONLAZY=1 /usr/bin/perl > "-MExtUtils::Command::MM" "-e" "test_harness(0, > '../blib/lib', '../blib/arch')" t/*.t > t/bodystructure....ok 1/8Can't call method "bodytype" > on an undefined value at t/bodystructure.t line 21. > t/bodystructure....dubious
Show quoted text
> > Test returned status 255 (wstat 65280, 0xff00) > DIED. FAILED tests 2-8 > Failed 7/8 tests, 12.50% okay > Failed Test Stat Wstat Total Fail Failed List > of Failed >
------------------------------------------------------------------------------- Show quoted text
> t/bodystructure.t 255 65280 8 7 87.50% 2-8 > Failed 1/1 test scripts, 0.00% okay. 7/8 subtests > failed, 12.50% okay. > *** Error code 2 > make: Fatal error: Command failed for target > `test_dynamic' > Current working directory >
/public/root/.cpan/build/Mail-IMAPClient-2.2.8/BodyStructure Show quoted text
> *** Error code 1 > make: Fatal error: Command failed for target `test' > /usr/ccs/bin/make test -- NOT OK > Running make install > make test had returned bad status, won't install > without force >
> cpan>
> > I have tried to use different versions of > Parse::RecDescent > module back to 1.90 with the same results (with
version Show quoted text
> 1.80 > "make test" also failed but with slightly different > messages). > I have tried to use older Mail::IMAPClient > modules back to 2.2.6 with the same result. > > I also tried to do the same on totaly different
system: Show quoted text
> # uname -a > Linux mylinux 2.4.18 #7 Fri Jan 10 02:02:33 CET 2003 > i686 unknown unknown GNU/Linux > with older Perl: > # perl -v > > This is perl, v5.6.1 built for i386-linux > and I have got the same results :-( > > After droping an eye into the code it seems to me as > some incompatybility > between Parse::RecDescent and Mail::IMAPClient since > the later module > gets nothing from the call (file BodyStructure.pm line > 25): > my $self = > $parser->start($bodystructure) or return undef; > I did not dived deeply enough to see what actually > happens. > > And one more observation from CPAN server: > Parse-RecDescent-1.78.readme 19-Mar-2000 > 17:03 3.1K > Parse-RecDescent-1.78.tar.gz 19-Mar-2000 > 17:08 135K > Parse-RecDescent-1.79.readme 20-Aug-2000 > 18:27 3.0K > Parse-RecDescent-1.79.tar.gz 20-Aug-2000 > 18:32 137K > Parse-RecDescent-1.80.readme 19-Jan-2001 > 10:02 2.6K > Parse-RecDescent-1.80.tar.gz 19-Jan-2001 > 10:06 139K > Parse-RecDescent-1.90.readme 24-Mar-2003 > 17:17 3.9K > Parse-RecDescent-1.90.tar.gz 24-Mar-2003 > 17:23 154K > Parse-RecDescent-1.91.readme 28-Mar-2003 > 15:20 2.5K > Parse-RecDescent-1.91.tar.gz 28-Mar-2003 > 16:28 154K > Parse-RecDescent-1.92.readme 01-Apr-2003 > 20:45 2.5K > Parse-RecDescent-1.92.tar.gz 01-Apr-2003 > 20:49 124K > Parse-RecDescent-1.93.readme 02-Apr-2003 > 14:25 2.5K > Parse-RecDescent-1.93.tar.gz 02-Apr-2003 > 14:33 124K > Parse-RecDescent-1.94.readme 09-Apr-2003 > 01:29 2.5K > Parse-RecDescent-1.94.tar.gz 09-Apr-2003 > 01:55 124K > > Mail-IMAPClient-2.1.4.readme > 04-May-2001 07:42 6.1K > Mail-IMAPClient-2.1.4.tar.gz > 23-Aug-2001 14:52 239K > Mail-IMAPClient-2.2.2.readme > 30-Aug-2002 13:47 6.5K > Mail-IMAPClient-2.2.2.tar.gz > 09-Sep-2002 13:27 325K > Mail-IMAPClient-2.2.4.readme > 30-Aug-2002 13:47 6.5K > Mail-IMAPClient-2.2.4.tar.gz > 27-Sep-2002 13:44 330K > Mail-IMAPClient-2.2.5.readme > 30-Aug-2002 13:47 6.5K > Mail-IMAPClient-2.2.5.tar.gz > 24-Oct-2002 07:00 336K > Mail-IMAPClient-2.2.6.readme > 30-Aug-2002 13:47 6.5K > Mail-IMAPClient-2.2.6.tar.gz > 16-Dec-2002 14:18 356K > Mail-IMAPClient-2.2.7.readme > 16-Dec-2002 14:17 6.5K > Mail-IMAPClient-2.2.7.tar.gz > 24-Jan-2003 13:10 357K > Mail-IMAPClient-2.2.8.readme > 16-Dec-2002 14:17 6.5K > Mail-IMAPClient-2.2.8.tar.gz > 12-Jun-2003 15:16 366K > > There is a big gap (two years) in dates of > Parse::RecDescent between > version 1.80 and 1.90 (and there is no version in > between). > It looks like a long period of stagnation and fast > developement in March/April. > Version 2.2.8 of the Mail::IMAPClinetis is newer but > still incompatible. > May be You have not upgraded Parse::RecDescent on your > machine. > And may be You have some intermediate version (between > 1.80 and 1.90) > of the module which actually works? ;-) > > So be carefull before upgrading to 1.94 - make a
backup Show quoted text
> of what you have > - it may be usefull for finding what has been changed. > :-) > > OK You probably better know what to do. > Anyway if You will need any more information, logs, > tests or experiments > on my machines, feel free to ask me. > > With best regards, > Jerzy Sobczyk > -- > --------------------- Institute of Control and > Computation Engineering ______ > Jerzy Sobczyk Warsaw University of > Technology /_/ | > J.Sobczyk@ia.pw.edu.pl Nowowiejska > 15/19 / / /| | > http://www.ia.pw.edu.pl/~jurek 00-665 Warsaw, > POLAND / / _>| | > tel. +48 22 660 7863 ________________ fax. +48 22 > 8253719 ________ /_/_/ |_|
This problem is fixed in the next release. In the meantime, please delete the Parse.pm file in your installation directory (./BodyStructure/Parse/Parse.pm) and rerun 'make'. This will rebuild your Parse.pm with the version of Parse::RecDescent installed on your system. 'make test' should then run ok. Cheers! -- Dave K.
To: bug-Mail-IMAPClient [...] rt.cpan.org
From: imap [...] kernengroup.com
Subject: Re: [cpan #2898] Mail::IMAPClient::BodyStructure -- "make test " error
Date: Wed, 23 Jul 2003 06:28:00 -0700 (PDT)
RT-Send-Cc:
As an addendum to the problem resolution sent separately, I also want to point out that you hardly ever need to use the BodyStructure code. This code is there so you can parse apart messages into discreet bits (body parts, subparts, etc) but the whole MIME format is kind of complex and for the most part you're better off just treating the message in its entirety. Mail::IMAPClient itself only invokes the BodyStructure.pm module when you call get_bodystructure or get_envelope, which is done so rarely that IMAPClient.pm does not event 'use Mail::IMAPClient::BodyStructure'; it just requires the file at run time if (and only if) it needs it. Cheers, Dave K.
Date: Sun, 03 Aug 2003 17:58:58 +0000
From: Alexander Talos <at [...] atat.at>
To: bug-Mail-IMAPClient [...] rt.cpan.org
Subject: Bodystructure troubles + diff
Hej! IMAPClient works fine - except, when I want to use the bodystructure methods. How to reproduce: CPAN: install Parse::RecDescent install Mail::IMAPClient That's it. It barks - when the parser is found - on test 2 of BodyStructure. After some time trying to figure out how it's supposed to work (argl, rfc 2060/3051 is not very easy to read), I found that: perldoc Parse::RecDescent [about %item] The results of named subrules are stored in the hash under each subrule's name (including the repetition ^^^^^^^^^^^^^^^^^^^^^^^^^ specifier, if any), ^^^^^^^^^^^^^^^^^^^ This must have changed, because everywhere in Parse.grammar, the results subrule values are fetched with "rulename without anything" as key to the item-hash - returning a lot of undefs, obviously. With the following patch, the make test runs through, but I may have missed some... Btw: While exploring the Parser-thing and the productions in the IMAP-RFC, I noticed that I didn't see the [SP body-fld-loc *(SP body-extension)]]] (the end of body-ext-1part) anywhere, at least in the rfc822message. Apologies if they are somewhere else, I didn't try hard to find them, just noticed that nothing was following the "body-fld-md5 [SP body-fld-dsp [SP body-fld-lang " in the particular example (test 5) I was tracing. In any case, thank you for writing IMAPClient and greetings from Vienna! Best Regards, Alexander
*** Parse.grammar.orig Sun Aug 3 15:08:42 2003 --- Parse.grammar Sun Aug 3 18:41:48 2003 *************** *** 75,87 **** bodyparms: NIL | '(' kvpair(s) ')' { $return = $item{NIL} || ! { map { (%$_) } @{$item{kvpair}} }; $return || defined($return); } bodydisp: NIL | '(' kvpair(s) ')' { $return = $item{NIL} || ! { map { (%$_) } @{$item{kvpair}} }; $return || defined($return); } bodyid: ...!/[()]/ NIL | STRING --- 75,87 ---- bodyparms: NIL | '(' kvpair(s) ')' { $return = $item{NIL} || ! { map { (%$_) } @{$item{"kvpair(s)"}} }; $return || defined($return); } bodydisp: NIL | '(' kvpair(s) ')' { $return = $item{NIL} || ! { map { (%$_) } @{$item{"kvpair(s)"}} }; $return || defined($return); } bodyid: ...!/[()]/ NIL | STRING *************** *** 92,98 **** { $return = $item{NIL} || $item{STRING} || ! { map { (%$_) } @{$item{kvpair}} }; $return||defined($return); } bodysize: ...!/[()]/ NIL | NUMBER --- 92,98 ---- { $return = $item{NIL} || $item{STRING} || ! { map { (%$_) } @{$item{"kvpair(s)"}} }; $return||defined($return); } bodysize: ...!/[()]/ NIL | NUMBER *************** *** 101,107 **** bodyMD5: NIL | STRING { $return = $item{NIL} || $item{STRING} ;$return||defined($return);} bodylang: NIL | STRING | "(" STRING(s) ")" ! { $return = $item{NIL} || $item{STRING} ;$return||defined($return);} personalname: NIL | STRING { $return = $item{NIL} || $item{STRING} ;$return||defined($return);} sourceroute: NIL | STRING --- 101,107 ---- bodyMD5: NIL | STRING { $return = $item{NIL} || $item{STRING} ;$return||defined($return);} bodylang: NIL | STRING | "(" STRING(s) ")" ! { $return = $item{NIL} || $item{"STRING(s)"} ;$return||defined($return);} personalname: NIL | STRING { $return = $item{NIL} || $item{STRING} ;$return||defined($return);} sourceroute: NIL | STRING *************** *** 134,155 **** { $return = $item{NIL} || $item{STRING} ;$return||defined($return);} cc: NIL | "(" addressstruct(s) ")" ! { $return = $item{NIL} || $item{addressstruct} } bcc: NIL | "(" addressstruct(s) ")" ! { $return = $item{NIL} || $item{addressstruct} } from: NIL | "(" addressstruct(s) ")" ! { $return = $item{NIL} || $item{addressstruct} } replyto: NIL | "(" addressstruct(s) ")" ! { $return = $item{NIL} || $item{addressstruct} } sender: NIL | "(" addressstruct(s) ")" ! { $return = $item{NIL} || $item{addressstruct} } to: NIL | "(" addressstruct(s) ")" ! { $return = $item{NIL} || $item{addressstruct} } envelopestruct: "(" date subject from sender replyto to cc bcc inreplyto messageid ")" { $return = {}; --- 134,155 ---- { $return = $item{NIL} || $item{STRING} ;$return||defined($return);} cc: NIL | "(" addressstruct(s) ")" ! { $return = $item{NIL} || $item{"addressstruct(s)"} } bcc: NIL | "(" addressstruct(s) ")" ! { $return = $item{NIL} || $item{"addressstruct(s)"} } from: NIL | "(" addressstruct(s) ")" ! { $return = $item{NIL} || $item{"addressstruct(s)"} } replyto: NIL | "(" addressstruct(s) ")" ! { $return = $item{NIL} || $item{"addressstruct(s)"} } sender: NIL | "(" addressstruct(s) ")" ! { $return = $item{NIL} || $item{"addressstruct(s)"} } to: NIL | "(" addressstruct(s) ")" ! { $return = $item{NIL} || $item{"addressstruct(s)"} } envelopestruct: "(" date subject from sender replyto to cc bcc inreplyto messageid ")" { $return = {}; *************** *** 169,189 **** bodyparms => $item{bodyparms} , ! bodyid => (ref $item{bodyid} ? ! $item{bodyid}[0] : ! $item{bodyid} ), ! ! bodydesc => (ref $item{bodydesc} ? ! $item{bodydesc}[0] : ! $item{bodydesc} ), ! ! bodyenc => (ref $item{bodyenc} ? ! $item{bodyenc}[0] : ! $item{bodyenc} ), ! ! bodysize => (ref $item{bodysize} ? ! $item{bodysize}[0] : ! $item{bodysize} ), }; $return; } --- 169,189 ---- bodyparms => $item{bodyparms} , ! bodyid => (ref $item{"bodyid(?)"} ? ! $item{"bodyid(?)"}[0] : ! $item{"bodyid(?)"} ), ! ! bodydesc => (ref $item{"bodydesc(?)"} ? ! $item{"bodydesc(?)"}[0] : ! $item{"bodydesc(?)"} ), ! ! bodyenc => (ref $item{"bodyenc(?)"} ? ! $item{"bodyenc(?)"}[0] : ! $item{"bodyenc(?)"} ), ! ! bodysize => (ref $item{"bodysize(?)"} ? ! $item{"bodysize(?)"}[0] : ! $item{"bodysize(?)"} ), }; $return; } *************** *** 192,198 **** { $return = $item{basicfields}||{}; $return->{bodytype} = 'TEXT'; ! foreach my $what (qw/textlines bodyMD5 bodydisp bodylang/) { ref($item{$what}) and $return->{$what} = $item{$what}[0]; } $return||defined($return); --- 192,198 ---- { $return = $item{basicfields}||{}; $return->{bodytype} = 'TEXT'; ! foreach my $what (qw/textlines(?) bodyMD5(?) bodydisp(?) bodylang(?)/) { ref($item{$what}) and $return->{$what} = $item{$what}[0]; } $return||defined($return); *************** *** 200,206 **** othertypemessage: bodytype basicfields bodyparms(?) bodydisp(?) bodylang(?) { $return = {}; ! foreach my $what (qw/bodytype bodyparms bodydisp bodylang/) { $return->{$what} = ref($item{$what})? $item{$what}[0] : $item{$what} ; } while ( my($k,$v) = each %{$item{basicfields}} ) { $return->{$k} = $v } --- 200,206 ---- othertypemessage: bodytype basicfields bodyparms(?) bodydisp(?) bodylang(?) { $return = {}; ! foreach my $what (qw/bodytype bodyparms(?) bodydisp(?) bodylang(?)/) { $return->{$what} = ref($item{$what})? $item{$what}[0] : $item{$what} ; } while ( my($k,$v) = each %{$item{basicfields}} ) { $return->{$k} = $v } *************** *** 215,221 **** $return = {}; foreach my $what (qw/ bodyparms bodyid bodydesc bodyenc bodysize envelopestruct bodystructure textlines ! bodyMD5 bodydisp bodylang / ) { $return->{$what} = ref $item{$what} =~ 'ARRAY'? --- 215,221 ---- $return = {}; foreach my $what (qw/ bodyparms bodyid bodydesc bodyenc bodysize envelopestruct bodystructure textlines ! bodyMD5(?) bodydisp(?) bodylang(?) / ) { $return->{$what} = ref $item{$what} =~ 'ARRAY'? *************** *** 241,248 **** { $return = bless($item{basicfields}, "Mail::IMAPClient::BodyStructure"); $return->{bodytype} = "MULTIPART"; ! $return->{bodystructure} = $item{subpart}; ! foreach my $b (qw/bodyparms bodydisp bodylang/) { $return->{$b} = ref($item{$b}) ? $item{$b}[0] : $item{$b}; } $return||defined($return) ; --- 241,248 ---- { $return = bless($item{basicfields}, "Mail::IMAPClient::BodyStructure"); $return->{bodytype} = "MULTIPART"; ! $return->{bodystructure} = $item{"subpart(s)"}; ! foreach my $b (qw/bodyparms(?) bodydisp(?) bodylang(?)/) { $return->{$b} = ref($item{$b}) ? $item{$b}[0] : $item{$b}; } $return||defined($return) ; *************** *** 265,277 **** bodystructure: "(" part(s) ")" { ! $return = $item{part} ; $return||defined($return); } start: /.*\(.*BODYSTRUCTURE \(/i part(1) /\).*\)\r?\n?/ { ! $return = $item{part}[0] ; $return||defined($return); } --- 265,277 ---- bodystructure: "(" part(s) ")" { ! $return = $item{"part(s)"} ; $return||defined($return); } start: /.*\(.*BODYSTRUCTURE \(/i part(1) /\).*\)\r?\n?/ { ! $return = $item{"part(1)"}[0] ; $return||defined($return); }
From: selsky [...] columbia.edu
I'm trying to build v2.2.8 and on perl-5.8.0 running under solaris9. I tried deleting Parse.pm so it would be rebuilt and I got the same error message. What am I doing wrong? I'm running Parse::RecDescent 1.94 Thanks Show quoted text
> This problem is fixed in the next release. In the meantime, please > delete the Parse.pm file in your installation directory > (./BodyStructure/Parse/Parse.pm) and rerun 'make'. This will rebuild your > Parse.pm with the version of Parse::RecDescent installed on your system. > 'make test' should then run ok.
This problem is fixed in 2.2.9 which was released to CPAN today. -- Dave K.