Bug 734253

Summary: HTML::Template 2.10 versioning problem
Product: [Fedora] Fedora Reporter: Ville Skyttä <ville.skytta>
Component: perl-HTML-TemplateAssignee: Tom "spot" Callaway <tcallawa>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 16CC: perl-devel, ppisar, tcallawa
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: perl-HTML-Template-2.10-3.fc16 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-09-09 17:02:16 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Set module version to (fake) 2.91 none

Description Ville Skyttä 2011-08-29 21:45:05 UTC
HTML::Template 2.10 is treated by perl's versioning comparisons as a floating point number, which means it's the same as if its version was 2.1.

Upstream bug report: https://rt.cpan.org/Public/Bug/Display.html?id=70190

Reproducer:

$ perl -e 'use HTML::Template 2.6'
HTML::Template version 2.6 required--this is only version 2.10 at -e line 1.
BEGIN failed--compilation aborted at -e line 1.

rpm's version comparison is probably unaffected, but anything using e.g. "use HTML::Template 2.x" for x >= 2 is now broken at runtime with HTML::Template 2.10.  Packages included in Fedora broken such way include at least perl-HTML-Template-Expr and w3c-markup-validator.

I'm not aware of an easy way to fix this in HTML::Template (apart from bumping the version to 3.00 but that's hardly something that should be done in the Fedora package), so I suppose affected packages could be patched so that any versions in their "use HTML::Template" statements are removed.  Other ideas?

Comment 1 Petr Pisar 2011-08-30 06:29:01 UTC
Change module version to and RPM provides to 2.91, RPM version to 2.10.1 until upstream bumps new version.

Comment 2 Ville Skyttä 2011-08-30 18:10:06 UTC
Created attachment 520663 [details]
Set module version to (fake) 2.91

I don't think there's any need to lie about the rpm version or provides version; rpm's version comparison algorithm does not have any issues with 2.9 -> 2.10.

The attached patch bumps module version to 2.91 while keeping the rest at 2.10 (and fixes a couple of trivial issues while at it).  Ok if I commit and push this to F-16?

Comment 3 Petr Pisar 2011-08-31 07:29:26 UTC
Yeah, it should work so.

Comment 4 Tom "spot" Callaway 2011-08-31 14:41:17 UTC
(In reply to comment #2)

> The attached patch bumps module version to 2.91 while keeping the rest at 2.10
> (and fixes a couple of trivial issues while at it).  Ok if I commit and push
> this to F-16?

I don't see where that patch actually bumps the module version to 2.91, might be misreading it.

Comment 5 Petr Pisar 2011-08-31 15:10:15 UTC
(In reply to comment #4)
> (In reply to comment #2)
> 
> > The attached patch bumps module version to 2.91 while keeping the rest at 2.10
> > (and fixes a couple of trivial issues while at it).  Ok if I commit and push
> > this to F-16?
> 
> I don't see where that patch actually bumps the module version to 2.91, might
> be misreading it.

-$HTML::Template::VERSION = '2.10';
+# https://bugzilla.redhat.com/show_bug.cgi?id=734253
+$HTML::Template::VERSION = '2.91';

So Perl gets new version and and this one gets propagated into RPM by rpmbuild dependency generator too.

Comment 6 Tom "spot" Callaway 2011-08-31 16:00:30 UTC
Yep, I see it now. Go ahead and commit that change Ville.

Comment 7 Ville Skyttä 2011-09-01 04:18:57 UTC
Done in 2.10-3.


(In reply to comment #5)
> So Perl gets new version and and this one gets propagated into RPM by rpmbuild
> dependency generator too.

Note however that I explicitly prevent the perl(HTML::Template) Provides version from becoming 2.91 and force it to 2.10:

+%global         __provides_exclude ^perl\\(HTML::Template\\)\\s*=\\s*2\\.91$
+Provides:       perl(HTML::Template) = %{version}

Comment 8 Fedora Update System 2011-09-01 04:21:30 UTC
perl-HTML-Template-2.10-3.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/perl-HTML-Template-2.10-3.fc16

Comment 9 Fedora Update System 2011-09-01 19:03:17 UTC
Package perl-HTML-Template-2.10-3.fc16:
* should fix your issue,
* was pushed to the Fedora 16 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing perl-HTML-Template-2.10-3.fc16'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/perl-HTML-Template-2.10-3.fc16
then log in and leave karma (feedback).

Comment 10 Fedora Update System 2011-09-09 17:02:11 UTC
perl-HTML-Template-2.10-3.fc16 has been pushed to the Fedora 16 stable repository.  If problems still persist, please make note of it in this bug report.