Summary: | dev-perl/Crypt-DES-2.50.0 fails to build | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Patrick Lauer <patrick> |
Component: | New packages | Assignee: | Gentoo Perl team <perl> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | Adrian.Bassett, bertrand, bugs+gentoo, candrews, himbeere, Martin.vGagern, reuben-gentoo-bugzilla |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 461954 | ||
Attachments: | Crypt-DES fix for deprecated SvUPGRADE() logic |
Description
Patrick Lauer
2013-09-05 08:32:25 UTC
dev-perl/Crypt-DES relied on deprecated logic which has now been eliminated. per /usr/lib/perl5/5.18.1/pod/perl5180delta.pod: SvUPGRADE() is no longer an expression. Originally this macro (and its underlying function, sv_upgrade()) were documented as boolean, although in reality they always croaked on error and never returned false. In 2005 the documentation was updated to specify a void return value, but SvUPGRADE() was left always returning 1 for backwards compatibility. This has now been removed, and SvUPGRADE() is now a statement with no return value. So this is now a syntax error: if (!SvUPGRADE(sv)) { croak(...); } If you have code like that, simply replace it with SvUPGRADE(sv); or to avoid compiler warnings with older perls, possibly (void)SvUPGRADE(sv); Created attachment 357998 [details, diff]
Crypt-DES fix for deprecated SvUPGRADE() logic
this updates the line in question to use the recommended form, save this patch as /etc/portage/patches/dev-perl/Crypt-DES/Crypt-DES-2.50.0.patch and re-emerge.
...or better still, update the Crypt-DES ebuild to 2.07 where the problem has been resolved upstream: http://search.cpan.org/~dparis/Crypt-DES-2.07/ This newer version compiles successfully (I've verified that this fixes the problem). fixed in 0.70.0 |