2008/7/12 Yaakov (Cygwin Ports): > Reini Urban wrote: > | The p5p statement was that it is legal to ADD functions, and it is > | illegal to REMOVE functions during the 5.10 cycle. > | So it's not comparable to the 5.8 case, where structs were changed. > > OK, that makes sense.
Such CPAN site incompatibilities are so common, there there exists even a simplier solution for this: perl -MCPAN -e'recompile' Quoting perldoc /usr/lib/perl5/5.10/CPAN.pm recompile() is a very special command in that it takes no argument and runs the make/test/install cycle with brute force over all installed dynamically loadable extensions (aka XS modules) with 'force' in effect. The primary purpose of this command is to finish a network installation. Imagine, you have a common source tree for two different architectures. You decide to do a completely independent fresh installation. You start on one architecture with the help of a Bundle file produced earlier. CPAN installs the whole Bundle for you, but when you try to repeat the job on the second architecture, CPAN responds with a "Foo up to date" message for all modules. So you invoke CPAN's recompile on the second architecture and you're done. Another popular use for "recompile" is to act as a rescue in case your perl breaks binary compatibility. If one of the modules that CPAN uses is in turn depending on binary compatibility (so you cannot run CPAN commands), then you should try the CPAN::Nox module for recovery. > | So breakage only occurs if a new XS library (here DateTime::Locale) > | calls an old XS library (here Params::Validate) without this new function. > | This would have happened with 5.10.1 also. > > I did notice that a gtk2-perl program did run after the upgrade to -5. > So how can I detect if an XS module needs to rebuilt or not? Hmm, I would like to know that also. So far I only saw the Params::Validate problem with DateTime-Locale. It could be any of these current issues, but most have different failures. test FAIL ack-1.84 (permission problem) test FAIL PAR-Packer-0.980 test FAIL Archive-Rar-2.02 test FAIL Class-MOP-0.62 test FAIL DateTime-Locale-0.4001 - old Params::Validate in site test FAIL Devel-Tokenizer-C-0.07 test FAIL Devel-TypeCheck-1.2 test FAIL GraphViz-2.03 test FAIL Log-Dispatch-2.21 test FAIL Log-Log4perl-1.16 test FAIL Log-Report-0.18 test FAIL MP3-Find-0.03 test FAIL Net-Daemon-0.43 test FAIL Perl-Critic-1.088 test FAIL Text-RecordParser-v1.2.1 test FAIL Readonly-XS-1.04 - This looks suspect also test FAIL PerlIO-gzip-0.18 But $ for p in $(egrep "test FAIL.*perl-5.10.0 patch 34065" reports-sent.db |\ perl -ane'print $F[2],"\n"'); do grep "test PASS $p" reports-sent.db; done only gives me: test PASS DateTime-Locale-0.4001 (perl-5.10.0 patch 34065) cygwin-thread-multi-64int 1.5.25(0.15642) So the recompile of all my binary site XS modules only fixed the DateTime-Locale-0.4001 issue. -- Reini Urban http://phpwiki.org/ http://murbreak.at/ -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/