Bug#695224: perl-modules: Locale::Maketext code injection

Paul Harvey csirac2 at gmail.com
Mon Mar 25 03:00:03 UTC 2013


For the Foswiki project, we can deal with things as-is.

But you have created a new bug, Locale::Maketext 1.23 is being shipped 
as 1.19 and I still don't see how this can ever be a good idea. These 
two versions have different version numbers for a reason: there has been 
a deliberate change which the caller must consider carefully before use. 
If the caller can't trust the API version being reported, what is the 
point of version numbers in the first place?

Our hack to detect Debian's special franken-version is exactly that, a 
hack - and additional complexity we'd very much rather not incur at 
runtime. Or complicate by pre-computing from yet another admin/configure 
UI prompt which could get out-of-sync should liblocale-maketext be 
updated (resulting in double-escaping mess until the user re-runs 
configure UI).

Perhaps I don't know enough about Debian infrastructure but how can this 
situation be easier to deal with than simply updating the rest of the 
.pm including the $VERSION string and POD lines? Especially given that 
your own grepping hasn't exactly overwhelmed with many dependencies on 
Locale::Maketext.

We always try very hard to work with vendor perls, which as you probably 
know, isn't the done thing - try telling perlmonks or #perl on freenode 
you've got this kind of problem, and you'll be asked what kind of idiot 
doesn't compile their own local perl.

Then try telling our userbase they must compile and maintain their own 
local perl.

I didn't start this message intending to drag out my soapbox - I just 
think it's tragic there has to be such a large impedance mismatch 
between distros and perlers.

Thanks for listening

- Paul

On 24/03/13 23:19, Dominic Hargreaves wrote:
> Hi Paul,
>
> Sorry for the delay in responding to this...
>
> On Mon, Mar 11, 2013 at 02:37:31PM +1100, Paul Harvey wrote:
>> Hi there,
>>
>> On Fri, Jan 18, 2013 at 03:06:38PM +0000, Dominic Hargreaves wrote:
>> ...
>>> Debian stable. As such I'd be very interested in hearing from anyone
>>> who has real world examples of this breaking things.
>> It's worth pointing out that you've now got Locale::Maketext 1.23,
>> minus the doc changes and version bump. That's the only real code
>> change between 1.19 and 1.23 - so calling this 1.19 makes life
>> harder for projects like Foswiki to sanity-check the users'
>> environment.
> This is a regrettable state of affairs, indeed.
>
>> Take a look at the Locale::Maketext 1.19..master diff for yourself:
>> https://github.com/toddr/Locale-Maketext/compare/84a644...master
>>
>> Compared to the diff which I think was applied in perl-modules:
>>
>> http://perl5.git.perl.org/perl.git/blobdiff/569ba91fcdabdc53eb4284f860a25273bd7fe4e1..1735f6f53ca19f99c6e9e39496c486af323ba6a8:/dist/Locale-Maketext/lib/Locale/Maketext.pm
>>
>> Foswiki uses Locale::Maketext when internationalization is enabled,
>> so we've had our own CVE response -
>> http://foswiki.org/Support/SecurityAlert-CVE-2012-6329.
>>
>> As part of the fix, we perform additional escaping before calling
>> Locale::Maketext if the version is<  1.23.
>>
>> The Debian-patched 1.19 of course already has the escaping code, so
>> we end up with double-escaping issues.
>>
>> As we're now getting user complaints on Debian systems, we will have
>> to come up with a technical solution to this problem but I think
>> it'd also make sense for Debian to simply ship Locale::Maketext 1.23
>> proper.
> There's a bit of an awkward issue here in that Locale::Maketext is
> bundled with perl, and although I agree it is potentially confusing
> to have these sorts of changes applied without version number changes,
> changing the version number on the Debian branch is quite likely to be
> the source of even more confusion; I don't think there's any precedent for
> doing that with a dual-lived module. Practically speaking, I think we will
> need to stick with what you'd probably term a workaround, which I assume
> is to do some sort of probe for behaviour before using it for real?
>
> Interested in hearing opinions from others, however!
>
> Dominic.
>




More information about the Perl-maintainers mailing list