On Fri, May 17, 2013 at 03:35:15PM +0300, Niko Tyni wrote: > Package: perl-tk > Version: 1:804.030-1 > Severity: important > Forwarded: https://rt.cpan.org/Public/Bug/Display.html?id=82677 > Tags: upstream > User: debian-p...@lists.debian.org > Usertags: perl-5.18-transition
> tkGlue.c: In function 'LangSaveVar': > tkGlue.c:4195:26: error: lvalue required as left operand of assignment > which I don't have fix for ATM. FWIW, the code around tkGlue.c:4195 is > > #ifdef USE_ITHREADS > CopSTASHPV(PL_curcop) = NULL; > #else > CopSTASH(PL_curcop) = NULL; > #endif The attached patch makes the package build for me, no guarantees about correctness. I see the test suite doesn't pass even on current sid. Hope this helps. -- Niko Tyni nt...@debian.org
>From 61187c190172b401e740515781f630d6f834ab45 Mon Sep 17 00:00:00 2001 From: Niko Tyni <nt...@debian.org> Date: Fri, 17 May 2013 15:04:40 +0300 Subject: [PATCH] CopSTASHPV isn't an lvalue anymore Commit d4d03940c58a0177edb93c8854929856e9975bf9 in Perl 5.17.1 broke assignment to CopSTASHPV(), so use CopSTASHPV_set() instead. This only touches threaded perls, so non-threaded ones may or may not be broken too. --- tkGlue.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tkGlue.c b/tkGlue.c index dd3d283..dcb1d6a 100644 --- a/tkGlue.c +++ b/tkGlue.c @@ -4195,7 +4192,11 @@ int type; int prefix = '?'; name = SvPV(sv,na); #ifdef USE_ITHREADS +#if PERL_REVISION > 5 || (PERL_REVISION == 5 && PERL_VERSION >= 17) + CopSTASHPV_set(PL_curcop, NULL); +#else CopSTASHPV(PL_curcop) = NULL; +#endif #else CopSTASH(PL_curcop) = NULL; #endif -- 1.7.10.4